From a1d5c7fa4aec0e089304ed9625fd4ed28204567d Mon Sep 17 00:00:00 2001 From: tiago Date: Wed, 30 May 2012 18:23:49 -0300 Subject: [PATCH 01/79] commit --- .classpath | 2 +- .project | 0 README.md | 0 .../iged/interpretador/Decodificador.class | Bin 2649 -> 0 bytes .../ufpb/iged/interpretador/GeraTabela.class | Bin 2418 -> 0 bytes .../ufpb/iged/interpretador/Instrucao.class | Bin 426 -> 0 bytes bin/br/ufpb/iged/interpretador/OpCode.class | Bin 1034 -> 0 bytes bin/br/ufpb/iged/interpretador/OpInfo.class | Bin 611 -> 0 bytes bin/br/ufpb/iged/interpretador/OpTipo.class | Bin 1085 -> 0 bytes .../asm/BytecodeAssembler.class | Bin 6158 -> 6159 bytes .../asm/Definicao$Instrucao.class | Bin 824 -> 824 bytes .../bytecodeassembler/asm/Definicao.class | Bin 3540 -> 3540 bytes .../bytecodeassembler/asm/LabelSymbol.class | Bin 2363 -> 2363 bytes .../bytecodeassembler/grammars/Assembler.g | 0 .../bytecodeassembler/parser/Assembler.tokens | 0 .../parser/AssemblerLexer$DFA5.class | Bin 1726 -> 1726 bytes .../parser/AssemblerLexer.class | Bin 18333 -> 18333 bytes .../parser/AssemblerParser.class | Bin 16443 -> 16443 bytes .../AcessoIndevidoMemoriaException.class | Bin 620 -> 622 bytes .../excecoes/LabelException.class | Bin 547 -> 547 bytes bin/br/ufpb/iged/interpretador/main.class | Bin 853 -> 0 bytes .../principal/Interpretador.class | Bin 8519 -> 8526 bytes .../ufpb/iged/interpretador/testes/Test.class | Bin 2197 -> 2197 bytes build.xml | 0 entrada.txt | 0 instropcode_set.txt | 0 .../asm/BytecodeAssembler.java | 0 .../bytecodeassembler/asm/Definicao.java | 0 .../bytecodeassembler/asm/LabelSymbol.java | 0 .../bytecodeassembler/grammars/Assembler.g | 0 .../bytecodeassembler/parser/Assembler.tokens | 0 .../parser/AssemblerLexer.java | 0 .../parser/AssemblerParser.java | 0 .../AcessoIndevidoMemoriaException.java | 0 .../excecoes/LabelException.java | 0 .../principal/Interpretador.java | 0 .../ufpb/iged/interpretador/testes/Test.java | 0 37 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 .classpath mode change 100644 => 100755 .project mode change 100644 => 100755 README.md delete mode 100644 bin/br/ufpb/iged/interpretador/Decodificador.class delete mode 100644 bin/br/ufpb/iged/interpretador/GeraTabela.class delete mode 100644 bin/br/ufpb/iged/interpretador/Instrucao.class delete mode 100644 bin/br/ufpb/iged/interpretador/OpCode.class delete mode 100644 bin/br/ufpb/iged/interpretador/OpInfo.class delete mode 100644 bin/br/ufpb/iged/interpretador/OpTipo.class mode change 100644 => 100755 bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g mode change 100644 => 100755 bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens delete mode 100644 bin/br/ufpb/iged/interpretador/main.class mode change 100644 => 100755 build.xml mode change 100644 => 100755 entrada.txt mode change 100644 => 100755 instropcode_set.txt mode change 100644 => 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java mode change 100644 => 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java mode change 100644 => 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.java mode change 100644 => 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g mode change 100644 => 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens mode change 100644 => 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java mode change 100644 => 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java mode change 100644 => 100755 src/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.java mode change 100644 => 100755 src/br/ufpb/iged/interpretador/excecoes/LabelException.java mode change 100644 => 100755 src/br/ufpb/iged/interpretador/principal/Interpretador.java mode change 100644 => 100755 src/br/ufpb/iged/interpretador/testes/Test.java diff --git a/.classpath b/.classpath old mode 100644 new mode 100755 index 6e5baae..89a4f9a --- a/.classpath +++ b/.classpath @@ -2,6 +2,6 @@ - + diff --git a/.project b/.project old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/bin/br/ufpb/iged/interpretador/Decodificador.class b/bin/br/ufpb/iged/interpretador/Decodificador.class deleted file mode 100644 index 2650bc72bc9f6835a10dacc8df0bc3670c7d0857..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2649 zcma)7ZERCz6n@^@Ztcn)u(A!t_!xrFeLz7z$AGc6bX2+x)@=+2Zg=hNxTCc7ayN#e zs39>SDw-JMFA@^s5)%U&9gQT5@u$BGiHY&2iN+r!CdOYHiO>BQyJHKn$+%4kj%2qp_@B{!hxnrSx8%jhQZI&+fZ50q$C8G@G0n}i%54E(H$VJ8))G;3hP2`!hHX@p_*no`!zDXrFq4s1g0`C1CSev=+CK=CRvw)w`6WAJB+y+Y$Ye%QqrpMXd?pGY*jRStXC{UK@h{XZ{v?D2_3*GDyrC3z+8G-Ff zz2(|_0dE$f9Vca+LNDuV6l|yYiI?E!M;~{Nn>+i#xhhL^^(Uzgnya?@lDV4dk8t%Y z)vT?)Y_7%<16&<3v9>zOMoC0_x>J1(0nS54#!6I~e6nUrV^3vb&wblsTFw_}^Fw2Q zaEl9!8@J>7agj!9&fq}$qI1S8tXZnBr}tQcADnVu=bSM?ipidi7}qZo)9L6}sGsaj zboT{#u1u8%9AXS*q(`sC^PM!s)-43(A zu!-gH@UUdpnP&u_9_l>0_^hB6=D+1@x{tsYT#z91S#B?)lDh2Z%dvtM+Y(iLnlFFJ zU}o^ab)WGG^i!gg1f|ol&9zpS-rV#Rg7w~!8B~|B_TCe#p@c2-R$~dYS&tvha zC3$eq7A(U-vN}#K1LR@yYp^-M=0`Sofp>$M)FAd?FEiRly&T?_%F0Tv@5cd~zqbrt zGp=;EskwyKuMrF$?rNSr;@Rh&mOgH-@$R$+D=OAT&M%Izt4d-`1- z@yP8t?e;u$d(OB$CAVkD?YZUloO64wyFJ5h&$!#8(9=}oUCF%CGf;!)pCHSo#ZfnM z+(E{dLe{#GIS0v#EQ*N*`R5&EbP>`sjqltsiw<%rp7_L#)SrdSyOGATkTExM@>$5W zZsZh^PJh&R*Wdnkyk&kYezQhv4X3$|gRzzaQIBe@M-dxworCcX=l=#a;}*8yHt*s) z*oG29cz{OC@`8QHf%*~K@e|L1N7#u!unT`;wz=f+&Ri&ya) z$8s5wSMfT>e7STRZ*cTIsFH5s8a1yq`Wvw7F{*ut2=Nbw>YQJr^Q&cyH#xu(-ue&R C0$cq6 diff --git a/bin/br/ufpb/iged/interpretador/GeraTabela.class b/bin/br/ufpb/iged/interpretador/GeraTabela.class deleted file mode 100644 index 67684d0135c424a9b919e3f372ae2fc303f76f01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2418 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 NRj(@YyHA;c`Uf=>e8K<# diff --git a/bin/br/ufpb/iged/interpretador/OpTipo.class b/bin/br/ufpb/iged/interpretador/OpTipo.class deleted file mode 100644 index 86897ca090da57d8b483e73a571b701c7ff34bf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1085 zcma)4T~8W86g|TN3+q-XwzPiq!)g`Ky4uF}0b(Qut?3F$S4l{p1{mp@Wg*LA;=gL~ zLDQzD&;3zN@2ph!r78QcGiT=9Gv~~mU%$Uy19*eiDk2OE4bK>y^csfU7A?beec|;y z;qzA4GpfBKyVq3_WtcqWXWVeO+cwJXpu?aXRE`)H&Ht7c7-D;7wM6Xb?)%b5hKX|J z_;9IKGLOp^!_ud*G!n(8W4pG$O-E;QH7V9@i3DOA7*aa!Bh3&mjwqR|d1u)2J=<*; z4sx|5aUbZ2A)bIL!6O~21PKXdbtDj%vw0m!Xbe-P?TX5v(-7VfZ#aS>ZFZa7sd3Mi zI9Sx6AVq%s&vu_IoN;F$XtJEmjgw5n5|&lGq!1y;=Y3yvbgUrDkmR1n&zs%eIYU02 ztJ*jfO}}suiu!knvNEWFmFfw@yKvd)I&x!NyNtG`BZpTETVah|hxhx1(80H&cOm3E zq2_B=ci=U}o-MC$YF~JqZcR9RT{0=1Ww%}K4?No43JJ>U;usdU3p*RsF@>IVbZ17k z7NC*38jRFXAT=x7DH+t@3FySXM@SHsU+FtoJw2&hV(J3Z0eBbV*!|n{~(?+ z#I#k94w13yu_0!x3(S2bkqDm9U!zg}SLnc}!K&P$w>dg;lZ;BMYJPS863^}m<3zxy zNctlRo=fkvwtyF-^0$;vmS={TtA9}P*Y%?Gbg0Z-VR7vX?cCV7QDe6jlGMWdNFz@i ZsjsD3{tBx3ycCSPQ<+UWI;2>^}&2>t*7 delta 29 lcmdnNwu4RJ)W2Q(7#J9g8PwSsm>3ycCSPQ<+UWI;2>^}}2>$>8 diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 74d5efa5771bbc8809f8affcee19b59bd13c6abc..0a19ab0dea2b1c324f0b4550efbf23b584979933 100644 GIT binary patch delta 29 lcmca2eMMT})W2Q(7#J9g7_PB1FflS%O=e`a+UV8A3jmxH2;Kky delta 29 lcmca2eMMT})W2Q(7#J9g8LqK2FflS%O=e`a+UV8A3jmxY2;Tqz diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.class index 80fb33ffa2e2101aecf38ebe3cc98e2d2836b418..47dae7d931a05530b8cc88a0c8c41e801307c09b 100644 GIT binary patch delta 17 Zcmdljv|EVd)W2Q(7#J9gHgXtq0sugc1_}TG delta 17 Zcmdljv|EVd)W2Q(7#J9gH*y$r0sugh1`7ZH diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g b/bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g old mode 100644 new mode 100755 diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens old mode 100644 new mode 100755 diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer$DFA5.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer$DFA5.class index e2e026859d231ed53ae4479cebdc7a25130a1cb8..1e50f288c42bae7ce6094c00c96a10f5b70d58dd 100644 GIT binary patch delta 17 ZcmdnTyN{RS)W2Q(7#J9gHgarZ0{}r=28I9t delta 17 ZcmdnTyN{RS)W2Q(7#J9gH*#!a0{}r_28RFu diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.class index c4ee2838f76e313b0552adcfb3bc4203495a2d8a..5185d211c03cedfbdd20df43651bfc2b7cfcd1b6 100644 GIT binary patch delta 19 bcmbQ+&p5ZAk>k|AUHcdq7>qV@OmznUP#Xto delta 19 bcmbQ+&p5ZAk>k|AUHcdq7>qY^OmznUP#_0u diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.class index f1f8ef0f3fec2539de217db453090d5f9bed1d3a..8ffbc69fb24559621116ec626526f3e0777e07c8 100644 GIT binary patch delta 19 bcmdnpz_`1Ck>k|AUHcdq7>qV@7&`y}QF{j; delta 19 bcmdnpz_`1Ck>k|AUHcdq7>qY^7&`y}QGf>^ diff --git a/bin/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.class b/bin/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.class index d995c39b9ea91c9456778d4b76303231f64e9a61..14feb66db25245b18ad244a8c8c8d32dea071a28 100644 GIT binary patch delta 48 zcmaFE@{Wb$)W2Q(7#J9gCUUHkmUT={EiTSi$jnPgEz3;FS9rgFuR?BWE|A)Iel8;b D;nfu% delta 46 zcmV+}0MY;M1ndL|%Ko~(0000pkqE9C8$n}bb8~MXX>Md?c4=g9Aj6;_ZDno4v$4^g E0kBjPApigX diff --git a/bin/br/ufpb/iged/interpretador/excecoes/LabelException.class b/bin/br/ufpb/iged/interpretador/excecoes/LabelException.class index 85eff416b16d3dbefc53f07ed5fa646ddcdad8d3..063c5d2832fe845273caddea72660f505d11a1a3 100644 GIT binary patch delta 17 ZcmZ3?vY3VA)W2Q(7#J9gHgZTa0RTI*1)l%_ delta 17 ZcmZ3?vY3VA)W2Q(7#J9gH*!cb0RTI=1)u-` diff --git a/bin/br/ufpb/iged/interpretador/main.class b/bin/br/ufpb/iged/interpretador/main.class deleted file mode 100644 index f274b2741677b5138c7ea66c44ddc7350bb1bcf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmah{O>fgc5Ph3Cb!^;bn>3{b+N3RQofP2%#~`E@#3_78u_9SLZJe#yDzPKSsRaBg zIJ6QVZb*n9g_w1as;H=3-tNro&b;?_fBpXQ9l#SDnJ6$c2B|kYn+!Y^$)Ts>Os11m zW@4D6-dL#Egu%ei#f9)jB96Q_gL4^X3`eeMYq*wFrFtvX`=|sK?zF?m9C2A z>)Ci9Q(p{5lA+p7LNV%#RO$F{(#YPaDZ@_pKQuZtLepVbcTc<5bb48;;;7T=n^T9+xZu!0I@^yMEg@}?iT`>h-lx#b6D$q&kW*$=p75ZF4$ zSNKoDN}jIK0lvm7gd6(AX1?9h*=-#+_$pzOJA}LZm~bz@cWCD(75TC4_K#PJU8i vjzUUeu|ip5Q6@-5FIPOH Date: Thu, 31 May 2012 21:31:26 -0300 Subject: [PATCH 02/79] commit --- .../asm/BytecodeAssembler.class | Bin 6159 -> 6158 bytes .../asm/Definicao$Instrucao.class | Bin 824 -> 824 bytes .../bytecodeassembler/asm/Definicao.class | Bin 3540 -> 3540 bytes .../bytecodeassembler/asm/LabelSymbol.class | Bin 2363 -> 2363 bytes .../bytecodeassembler/grammars/Assembler.g | 170 ++++++++-------- .../bytecodeassembler/parser/Assembler.tokens | 190 +++++++++--------- .../parser/AssemblerLexer$DFA5.class | Bin 1726 -> 1726 bytes .../parser/AssemblerLexer.class | Bin 18333 -> 18333 bytes .../parser/AssemblerParser.class | Bin 16443 -> 16443 bytes .../AcessoIndevidoMemoriaException.class | Bin 622 -> 620 bytes .../excecoes/LabelException.class | Bin 547 -> 547 bytes .../principal/Interpretador.class | Bin 8526 -> 8519 bytes .../ufpb/iged/interpretador/testes/Test.class | Bin 2197 -> 2197 bytes 13 files changed, 180 insertions(+), 180 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 098532f77d2c56025f11b51a5a3fb7c5c45961a9..e9cf531392f377fba3782498187a442aa2f43eac 100644 GIT binary patch delta 61 zcmV-D0K)%|Fpe+{%Ko~(0000p0M-Wp0+SC09+Q3v7L)S?5wTL;2^AbqAZ%e`Wo#gF TWoBh^X=HC8Zo{LqMGDFddrK8G delta 62 zcmV-E0Kxx`Fpn?|%Ko~(0000o0M-Wp0+SC09+Qv^7L)S?5wTL;2^JksAZ%e`Wo#gF UWoBh^X=HC8ZtuUnvqTEY4VY&ZP5=M^ diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class index ef3c41ed747b26800b663e6e1a3cd4713832427a..4e6a316a3f5ee125fa075f65b81f91f444c22069 100644 GIT binary patch delta 29 lcmdnNwu4RJ)W2Q(7#J9g8PwSsm>3ycCSPQ<+UWI;2>^}}2>$>8 delta 29 lcmdnNwu4RJ)W2Q(7#J9g7}VJrm>3ycCSPQ<+UWI;2>^}&2>t*7 diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 0a19ab0dea2b1c324f0b4550efbf23b584979933..74d5efa5771bbc8809f8affcee19b59bd13c6abc 100644 GIT binary patch delta 29 lcmca2eMMT})W2Q(7#J9g8LqK2FflS%O=e`a+UV8A3jmxY2;Tqz delta 29 lcmca2eMMT})W2Q(7#J9g7_PB1FflS%O=e`a+UV8A3jmxH2;Kky diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.class index 47dae7d931a05530b8cc88a0c8c41e801307c09b..80fb33ffa2e2101aecf38ebe3cc98e2d2836b418 100644 GIT binary patch delta 17 Zcmdljv|EVd)W2Q(7#J9gH*y$r0sugh1`7ZH delta 17 Zcmdljv|EVd)W2Q(7#J9gHgXtq0sugc1_}TG diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g b/bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g index 1d69b2a..be49d94 100755 --- a/bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g @@ -1,86 +1,86 @@ -grammar Assembler; - -@members { - - protected void escreverOpcode(Token opc); - protected void escreverOpcode(Token opc, Token op) throws LabelException; - protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; - protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - protected void definirLabel(Token id) throws LabelException; - -} - -programa : comando* - ; - -comando : (label instrucao | instrucao); - -label : a = ID ':' {definirLabel($a);}; - -instrucao: (aritmetica | load | store | desvio | logica | 'nop' - | a = 'pop' {escreverOpcode($a);} - | a = 'pop2'{escreverOpcode($a);} - )? NOVA_LINHA; - -aritmetica : a = 'iadd' {escreverOpcode($a);} - | a = 'isub' {escreverOpcode($a);} - | a = 'imul' {escreverOpcode($a);} - | a = 'idiv' {escreverOpcode($a);} - | a = 'irem' {escreverOpcode($a);} - | a = 'iinc' {escreverOpcode($a);} - | a = 'ineg' {escreverOpcode($a);} - ; - -load : a = 'iconst_m1'{escreverOpcode($a);} - | a = 'iconst_0' {escreverOpcode($a);} - | a = 'iconst_1' {escreverOpcode($a);} - | a = 'iconst_2' {escreverOpcode($a);} - | a = 'iconst_3'{escreverOpcode($a);} - | a = 'iconst_4'{escreverOpcode($a);} - | a = 'iconst_5'{escreverOpcode($a);} - | a = 'iload_0' {escreverOpcode($a);} - | a = 'iload_1' {escreverOpcode($a);} - | a = 'iload_2' {escreverOpcode($a);} - | a = 'iload_3' {escreverOpcode($a);} - | a = 'iload' INT {escreverOpcode($a, $INT);} - | a = 'ldc' INT {escreverOpcode($a, $INT);} - ; - -store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_1' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_2' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_3' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore' INT {verificarAumentoMemoriaGlobal($a, $INT);} - ; - -logica : a = 'iand' {escreverOpcode($a);} - | a = 'ior' {escreverOpcode($a);} - | a = 'ixor' {escreverOpcode($a);} - ; - -desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} - | a = 'ifne' b = ID {escreverOpcode($a, $b);} - | a = 'iflt' b = ID {escreverOpcode($a, $b);} - | a = 'ifge' b = ID {escreverOpcode($a, $b);} - | a = 'ifgt' b = ID {escreverOpcode($a, $b);} - | a = 'ifle' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpeq' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpne' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmplt' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpge' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpgt' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmple' b = ID {escreverOpcode($a, $b);} - | a = 'goto' b = ID {escreverOpcode($a, $b);} - ; - -NULL: ('null' | 'NULL'); - -INT : '-'? '0'..'9'+ ; - -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; - -//LETRA: ('a'..'z' | 'A'..'Z'); - -NOVA_LINHA : ';'; - +grammar Assembler; + +@members { + + protected void escreverOpcode(Token opc); + protected void escreverOpcode(Token opc, Token op) throws LabelException; + protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + protected void definirLabel(Token id) throws LabelException; + +} + +programa : comando* + ; + +comando : (label instrucao | instrucao); + +label : a = ID ':' {definirLabel($a);}; + +instrucao: (aritmetica | load | store | desvio | logica | 'nop' + | a = 'pop' {escreverOpcode($a);} + | a = 'pop2'{escreverOpcode($a);} + )? NOVA_LINHA; + +aritmetica : a = 'iadd' {escreverOpcode($a);} + | a = 'isub' {escreverOpcode($a);} + | a = 'imul' {escreverOpcode($a);} + | a = 'idiv' {escreverOpcode($a);} + | a = 'irem' {escreverOpcode($a);} + | a = 'iinc' {escreverOpcode($a);} + | a = 'ineg' {escreverOpcode($a);} + ; + +load : a = 'iconst_m1'{escreverOpcode($a);} + | a = 'iconst_0' {escreverOpcode($a);} + | a = 'iconst_1' {escreverOpcode($a);} + | a = 'iconst_2' {escreverOpcode($a);} + | a = 'iconst_3'{escreverOpcode($a);} + | a = 'iconst_4'{escreverOpcode($a);} + | a = 'iconst_5'{escreverOpcode($a);} + | a = 'iload_0' {escreverOpcode($a);} + | a = 'iload_1' {escreverOpcode($a);} + | a = 'iload_2' {escreverOpcode($a);} + | a = 'iload_3' {escreverOpcode($a);} + | a = 'iload' INT {escreverOpcode($a, $INT);} + | a = 'ldc' INT {escreverOpcode($a, $INT);} + ; + +store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} + | a = 'istore_1' {verificarAumentoMemoriaGlobal($a);} + | a = 'istore_2' {verificarAumentoMemoriaGlobal($a);} + | a = 'istore_3' {verificarAumentoMemoriaGlobal($a);} + | a = 'istore' INT {verificarAumentoMemoriaGlobal($a, $INT);} + ; + +logica : a = 'iand' {escreverOpcode($a);} + | a = 'ior' {escreverOpcode($a);} + | a = 'ixor' {escreverOpcode($a);} + ; + +desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} + | a = 'ifne' b = ID {escreverOpcode($a, $b);} + | a = 'iflt' b = ID {escreverOpcode($a, $b);} + | a = 'ifge' b = ID {escreverOpcode($a, $b);} + | a = 'ifgt' b = ID {escreverOpcode($a, $b);} + | a = 'ifle' b = ID {escreverOpcode($a, $b);} + | a = 'if_icmpeq' b = ID {escreverOpcode($a, $b);} + | a = 'if_icmpne' b = ID {escreverOpcode($a, $b);} + | a = 'if_icmplt' b = ID {escreverOpcode($a, $b);} + | a = 'if_icmpge' b = ID {escreverOpcode($a, $b);} + | a = 'if_icmpgt' b = ID {escreverOpcode($a, $b);} + | a = 'if_icmple' b = ID {escreverOpcode($a, $b);} + | a = 'goto' b = ID {escreverOpcode($a, $b);} + ; + +NULL: ('null' | 'NULL'); + +INT : '-'? '0'..'9'+ ; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +//LETRA: ('a'..'z' | 'A'..'Z'); + +NOVA_LINHA : ';'; + WS : (' ' | '\t' | '\r' | '\n') {skip();} ; \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens index 0e0aa1f..dd0fea5 100755 --- a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens @@ -1,95 +1,95 @@ -T__9=9 -T__10=10 -T__11=11 -T__12=12 -T__13=13 -T__14=14 -T__15=15 -T__16=16 -T__17=17 -T__18=18 -T__19=19 -T__20=20 -T__21=21 -T__22=22 -T__23=23 -T__24=24 -T__25=25 -T__26=26 -T__27=27 -T__28=28 -T__29=29 -T__30=30 -T__31=31 -T__32=32 -T__33=33 -T__34=34 -T__35=35 -T__36=36 -T__37=37 -T__38=38 -T__39=39 -T__40=40 -T__41=41 -T__42=42 -T__43=43 -T__44=44 -T__45=45 -T__46=46 -T__47=47 -T__48=48 -T__49=49 -T__50=50 -T__51=51 -T__52=52 -T__53=53 -ID=4 -INT=5 -NOVA_LINHA=6 -NULL=7 -WS=8 -':'=9 -'goto'=10 -'iadd'=11 -'iand'=12 -'iconst_0'=13 -'iconst_1'=14 -'iconst_2'=15 -'iconst_3'=16 -'iconst_4'=17 -'iconst_5'=18 -'iconst_m1'=19 -'idiv'=20 -'if_icmpeq'=21 -'if_icmpge'=22 -'if_icmpgt'=23 -'if_icmple'=24 -'if_icmplt'=25 -'if_icmpne'=26 -'ifeq'=27 -'ifge'=28 -'ifgt'=29 -'ifle'=30 -'iflt'=31 -'ifne'=32 -'iinc'=33 -'iload'=34 -'iload_0'=35 -'iload_1'=36 -'iload_2'=37 -'iload_3'=38 -'imul'=39 -'ineg'=40 -'ior'=41 -'irem'=42 -'istore'=43 -'istore_0'=44 -'istore_1'=45 -'istore_2'=46 -'istore_3'=47 -'isub'=48 -'ixor'=49 -'ldc'=50 -'nop'=51 -'pop'=52 -'pop2'=53 +T__9=9 +T__10=10 +T__11=11 +T__12=12 +T__13=13 +T__14=14 +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +ID=4 +INT=5 +NOVA_LINHA=6 +NULL=7 +WS=8 +':'=9 +'goto'=10 +'iadd'=11 +'iand'=12 +'iconst_0'=13 +'iconst_1'=14 +'iconst_2'=15 +'iconst_3'=16 +'iconst_4'=17 +'iconst_5'=18 +'iconst_m1'=19 +'idiv'=20 +'if_icmpeq'=21 +'if_icmpge'=22 +'if_icmpgt'=23 +'if_icmple'=24 +'if_icmplt'=25 +'if_icmpne'=26 +'ifeq'=27 +'ifge'=28 +'ifgt'=29 +'ifle'=30 +'iflt'=31 +'ifne'=32 +'iinc'=33 +'iload'=34 +'iload_0'=35 +'iload_1'=36 +'iload_2'=37 +'iload_3'=38 +'imul'=39 +'ineg'=40 +'ior'=41 +'irem'=42 +'istore'=43 +'istore_0'=44 +'istore_1'=45 +'istore_2'=46 +'istore_3'=47 +'isub'=48 +'ixor'=49 +'ldc'=50 +'nop'=51 +'pop'=52 +'pop2'=53 diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer$DFA5.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer$DFA5.class index 1e50f288c42bae7ce6094c00c96a10f5b70d58dd..e2e026859d231ed53ae4479cebdc7a25130a1cb8 100644 GIT binary patch delta 17 ZcmdnTyN{RS)W2Q(7#J9gH*#!a0{}r_28RFu delta 17 ZcmdnTyN{RS)W2Q(7#J9gHgarZ0{}r=28I9t diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.class index 5185d211c03cedfbdd20df43651bfc2b7cfcd1b6..c4ee2838f76e313b0552adcfb3bc4203495a2d8a 100644 GIT binary patch delta 19 bcmbQ+&p5ZAk>k|AUHcdq7>qY^OmznUP#_0u delta 19 bcmbQ+&p5ZAk>k|AUHcdq7>qV@OmznUP#Xto diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.class index 8ffbc69fb24559621116ec626526f3e0777e07c8..f1f8ef0f3fec2539de217db453090d5f9bed1d3a 100644 GIT binary patch delta 19 bcmdnpz_`1Ck>k|AUHcdq7>qY^7&`y}QGf>^ delta 19 bcmdnpz_`1Ck>k|AUHcdq7>qV@7&`y}QF{j; diff --git a/bin/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.class b/bin/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.class index 14feb66db25245b18ad244a8c8c8d32dea071a28..d995c39b9ea91c9456778d4b76303231f64e9a61 100644 GIT binary patch delta 46 zcmV+}0MY;M1ndL|%Ko~(0000pkqE9C8$n}bb8~MXX>Md?c4=g9Aj6;_ZDno4v$4^g E0kBjPApigX delta 48 zcmaFE@{Wb$)W2Q(7#J9gCUUHkmUT={EiTSi$jnPgEz3;FS9rgFuR?BWE|A)Iel8;b D;nfu% diff --git a/bin/br/ufpb/iged/interpretador/excecoes/LabelException.class b/bin/br/ufpb/iged/interpretador/excecoes/LabelException.class index 063c5d2832fe845273caddea72660f505d11a1a3..85eff416b16d3dbefc53f07ed5fa646ddcdad8d3 100644 GIT binary patch delta 17 ZcmZ3?vY3VA)W2Q(7#J9gH*!cb0RTI=1)u-` delta 17 ZcmZ3?vY3VA)W2Q(7#J9gHgZTa0RTI*1)l%_ diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 226ef54fb73b9bc87d89295fea1fb37c80289769..5abf8853a1c18e93e58a4137176ce2a72d46ab5b 100644 GIT binary patch delta 99 zcmX@-bli#K)W2Q(7#J9gH*)Od6cF`I%{{!iC^JzZC0`-=@aDD(75TC4_K#PJU8i vjzUUeu|ip5Q6@-5FIPOH Date: Thu, 31 May 2012 21:32:58 -0300 Subject: [PATCH 03/79] commit --- .../parser/AssemblerLexer.java | 3974 ++++++++--------- 1 file changed, 1987 insertions(+), 1987 deletions(-) diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index 75da9e1..c3b2c71 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,1988 +1,1988 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g 2012-04-18 17:32:19 - -package br.ufpb.iged.interpretador.bytecodeassembler.parser; - -import org.antlr.runtime.*; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; - -@SuppressWarnings({"all", "warnings", "unchecked"}) -public class AssemblerLexer extends Lexer { - public static final int EOF=-1; - public static final int T__9=9; - public static final int T__10=10; - public static final int T__11=11; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__19=19; - public static final int T__20=20; - public static final int T__21=21; - public static final int T__22=22; - public static final int T__23=23; - public static final int T__24=24; - public static final int T__25=25; - public static final int T__26=26; - public static final int T__27=27; - public static final int T__28=28; - public static final int T__29=29; - public static final int T__30=30; - public static final int T__31=31; - public static final int T__32=32; - public static final int T__33=33; - public static final int T__34=34; - public static final int T__35=35; - public static final int T__36=36; - public static final int T__37=37; - public static final int T__38=38; - public static final int T__39=39; - public static final int T__40=40; - public static final int T__41=41; - public static final int T__42=42; - public static final int T__43=43; - public static final int T__44=44; - public static final int T__45=45; - public static final int T__46=46; - public static final int T__47=47; - public static final int T__48=48; - public static final int T__49=49; - public static final int T__50=50; - public static final int T__51=51; - public static final int T__52=52; - public static final int T__53=53; - public static final int ID=4; - public static final int INT=5; - public static final int NOVA_LINHA=6; - public static final int NULL=7; - public static final int WS=8; - - // delegates - // delegators - public Lexer[] getDelegates() { - return new Lexer[] {}; - } - - public AssemblerLexer() {} - public AssemblerLexer(CharStream input) { - this(input, new RecognizerSharedState()); - } - public AssemblerLexer(CharStream input, RecognizerSharedState state) { - super(input,state); - } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g"; } - - // $ANTLR start "T__9" - public final void mT__9() throws RecognitionException { - try { - int _type = T__9; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:2:6: ( ':' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:2:8: ':' - { - match(':'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__9" - - // $ANTLR start "T__10" - public final void mT__10() throws RecognitionException { - try { - int _type = T__10; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:3:7: ( 'goto' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:3:9: 'goto' - { - match("goto"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__10" - - // $ANTLR start "T__11" - public final void mT__11() throws RecognitionException { - try { - int _type = T__11; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:4:7: ( 'iadd' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:4:9: 'iadd' - { - match("iadd"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__11" - - // $ANTLR start "T__12" - public final void mT__12() throws RecognitionException { - try { - int _type = T__12; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:5:7: ( 'iand' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:5:9: 'iand' - { - match("iand"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__12" - - // $ANTLR start "T__13" - public final void mT__13() throws RecognitionException { - try { - int _type = T__13; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:6:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:6:9: 'iconst_0' - { - match("iconst_0"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__13" - - // $ANTLR start "T__14" - public final void mT__14() throws RecognitionException { - try { - int _type = T__14; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:7:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:7:9: 'iconst_1' - { - match("iconst_1"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__14" - - // $ANTLR start "T__15" - public final void mT__15() throws RecognitionException { - try { - int _type = T__15; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:8:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:8:9: 'iconst_2' - { - match("iconst_2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__15" - - // $ANTLR start "T__16" - public final void mT__16() throws RecognitionException { - try { - int _type = T__16; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:9:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:9:9: 'iconst_3' - { - match("iconst_3"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__16" - - // $ANTLR start "T__17" - public final void mT__17() throws RecognitionException { - try { - int _type = T__17; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:10:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:10:9: 'iconst_4' - { - match("iconst_4"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__17" - - // $ANTLR start "T__18" - public final void mT__18() throws RecognitionException { - try { - int _type = T__18; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:11:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:11:9: 'iconst_5' - { - match("iconst_5"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__18" - - // $ANTLR start "T__19" - public final void mT__19() throws RecognitionException { - try { - int _type = T__19; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:12:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:12:9: 'iconst_m1' - { - match("iconst_m1"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__19" - - // $ANTLR start "T__20" - public final void mT__20() throws RecognitionException { - try { - int _type = T__20; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:7: ( 'idiv' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:9: 'idiv' - { - match("idiv"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__20" - - // $ANTLR start "T__21" - public final void mT__21() throws RecognitionException { - try { - int _type = T__21; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:14:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:14:9: 'if_icmpeq' - { - match("if_icmpeq"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__21" - - // $ANTLR start "T__22" - public final void mT__22() throws RecognitionException { - try { - int _type = T__22; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:15:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:15:9: 'if_icmpge' - { - match("if_icmpge"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__22" - - // $ANTLR start "T__23" - public final void mT__23() throws RecognitionException { - try { - int _type = T__23; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:9: 'if_icmpgt' - { - match("if_icmpgt"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__23" - - // $ANTLR start "T__24" - public final void mT__24() throws RecognitionException { - try { - int _type = T__24; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:17:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:17:9: 'if_icmple' - { - match("if_icmple"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__24" - - // $ANTLR start "T__25" - public final void mT__25() throws RecognitionException { - try { - int _type = T__25; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:18:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:18:9: 'if_icmplt' - { - match("if_icmplt"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__25" - - // $ANTLR start "T__26" - public final void mT__26() throws RecognitionException { - try { - int _type = T__26; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:19:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:19:9: 'if_icmpne' - { - match("if_icmpne"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__26" - - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { - try { - int _type = T__27; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:9: 'ifeq' - { - match("ifeq"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__27" - - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { - try { - int _type = T__28; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:21:7: ( 'ifge' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:21:9: 'ifge' - { - match("ifge"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__28" - - // $ANTLR start "T__29" - public final void mT__29() throws RecognitionException { - try { - int _type = T__29; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:22:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:22:9: 'ifgt' - { - match("ifgt"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__29" - - // $ANTLR start "T__30" - public final void mT__30() throws RecognitionException { - try { - int _type = T__30; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:23:7: ( 'ifle' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:23:9: 'ifle' - { - match("ifle"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__30" - - // $ANTLR start "T__31" - public final void mT__31() throws RecognitionException { - try { - int _type = T__31; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:24:7: ( 'iflt' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:24:9: 'iflt' - { - match("iflt"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__31" - - // $ANTLR start "T__32" - public final void mT__32() throws RecognitionException { - try { - int _type = T__32; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:25:7: ( 'ifne' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:25:9: 'ifne' - { - match("ifne"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__32" - - // $ANTLR start "T__33" - public final void mT__33() throws RecognitionException { - try { - int _type = T__33; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:26:7: ( 'iinc' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:26:9: 'iinc' - { - match("iinc"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__33" - - // $ANTLR start "T__34" - public final void mT__34() throws RecognitionException { - try { - int _type = T__34; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:27:7: ( 'iload' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:27:9: 'iload' - { - match("iload"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__34" - - // $ANTLR start "T__35" - public final void mT__35() throws RecognitionException { - try { - int _type = T__35; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:28:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:28:9: 'iload_0' - { - match("iload_0"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__35" - - // $ANTLR start "T__36" - public final void mT__36() throws RecognitionException { - try { - int _type = T__36; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:29:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:29:9: 'iload_1' - { - match("iload_1"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__36" - - // $ANTLR start "T__37" - public final void mT__37() throws RecognitionException { - try { - int _type = T__37; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:30:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:30:9: 'iload_2' - { - match("iload_2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__37" - - // $ANTLR start "T__38" - public final void mT__38() throws RecognitionException { - try { - int _type = T__38; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:31:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:31:9: 'iload_3' - { - match("iload_3"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__38" - - // $ANTLR start "T__39" - public final void mT__39() throws RecognitionException { - try { - int _type = T__39; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:32:7: ( 'imul' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:32:9: 'imul' - { - match("imul"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__39" - - // $ANTLR start "T__40" - public final void mT__40() throws RecognitionException { - try { - int _type = T__40; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:33:7: ( 'ineg' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:33:9: 'ineg' - { - match("ineg"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__40" - - // $ANTLR start "T__41" - public final void mT__41() throws RecognitionException { - try { - int _type = T__41; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:34:7: ( 'ior' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:34:9: 'ior' - { - match("ior"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__41" - - // $ANTLR start "T__42" - public final void mT__42() throws RecognitionException { - try { - int _type = T__42; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:35:7: ( 'irem' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:35:9: 'irem' - { - match("irem"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__42" - - // $ANTLR start "T__43" - public final void mT__43() throws RecognitionException { - try { - int _type = T__43; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:36:7: ( 'istore' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:36:9: 'istore' - { - match("istore"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__43" - - // $ANTLR start "T__44" - public final void mT__44() throws RecognitionException { - try { - int _type = T__44; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:37:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:37:9: 'istore_0' - { - match("istore_0"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__44" - - // $ANTLR start "T__45" - public final void mT__45() throws RecognitionException { - try { - int _type = T__45; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:38:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:38:9: 'istore_1' - { - match("istore_1"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__45" - - // $ANTLR start "T__46" - public final void mT__46() throws RecognitionException { - try { - int _type = T__46; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:39:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:39:9: 'istore_2' - { - match("istore_2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__46" - - // $ANTLR start "T__47" - public final void mT__47() throws RecognitionException { - try { - int _type = T__47; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:40:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:40:9: 'istore_3' - { - match("istore_3"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__47" - - // $ANTLR start "T__48" - public final void mT__48() throws RecognitionException { - try { - int _type = T__48; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:41:7: ( 'isub' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:41:9: 'isub' - { - match("isub"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__48" - - // $ANTLR start "T__49" - public final void mT__49() throws RecognitionException { - try { - int _type = T__49; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:42:7: ( 'ixor' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:42:9: 'ixor' - { - match("ixor"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__49" - - // $ANTLR start "T__50" - public final void mT__50() throws RecognitionException { - try { - int _type = T__50; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:43:7: ( 'ldc' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:43:9: 'ldc' - { - match("ldc"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__50" - - // $ANTLR start "T__51" - public final void mT__51() throws RecognitionException { - try { - int _type = T__51; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:44:7: ( 'nop' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:44:9: 'nop' - { - match("nop"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__51" - - // $ANTLR start "T__52" - public final void mT__52() throws RecognitionException { - try { - int _type = T__52; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:45:7: ( 'pop' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:45:9: 'pop' - { - match("pop"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__52" - - // $ANTLR start "T__53" - public final void mT__53() throws RecognitionException { - try { - int _type = T__53; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:46:7: ( 'pop2' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:46:9: 'pop2' - { - match("pop2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__53" - - // $ANTLR start "NULL" - public final void mNULL() throws RecognitionException { - try { - int _type = NULL; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:5: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:7: ( 'null' | 'NULL' ) - { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:7: ( 'null' | 'NULL' ) - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0=='n') ) { - alt1=1; - } - else if ( (LA1_0=='N') ) { - alt1=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - - throw nvae; - - } - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:8: 'null' - { - match("null"); - - - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:17: 'NULL' - { - match("NULL"); - - - - } - break; - - } - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "NULL" - - // $ANTLR start "INT" - public final void mINT() throws RecognitionException { - try { - int _type = INT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:5: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:7: ( '-' )? ( '0' .. '9' )+ - { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:7: ( '-' )? - int alt2=2; - int LA2_0 = input.LA(1); - - if ( (LA2_0=='-') ) { - alt2=1; - } - switch (alt2) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:7: '-' - { - match('-'); - - } - break; - - } - - - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:12: ( '0' .. '9' )+ - int cnt3=0; - loop3: - do { - int alt3=2; - int LA3_0 = input.LA(1); - - if ( ((LA3_0 >= '0' && LA3_0 <= '9')) ) { - alt3=1; - } - - - switch (alt3) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g: - { - if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - } - break; - - default : - if ( cnt3 >= 1 ) break loop3; - EarlyExitException eee = - new EarlyExitException(3, input); - throw eee; - } - cnt3++; - } while (true); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "INT" - - // $ANTLR start "ID" - public final void mID() throws RecognitionException { - try { - int _type = ID; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - { - if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - loop4: - do { - int alt4=2; - int LA4_0 = input.LA(1); - - if ( (LA4_0=='.'||(LA4_0 >= '0' && LA4_0 <= '9')||(LA4_0 >= 'A' && LA4_0 <= 'Z')||(LA4_0 >= 'a' && LA4_0 <= 'z')) ) { - alt4=1; - } - - - switch (alt4) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g: - { - if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - } - break; - - default : - break loop4; - } - } while (true); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "ID" - - // $ANTLR start "NOVA_LINHA" - public final void mNOVA_LINHA() throws RecognitionException { - try { - int _type = NOVA_LINHA; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:84:12: ( ';' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:84:14: ';' - { - match(';'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "NOVA_LINHA" - - // $ANTLR start "WS" - public final void mWS() throws RecognitionException { - try { - int _type = WS; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:86:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:86:6: ( ' ' | '\\t' | '\\r' | '\\n' ) - { - if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - skip(); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "WS" - - public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:8: ( T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | NULL | INT | ID | NOVA_LINHA | WS ) - int alt5=50; - alt5 = dfa5.predict(input); - switch (alt5) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:10: T__9 - { - mT__9(); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:15: T__10 - { - mT__10(); - - - } - break; - case 3 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:21: T__11 - { - mT__11(); - - - } - break; - case 4 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:27: T__12 - { - mT__12(); - - - } - break; - case 5 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:33: T__13 - { - mT__13(); - - - } - break; - case 6 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:39: T__14 - { - mT__14(); - - - } - break; - case 7 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:45: T__15 - { - mT__15(); - - - } - break; - case 8 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:51: T__16 - { - mT__16(); - - - } - break; - case 9 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:57: T__17 - { - mT__17(); - - - } - break; - case 10 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:63: T__18 - { - mT__18(); - - - } - break; - case 11 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:69: T__19 - { - mT__19(); - - - } - break; - case 12 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:75: T__20 - { - mT__20(); - - - } - break; - case 13 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:81: T__21 - { - mT__21(); - - - } - break; - case 14 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:87: T__22 - { - mT__22(); - - - } - break; - case 15 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:93: T__23 - { - mT__23(); - - - } - break; - case 16 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:99: T__24 - { - mT__24(); - - - } - break; - case 17 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:105: T__25 - { - mT__25(); - - - } - break; - case 18 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:111: T__26 - { - mT__26(); - - - } - break; - case 19 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:117: T__27 - { - mT__27(); - - - } - break; - case 20 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:123: T__28 - { - mT__28(); - - - } - break; - case 21 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:129: T__29 - { - mT__29(); - - - } - break; - case 22 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:135: T__30 - { - mT__30(); - - - } - break; - case 23 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:141: T__31 - { - mT__31(); - - - } - break; - case 24 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:147: T__32 - { - mT__32(); - - - } - break; - case 25 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:153: T__33 - { - mT__33(); - - - } - break; - case 26 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:159: T__34 - { - mT__34(); - - - } - break; - case 27 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:165: T__35 - { - mT__35(); - - - } - break; - case 28 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:171: T__36 - { - mT__36(); - - - } - break; - case 29 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:177: T__37 - { - mT__37(); - - - } - break; - case 30 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:183: T__38 - { - mT__38(); - - - } - break; - case 31 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:189: T__39 - { - mT__39(); - - - } - break; - case 32 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:195: T__40 - { - mT__40(); - - - } - break; - case 33 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:201: T__41 - { - mT__41(); - - - } - break; - case 34 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:207: T__42 - { - mT__42(); - - - } - break; - case 35 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:213: T__43 - { - mT__43(); - - - } - break; - case 36 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:219: T__44 - { - mT__44(); - - - } - break; - case 37 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:225: T__45 - { - mT__45(); - - - } - break; - case 38 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:231: T__46 - { - mT__46(); - - - } - break; - case 39 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:237: T__47 - { - mT__47(); - - - } - break; - case 40 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:243: T__48 - { - mT__48(); - - - } - break; - case 41 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:249: T__49 - { - mT__49(); - - - } - break; - case 42 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:255: T__50 - { - mT__50(); - - - } - break; - case 43 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:261: T__51 - { - mT__51(); - - - } - break; - case 44 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:267: T__52 - { - mT__52(); - - - } - break; - case 45 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:273: T__53 - { - mT__53(); - - - } - break; - case 46 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:279: NULL - { - mNULL(); - - - } - break; - case 47 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:284: INT - { - mINT(); - - - } - break; - case 48 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:288: ID - { - mID(); - - - } - break; - case 49 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:291: NOVA_LINHA - { - mNOVA_LINHA(); - - - } - break; - case 50 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:302: WS - { - mWS(); - - - } - break; - - } - - } - - - protected DFA5 dfa5 = new DFA5(this); - static final String DFA5_eotS = - "\2\uffff\6\11\4\uffff\27\11\1\uffff\10\11\1\106\4\11\1\113\1\114"+ - "\1\11\1\117\1\11\1\121\1\122\1\123\1\11\1\125\1\uffff\1\127\1\130"+ - "\1\131\1\132\1\133\1\134\1\135\1\11\1\137\1\140\1\uffff\1\141\1"+ - "\11\1\143\1\144\2\uffff\1\145\1\146\1\uffff\1\145\3\uffff\1\11\11"+ - "\uffff\1\152\3\uffff\1\11\4\uffff\1\11\3\uffff\1\163\33\uffff"; - static final String DFA5_eofS = - "\u0087\uffff"; - static final String DFA5_minS = - "\1\11\1\uffff\1\157\1\141\1\144\2\157\1\125\4\uffff\1\164\1\144"+ - "\1\157\1\151\1\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157"+ - "\1\143\1\160\1\154\1\160\1\114\1\157\2\144\1\156\1\166\1\151\1\161"+ - "\3\145\1\143\1\141\1\154\1\147\1\56\1\155\1\157\1\142\1\162\2\56"+ - "\1\154\1\56\1\114\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\uffff"+ - "\1\56\1\162\2\56\2\uffff\2\56\1\uffff\1\56\3\uffff\1\164\1\uffff"+ - "\1\155\7\uffff\1\56\3\uffff\1\145\4\uffff\1\137\1\160\1\60\1\uffff"+ - "\1\56\1\60\1\145\4\uffff\1\60\11\uffff\2\145\11\uffff"; - static final String DFA5_maxS = - "\1\172\1\uffff\1\157\1\170\1\144\1\165\1\157\1\125\4\uffff\1\164"+ - "\1\156\1\157\1\151\2\156\1\157\1\165\1\145\1\162\1\145\1\165\1\157"+ - "\1\143\1\160\1\154\1\160\1\114\1\157\2\144\1\156\1\166\1\151\1\161"+ - "\2\164\1\145\1\143\1\141\1\154\1\147\1\172\1\155\1\157\1\142\1\162"+ - "\2\172\1\154\1\172\1\114\3\172\1\163\1\172\1\143\7\172\1\144\2\172"+ - "\1\uffff\1\172\1\162\2\172\2\uffff\2\172\1\uffff\1\172\3\uffff\1"+ - "\164\1\uffff\1\155\7\uffff\1\172\3\uffff\1\145\4\uffff\1\137\1\160"+ - "\1\63\1\uffff\1\172\1\155\1\156\4\uffff\1\63\11\uffff\2\164\11\uffff"; - static final String DFA5_acceptS = - "\1\uffff\1\1\6\uffff\1\57\1\60\1\61\1\62\72\uffff\1\41\4\uffff\1"+ - "\52\1\53\2\uffff\1\54\1\uffff\1\2\1\3\1\4\1\uffff\1\14\1\uffff\1"+ - "\23\1\24\1\25\1\26\1\27\1\30\1\31\1\uffff\1\37\1\40\1\42\1\uffff"+ - "\1\50\1\51\1\56\1\55\3\uffff\1\32\3\uffff\1\33\1\34\1\35\1\36\1"+ - "\uffff\1\43\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\15\2\uffff\1\22\1"+ - "\44\1\45\1\46\1\47\1\16\1\17\1\20\1\21"; - static final String DFA5_specialS = - "\u0087\uffff}>"; - static final String[] DFA5_transitionS = { - "\2\13\2\uffff\1\13\22\uffff\1\13\14\uffff\1\10\2\uffff\12\10"+ - "\1\1\1\12\5\uffff\15\11\1\7\14\11\6\uffff\6\11\1\2\1\11\1\3"+ - "\2\11\1\4\1\11\1\5\1\11\1\6\12\11", - "", - "\1\14", - "\1\15\1\uffff\1\16\1\17\1\uffff\1\20\2\uffff\1\21\2\uffff\1"+ - "\22\1\23\1\24\1\25\2\uffff\1\26\1\27\4\uffff\1\30", - "\1\31", - "\1\32\5\uffff\1\33", - "\1\34", - "\1\35", - "", - "", - "", - "", - "\1\36", - "\1\37\11\uffff\1\40", - "\1\41", - "\1\42", - "\1\43\5\uffff\1\44\1\uffff\1\45\4\uffff\1\46\1\uffff\1\47", - "\1\50", - "\1\51", - "\1\52", - "\1\53", - "\1\54", - "\1\55", - "\1\56\1\57", - "\1\60", - "\1\61", - "\1\62", - "\1\63", - "\1\64", - "\1\65", - "\1\66", - "\1\67", - "\1\70", - "\1\71", - "\1\72", - "\1\73", - "\1\74", - "\1\75\16\uffff\1\76", - "\1\77\16\uffff\1\100", - "\1\101", - "\1\102", - "\1\103", - "\1\104", - "\1\105", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\107", - "\1\110", - "\1\111", - "\1\112", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\115", - "\1\11\1\uffff\2\11\1\116\7\11\7\uffff\32\11\6\uffff\32\11", - "\1\120", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\124", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\126", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\136", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\142", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "", - "", - "", - "\1\147", - "", - "\1\150", - "", - "", - "", - "", - "", - "", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\4\uffff\1\151\1\uffff\32"+ - "\11", - "", - "", - "", - "\1\153", - "", - "", - "", - "", - "\1\154", - "\1\155", - "\1\156\1\157\1\160\1\161", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\4\uffff\1\162\1\uffff\32"+ - "\11", - "\1\164\1\165\1\166\1\167\1\170\1\171\67\uffff\1\172", - "\1\173\1\uffff\1\174\4\uffff\1\175\1\uffff\1\176", - "", - "", - "", - "", - "\1\177\1\u0080\1\u0081\1\u0082", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "\1\u0083\16\uffff\1\u0084", - "\1\u0085\16\uffff\1\u0086", - "", - "", - "", - "", - "", - "", - "", - "", - "" - }; - - static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS); - static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS); - static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS); - static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS); - static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS); - static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS); - static final short[][] DFA5_transition; - - static { - int numStates = DFA5_transitionS.length; - DFA5_transition = new short[numStates][]; - for (int i=0; i= '0' && LA3_0 <= '9')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + } + break; + + default : + if ( cnt3 >= 1 ) break loop3; + EarlyExitException eee = + new EarlyExitException(3, input); + throw eee; + } + cnt3++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INT" + + // $ANTLR start "ID" + public final void mID() throws RecognitionException { + try { + int _type = ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + { + if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='.'||(LA4_0 >= '0' && LA4_0 <= '9')||(LA4_0 >= 'A' && LA4_0 <= 'Z')||(LA4_0 >= 'a' && LA4_0 <= 'z')) ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g: + { + if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + } + break; + + default : + break loop4; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ID" + + // $ANTLR start "NOVA_LINHA" + public final void mNOVA_LINHA() throws RecognitionException { + try { + int _type = NOVA_LINHA; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:84:12: ( ';' ) + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:84:14: ';' + { + match(';'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NOVA_LINHA" + + // $ANTLR start "WS" + public final void mWS() throws RecognitionException { + try { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:86:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:86:6: ( ' ' | '\\t' | '\\r' | '\\n' ) + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + skip(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "WS" + + public void mTokens() throws RecognitionException { + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:8: ( T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | NULL | INT | ID | NOVA_LINHA | WS ) + int alt5=50; + alt5 = dfa5.predict(input); + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:10: T__9 + { + mT__9(); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:15: T__10 + { + mT__10(); + + + } + break; + case 3 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:21: T__11 + { + mT__11(); + + + } + break; + case 4 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:27: T__12 + { + mT__12(); + + + } + break; + case 5 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:33: T__13 + { + mT__13(); + + + } + break; + case 6 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:39: T__14 + { + mT__14(); + + + } + break; + case 7 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:45: T__15 + { + mT__15(); + + + } + break; + case 8 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:51: T__16 + { + mT__16(); + + + } + break; + case 9 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:57: T__17 + { + mT__17(); + + + } + break; + case 10 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:63: T__18 + { + mT__18(); + + + } + break; + case 11 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:69: T__19 + { + mT__19(); + + + } + break; + case 12 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:75: T__20 + { + mT__20(); + + + } + break; + case 13 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:81: T__21 + { + mT__21(); + + + } + break; + case 14 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:87: T__22 + { + mT__22(); + + + } + break; + case 15 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:93: T__23 + { + mT__23(); + + + } + break; + case 16 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:99: T__24 + { + mT__24(); + + + } + break; + case 17 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:105: T__25 + { + mT__25(); + + + } + break; + case 18 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:111: T__26 + { + mT__26(); + + + } + break; + case 19 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:117: T__27 + { + mT__27(); + + + } + break; + case 20 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:123: T__28 + { + mT__28(); + + + } + break; + case 21 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:129: T__29 + { + mT__29(); + + + } + break; + case 22 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:135: T__30 + { + mT__30(); + + + } + break; + case 23 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:141: T__31 + { + mT__31(); + + + } + break; + case 24 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:147: T__32 + { + mT__32(); + + + } + break; + case 25 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:153: T__33 + { + mT__33(); + + + } + break; + case 26 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:159: T__34 + { + mT__34(); + + + } + break; + case 27 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:165: T__35 + { + mT__35(); + + + } + break; + case 28 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:171: T__36 + { + mT__36(); + + + } + break; + case 29 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:177: T__37 + { + mT__37(); + + + } + break; + case 30 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:183: T__38 + { + mT__38(); + + + } + break; + case 31 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:189: T__39 + { + mT__39(); + + + } + break; + case 32 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:195: T__40 + { + mT__40(); + + + } + break; + case 33 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:201: T__41 + { + mT__41(); + + + } + break; + case 34 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:207: T__42 + { + mT__42(); + + + } + break; + case 35 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:213: T__43 + { + mT__43(); + + + } + break; + case 36 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:219: T__44 + { + mT__44(); + + + } + break; + case 37 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:225: T__45 + { + mT__45(); + + + } + break; + case 38 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:231: T__46 + { + mT__46(); + + + } + break; + case 39 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:237: T__47 + { + mT__47(); + + + } + break; + case 40 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:243: T__48 + { + mT__48(); + + + } + break; + case 41 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:249: T__49 + { + mT__49(); + + + } + break; + case 42 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:255: T__50 + { + mT__50(); + + + } + break; + case 43 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:261: T__51 + { + mT__51(); + + + } + break; + case 44 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:267: T__52 + { + mT__52(); + + + } + break; + case 45 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:273: T__53 + { + mT__53(); + + + } + break; + case 46 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:279: NULL + { + mNULL(); + + + } + break; + case 47 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:284: INT + { + mINT(); + + + } + break; + case 48 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:288: ID + { + mID(); + + + } + break; + case 49 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:291: NOVA_LINHA + { + mNOVA_LINHA(); + + + } + break; + case 50 : + // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:302: WS + { + mWS(); + + + } + break; + + } + + } + + + protected DFA5 dfa5 = new DFA5(this); + static final String DFA5_eotS = + "\2\uffff\6\11\4\uffff\27\11\1\uffff\10\11\1\106\4\11\1\113\1\114"+ + "\1\11\1\117\1\11\1\121\1\122\1\123\1\11\1\125\1\uffff\1\127\1\130"+ + "\1\131\1\132\1\133\1\134\1\135\1\11\1\137\1\140\1\uffff\1\141\1"+ + "\11\1\143\1\144\2\uffff\1\145\1\146\1\uffff\1\145\3\uffff\1\11\11"+ + "\uffff\1\152\3\uffff\1\11\4\uffff\1\11\3\uffff\1\163\33\uffff"; + static final String DFA5_eofS = + "\u0087\uffff"; + static final String DFA5_minS = + "\1\11\1\uffff\1\157\1\141\1\144\2\157\1\125\4\uffff\1\164\1\144"+ + "\1\157\1\151\1\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157"+ + "\1\143\1\160\1\154\1\160\1\114\1\157\2\144\1\156\1\166\1\151\1\161"+ + "\3\145\1\143\1\141\1\154\1\147\1\56\1\155\1\157\1\142\1\162\2\56"+ + "\1\154\1\56\1\114\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\uffff"+ + "\1\56\1\162\2\56\2\uffff\2\56\1\uffff\1\56\3\uffff\1\164\1\uffff"+ + "\1\155\7\uffff\1\56\3\uffff\1\145\4\uffff\1\137\1\160\1\60\1\uffff"+ + "\1\56\1\60\1\145\4\uffff\1\60\11\uffff\2\145\11\uffff"; + static final String DFA5_maxS = + "\1\172\1\uffff\1\157\1\170\1\144\1\165\1\157\1\125\4\uffff\1\164"+ + "\1\156\1\157\1\151\2\156\1\157\1\165\1\145\1\162\1\145\1\165\1\157"+ + "\1\143\1\160\1\154\1\160\1\114\1\157\2\144\1\156\1\166\1\151\1\161"+ + "\2\164\1\145\1\143\1\141\1\154\1\147\1\172\1\155\1\157\1\142\1\162"+ + "\2\172\1\154\1\172\1\114\3\172\1\163\1\172\1\143\7\172\1\144\2\172"+ + "\1\uffff\1\172\1\162\2\172\2\uffff\2\172\1\uffff\1\172\3\uffff\1"+ + "\164\1\uffff\1\155\7\uffff\1\172\3\uffff\1\145\4\uffff\1\137\1\160"+ + "\1\63\1\uffff\1\172\1\155\1\156\4\uffff\1\63\11\uffff\2\164\11\uffff"; + static final String DFA5_acceptS = + "\1\uffff\1\1\6\uffff\1\57\1\60\1\61\1\62\72\uffff\1\41\4\uffff\1"+ + "\52\1\53\2\uffff\1\54\1\uffff\1\2\1\3\1\4\1\uffff\1\14\1\uffff\1"+ + "\23\1\24\1\25\1\26\1\27\1\30\1\31\1\uffff\1\37\1\40\1\42\1\uffff"+ + "\1\50\1\51\1\56\1\55\3\uffff\1\32\3\uffff\1\33\1\34\1\35\1\36\1"+ + "\uffff\1\43\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\15\2\uffff\1\22\1"+ + "\44\1\45\1\46\1\47\1\16\1\17\1\20\1\21"; + static final String DFA5_specialS = + "\u0087\uffff}>"; + static final String[] DFA5_transitionS = { + "\2\13\2\uffff\1\13\22\uffff\1\13\14\uffff\1\10\2\uffff\12\10"+ + "\1\1\1\12\5\uffff\15\11\1\7\14\11\6\uffff\6\11\1\2\1\11\1\3"+ + "\2\11\1\4\1\11\1\5\1\11\1\6\12\11", + "", + "\1\14", + "\1\15\1\uffff\1\16\1\17\1\uffff\1\20\2\uffff\1\21\2\uffff\1"+ + "\22\1\23\1\24\1\25\2\uffff\1\26\1\27\4\uffff\1\30", + "\1\31", + "\1\32\5\uffff\1\33", + "\1\34", + "\1\35", + "", + "", + "", + "", + "\1\36", + "\1\37\11\uffff\1\40", + "\1\41", + "\1\42", + "\1\43\5\uffff\1\44\1\uffff\1\45\4\uffff\1\46\1\uffff\1\47", + "\1\50", + "\1\51", + "\1\52", + "\1\53", + "\1\54", + "\1\55", + "\1\56\1\57", + "\1\60", + "\1\61", + "\1\62", + "\1\63", + "\1\64", + "\1\65", + "\1\66", + "\1\67", + "\1\70", + "\1\71", + "\1\72", + "\1\73", + "\1\74", + "\1\75\16\uffff\1\76", + "\1\77\16\uffff\1\100", + "\1\101", + "\1\102", + "\1\103", + "\1\104", + "\1\105", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\107", + "\1\110", + "\1\111", + "\1\112", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\115", + "\1\11\1\uffff\2\11\1\116\7\11\7\uffff\32\11\6\uffff\32\11", + "\1\120", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\124", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\126", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\136", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\142", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "", + "", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "", + "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", + "", + "", + "", + "\1\147", + "", + "\1\150", + "", + "", + "", + "", + "", + "", + "", + "\1\11\1\uffff\12\11\7\uffff\32\11\4\uffff\1\151\1\uffff\32"+ + "\11", + "", + "", + "", + "\1\153", + "", + "", + "", + "", + "\1\154", + "\1\155", + "\1\156\1\157\1\160\1\161", + "", + "\1\11\1\uffff\12\11\7\uffff\32\11\4\uffff\1\162\1\uffff\32"+ + "\11", + "\1\164\1\165\1\166\1\167\1\170\1\171\67\uffff\1\172", + "\1\173\1\uffff\1\174\4\uffff\1\175\1\uffff\1\176", + "", + "", + "", + "", + "\1\177\1\u0080\1\u0081\1\u0082", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\u0083\16\uffff\1\u0084", + "\1\u0085\16\uffff\1\u0086", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS); + static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS); + static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS); + static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS); + static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS); + static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS); + static final short[][] DFA5_transition; + + static { + int numStates = DFA5_transitionS.length; + DFA5_transition = new short[numStates][]; + for (int i=0; i Date: Thu, 31 May 2012 21:34:26 -0300 Subject: [PATCH 04/79] commit --- .../interpretador/bytecodeassembler/parser/AssemblerLexer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index c3b2c71..f128289 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -15,7 +15,7 @@ public class AssemblerLexer extends Lexer { public static final int T__11=11; public static final int T__12=12; public static final int T__13=13; - public static final int T__14=14; + public static final int T__14=14;; public static final int T__15=15; public static final int T__16=16; public static final int T__17=17; From 19f5653d75299afe3d274f6b1dd47863387d7c21 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Thu, 31 May 2012 21:35:04 -0300 Subject: [PATCH 05/79] commit --- .../interpretador/bytecodeassembler/parser/AssemblerLexer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index f128289..c3b2c71 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -15,7 +15,7 @@ public class AssemblerLexer extends Lexer { public static final int T__11=11; public static final int T__12=12; public static final int T__13=13; - public static final int T__14=14;; + public static final int T__14=14; public static final int T__15=15; public static final int T__16=16; public static final int T__17=17; From 31b123c07294a559401200c5fa2eca160e2b927a Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Mon, 4 Jun 2012 10:38:41 -0300 Subject: [PATCH 06/79] commit --- .../intermediario/gramatica/Intermediario.g | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g b/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g new file mode 100644 index 0000000..63c8948 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g @@ -0,0 +1,35 @@ +grammar Intermediario; + +@members { + + public void traduzirLoad(Token opc, Token op); + public void traduzirStore(Token opc, Token op); + public void traduzirArimetica(Token opc); + +} + +programa : instrucao*; + +instrucao : (nop | load | store | aritmetica); + +nop : 'CREATE_INT' ID + | 'WRITE_INT' ID + ; + +load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} + | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} + ; + +store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; + +artimetica : a = 'ADD' {traduzirArimetica($a);} + | a = 'SUB' {traduzirArimetica($a);} + | a = 'MULT' {traduzirArimetica($a);} + | a = 'DIV' {traduzirArimetica($a);} + ; + +INT : '-'? '0'..'9'+ ; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +WS : (' ' | '\t' | '\r' | '\n') {skip();} ; From cc9017dec4856b8b7f0ec5b42fd290d3c9cbb203 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Mon, 4 Jun 2012 11:01:10 -0300 Subject: [PATCH 07/79] commit --- .../tradutor/intermediario/{gramatica => }/Intermediario.g | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/br/ufpb/iged/interpretador/tradutor/intermediario/{gramatica => }/Intermediario.g (100%) diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g b/src/br/ufpb/iged/interpretador/tradutor/intermediario/Intermediario.g similarity index 100% rename from src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g rename to src/br/ufpb/iged/interpretador/tradutor/intermediario/Intermediario.g From f8e6c5458ad7c2e65487391ded7d8ef68286929d Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Mon, 4 Jun 2012 12:50:11 -0300 Subject: [PATCH 08/79] commit --- build.xml | 70 +- .../{ => gramatica}/Intermediario.g | 17 +- .../intermediario/parser/Intermediario.tokens | 21 + .../parser/IntermediarioLexer.java | 921 ++++++++++++++++++ .../parser/IntermediarioParser.java | 493 ++++++++++ .../intermediario/principal/Main.java | 5 + .../principal/TradutorIntermediario.java | 121 +++ 7 files changed, 1608 insertions(+), 40 deletions(-) rename src/br/ufpb/iged/interpretador/tradutor/intermediario/{ => gramatica}/Intermediario.g (55%) create mode 100644 src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens create mode 100644 src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java create mode 100644 src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java create mode 100644 src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.java create mode 100644 src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java diff --git a/build.xml b/build.xml index 3a392b5..e8776b1 100755 --- a/build.xml +++ b/build.xml @@ -1,32 +1,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/Intermediario.g b/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g similarity index 55% rename from src/br/ufpb/iged/interpretador/tradutor/intermediario/Intermediario.g rename to src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g index 63c8948..960024f 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/Intermediario.g +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g @@ -2,19 +2,20 @@ grammar Intermediario; @members { - public void traduzirLoad(Token opc, Token op); - public void traduzirStore(Token opc, Token op); - public void traduzirArimetica(Token opc); + protected void adicionarVariavel(Token op); + protected void traduzirLoad(Token opc, Token op); + protected void traduzirStore(Token opc, Token op); + protected void traduzirArimetica(Token opc); } programa : instrucao*; -instrucao : (nop | load | store | aritmetica); +instrucao : (create | load | store | aritmetica); -nop : 'CREATE_INT' ID - | 'WRITE_INT' ID - ; +create : 'CREATE_INT' a = ID {adicionarVariavel($a);} + | 'DELETE_INT' a = ID + ; load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} @@ -22,7 +23,7 @@ load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; -artimetica : a = 'ADD' {traduzirArimetica($a);} +aritmetica : a = 'ADD' {traduzirArimetica($a);} | a = 'SUB' {traduzirArimetica($a);} | a = 'MULT' {traduzirArimetica($a);} | a = 'DIV' {traduzirArimetica($a);} diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens new file mode 100644 index 0000000..0b7c472 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens @@ -0,0 +1,21 @@ +T__7=7 +T__8=8 +T__9=9 +T__10=10 +T__11=11 +T__12=12 +T__13=13 +T__14=14 +T__15=15 +ID=4 +INT=5 +WS=6 +'ADD'=7 +'CREATE_INT'=8 +'DELETE_INT'=9 +'DIV'=10 +'MULT'=11 +'READ_INT'=12 +'READ_INTC'=13 +'SUB'=14 +'WRITE_INT'=15 diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java new file mode 100644 index 0000000..b59614c --- /dev/null +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java @@ -0,0 +1,921 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g 2012-06-04 12:30:44 + +package br.ufpb.iged.interpretador.tradutor.intermediario.parser; + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public class IntermediarioLexer extends Lexer { + public static final int EOF=-1; + public static final int T__7=7; + public static final int T__8=8; + public static final int T__9=9; + public static final int T__10=10; + public static final int T__11=11; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + public static final int T__15=15; + public static final int ID=4; + public static final int INT=5; + public static final int WS=6; + + // delegates + // delegators + public Lexer[] getDelegates() { + return new Lexer[] {}; + } + + public IntermediarioLexer() {} + public IntermediarioLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public IntermediarioLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g"; } + + // $ANTLR start "T__7" + public final void mT__7() throws RecognitionException { + try { + int _type = T__7; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:2:6: ( 'ADD' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:2:8: 'ADD' + { + match("ADD"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__7" + + // $ANTLR start "T__8" + public final void mT__8() throws RecognitionException { + try { + int _type = T__8; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:3:6: ( 'CREATE_INT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:3:8: 'CREATE_INT' + { + match("CREATE_INT"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__8" + + // $ANTLR start "T__9" + public final void mT__9() throws RecognitionException { + try { + int _type = T__9; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:4:6: ( 'DELETE_INT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:4:8: 'DELETE_INT' + { + match("DELETE_INT"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__9" + + // $ANTLR start "T__10" + public final void mT__10() throws RecognitionException { + try { + int _type = T__10; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:5:7: ( 'DIV' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:5:9: 'DIV' + { + match("DIV"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__10" + + // $ANTLR start "T__11" + public final void mT__11() throws RecognitionException { + try { + int _type = T__11; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:6:7: ( 'MULT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:6:9: 'MULT' + { + match("MULT"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__11" + + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { + try { + int _type = T__12; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:7:7: ( 'READ_INT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:7:9: 'READ_INT' + { + match("READ_INT"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:8:7: ( 'READ_INTC' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:8:9: 'READ_INTC' + { + match("READ_INTC"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:9:7: ( 'SUB' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:9:9: 'SUB' + { + match("SUB"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:10:7: ( 'WRITE_INT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:10:9: 'WRITE_INT' + { + match("WRITE_INT"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__15" + + // $ANTLR start "INT" + public final void mINT() throws RecognitionException { + try { + int _type = INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:5: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:7: ( '-' )? ( '0' .. '9' )+ + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:7: ( '-' )? + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='-') ) { + alt1=1; + } + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:7: '-' + { + match('-'); + + } + break; + + } + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:12: ( '0' .. '9' )+ + int cnt2=0; + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + } + break; + + default : + if ( cnt2 >= 1 ) break loop2; + EarlyExitException eee = + new EarlyExitException(2, input); + throw eee; + } + cnt2++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INT" + + // $ANTLR start "ID" + public final void mID() throws RecognitionException { + try { + int _type = ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:34:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:34:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + { + if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:34:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0=='.'||(LA3_0 >= '0' && LA3_0 <= '9')||(LA3_0 >= 'A' && LA3_0 <= 'Z')||(LA3_0 >= 'a' && LA3_0 <= 'z')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g: + { + if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + } + break; + + default : + break loop3; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ID" + + // $ANTLR start "WS" + public final void mWS() throws RecognitionException { + try { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:36:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:36:6: ( ' ' | '\\t' | '\\r' | '\\n' ) + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + skip(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "WS" + + public void mTokens() throws RecognitionException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:8: ( T__7 | T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | INT | ID | WS ) + int alt4=12; + switch ( input.LA(1) ) { + case 'A': + { + int LA4_1 = input.LA(2); + + if ( (LA4_1=='D') ) { + int LA4_11 = input.LA(3); + + if ( (LA4_11=='D') ) { + int LA4_19 = input.LA(4); + + if ( (LA4_19=='.'||(LA4_19 >= '0' && LA4_19 <= '9')||(LA4_19 >= 'A' && LA4_19 <= 'Z')||(LA4_19 >= 'a' && LA4_19 <= 'z')) ) { + alt4=11; + } + else { + alt4=1; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + break; + case 'C': + { + int LA4_2 = input.LA(2); + + if ( (LA4_2=='R') ) { + int LA4_12 = input.LA(3); + + if ( (LA4_12=='E') ) { + int LA4_20 = input.LA(4); + + if ( (LA4_20=='A') ) { + int LA4_28 = input.LA(5); + + if ( (LA4_28=='T') ) { + int LA4_35 = input.LA(6); + + if ( (LA4_35=='E') ) { + int LA4_40 = input.LA(7); + + if ( (LA4_40=='_') ) { + alt4=2; + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + break; + case 'D': + { + switch ( input.LA(2) ) { + case 'E': + { + int LA4_13 = input.LA(3); + + if ( (LA4_13=='L') ) { + int LA4_21 = input.LA(4); + + if ( (LA4_21=='E') ) { + int LA4_29 = input.LA(5); + + if ( (LA4_29=='T') ) { + int LA4_36 = input.LA(6); + + if ( (LA4_36=='E') ) { + int LA4_41 = input.LA(7); + + if ( (LA4_41=='_') ) { + alt4=3; + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + break; + case 'I': + { + int LA4_14 = input.LA(3); + + if ( (LA4_14=='V') ) { + int LA4_22 = input.LA(4); + + if ( (LA4_22=='.'||(LA4_22 >= '0' && LA4_22 <= '9')||(LA4_22 >= 'A' && LA4_22 <= 'Z')||(LA4_22 >= 'a' && LA4_22 <= 'z')) ) { + alt4=11; + } + else { + alt4=4; + } + } + else { + alt4=11; + } + } + break; + default: + alt4=11; + } + + } + break; + case 'M': + { + int LA4_4 = input.LA(2); + + if ( (LA4_4=='U') ) { + int LA4_15 = input.LA(3); + + if ( (LA4_15=='L') ) { + int LA4_23 = input.LA(4); + + if ( (LA4_23=='T') ) { + int LA4_31 = input.LA(5); + + if ( (LA4_31=='.'||(LA4_31 >= '0' && LA4_31 <= '9')||(LA4_31 >= 'A' && LA4_31 <= 'Z')||(LA4_31 >= 'a' && LA4_31 <= 'z')) ) { + alt4=11; + } + else { + alt4=5; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + break; + case 'R': + { + int LA4_5 = input.LA(2); + + if ( (LA4_5=='E') ) { + int LA4_16 = input.LA(3); + + if ( (LA4_16=='A') ) { + int LA4_24 = input.LA(4); + + if ( (LA4_24=='D') ) { + int LA4_32 = input.LA(5); + + if ( (LA4_32=='_') ) { + int LA4_38 = input.LA(6); + + if ( (LA4_38=='I') ) { + int LA4_42 = input.LA(7); + + if ( (LA4_42=='N') ) { + int LA4_46 = input.LA(8); + + if ( (LA4_46=='T') ) { + int LA4_47 = input.LA(9); + + if ( (LA4_47=='C') ) { + alt4=7; + } + else { + alt4=6; + } + } + else { + NoViableAltException nvae = + new NoViableAltException("", 4, 46, input); + + throw nvae; + + } + } + else { + NoViableAltException nvae = + new NoViableAltException("", 4, 42, input); + + throw nvae; + + } + } + else { + NoViableAltException nvae = + new NoViableAltException("", 4, 38, input); + + throw nvae; + + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + break; + case 'S': + { + int LA4_6 = input.LA(2); + + if ( (LA4_6=='U') ) { + int LA4_17 = input.LA(3); + + if ( (LA4_17=='B') ) { + int LA4_25 = input.LA(4); + + if ( (LA4_25=='.'||(LA4_25 >= '0' && LA4_25 <= '9')||(LA4_25 >= 'A' && LA4_25 <= 'Z')||(LA4_25 >= 'a' && LA4_25 <= 'z')) ) { + alt4=11; + } + else { + alt4=8; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + break; + case 'W': + { + int LA4_7 = input.LA(2); + + if ( (LA4_7=='R') ) { + int LA4_18 = input.LA(3); + + if ( (LA4_18=='I') ) { + int LA4_26 = input.LA(4); + + if ( (LA4_26=='T') ) { + int LA4_34 = input.LA(5); + + if ( (LA4_34=='E') ) { + int LA4_39 = input.LA(6); + + if ( (LA4_39=='_') ) { + alt4=9; + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + else { + alt4=11; + } + } + break; + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + alt4=10; + } + break; + case 'B': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'T': + case 'U': + case 'V': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': + { + alt4=11; + } + break; + case '\t': + case '\n': + case '\r': + case ' ': + { + alt4=12; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + + } + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:10: T__7 + { + mT__7(); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:15: T__8 + { + mT__8(); + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:20: T__9 + { + mT__9(); + + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:25: T__10 + { + mT__10(); + + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:31: T__11 + { + mT__11(); + + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:37: T__12 + { + mT__12(); + + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:43: T__13 + { + mT__13(); + + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:49: T__14 + { + mT__14(); + + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:55: T__15 + { + mT__15(); + + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:61: INT + { + mINT(); + + + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:65: ID + { + mID(); + + + } + break; + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:68: WS + { + mWS(); + + + } + break; + + } + + } + + + + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java new file mode 100644 index 0000000..eb4e8cd --- /dev/null +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java @@ -0,0 +1,493 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g 2012-06-04 12:30:44 + +package br.ufpb.iged.interpretador.tradutor.intermediario.parser; + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public abstract class IntermediarioParser extends Parser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "ID", "INT", "WS", "'ADD'", "'CREATE_INT'", "'DELETE_INT'", "'DIV'", "'MULT'", "'READ_INT'", "'READ_INTC'", "'SUB'", "'WRITE_INT'" + }; + + public static final int EOF=-1; + public static final int T__7=7; + public static final int T__8=8; + public static final int T__9=9; + public static final int T__10=10; + public static final int T__11=11; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + public static final int T__15=15; + public static final int ID=4; + public static final int INT=5; + public static final int WS=6; + + // delegates + public Parser[] getDelegates() { + return new Parser[] {}; + } + + // delegators + + + public IntermediarioParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public IntermediarioParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + } + + public String[] getTokenNames() { return IntermediarioParser.tokenNames; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g"; } + + + + protected abstract void adicionarVariavel(Token op); + protected abstract void traduzirLoad(Token opc, Token op); + protected abstract void traduzirStore(Token opc, Token op); + protected abstract void traduzirArimetica(Token opc); + + + + // $ANTLR start "programa" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:1: programa : ( instrucao )* ; + public final void programa() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:12: ( instrucao )* + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:12: ( instrucao )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( ((LA1_0 >= 7 && LA1_0 <= 15)) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:12: instrucao + { + pushFollow(FOLLOW_instrucao_in_programa16); + instrucao(); + + state._fsp--; + + + } + break; + + default : + break loop1; + } + } while (true); + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "programa" + + + + // $ANTLR start "instrucao" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:1: instrucao : ( create | load | store | aritmetica ) ; + public final void instrucao() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:11: ( ( create | load | store | aritmetica ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:13: ( create | load | store | aritmetica ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:13: ( create | load | store | aritmetica ) + int alt2=4; + switch ( input.LA(1) ) { + case 8: + case 9: + { + alt2=1; + } + break; + case 12: + case 13: + { + alt2=2; + } + break; + case 15: + { + alt2=3; + } + break; + case 7: + case 10: + case 11: + case 14: + { + alt2=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + + } + + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:14: create + { + pushFollow(FOLLOW_create_in_instrucao26); + create(); + + state._fsp--; + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:23: load + { + pushFollow(FOLLOW_load_in_instrucao30); + load(); + + state._fsp--; + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:30: store + { + pushFollow(FOLLOW_store_in_instrucao34); + store(); + + state._fsp--; + + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:38: aritmetica + { + pushFollow(FOLLOW_aritmetica_in_instrucao38); + aritmetica(); + + state._fsp--; + + + } + break; + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "instrucao" + + + + // $ANTLR start "create" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:16:1: create : ( 'CREATE_INT' a= ID | 'DELETE_INT' a= ID ); + public final void create() throws RecognitionException { + Token a=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:16:8: ( 'CREATE_INT' a= ID | 'DELETE_INT' a= ID ) + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==8) ) { + alt3=1; + } + else if ( (LA3_0==9) ) { + alt3=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + + } + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:16:10: 'CREATE_INT' a= ID + { + match(input,8,FOLLOW_8_in_create47); + + a=(Token)match(input,ID,FOLLOW_ID_in_create53); + + adicionarVariavel(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:17:10: 'DELETE_INT' a= ID + { + match(input,9,FOLLOW_9_in_create66); + + a=(Token)match(input,ID,FOLLOW_ID_in_create72); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "create" + + + + // $ANTLR start "load" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:20:1: load : (a= 'READ_INT' b= ID |a= 'READ_INTC' INT ); + public final void load() throws RecognitionException { + Token a=null; + Token b=null; + Token INT1=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:20:6: (a= 'READ_INT' b= ID |a= 'READ_INTC' INT ) + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==12) ) { + alt4=1; + } + else if ( (LA4_0==13) ) { + alt4=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + + } + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:20:8: a= 'READ_INT' b= ID + { + a=(Token)match(input,12,FOLLOW_12_in_load92); + + b=(Token)match(input,ID,FOLLOW_ID_in_load98); + + traduzirLoad(a, b); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:21:8: a= 'READ_INTC' INT + { + a=(Token)match(input,13,FOLLOW_13_in_load113); + + INT1=(Token)match(input,INT,FOLLOW_INT_in_load115); + + traduzirLoad(a, INT1); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "load" + + + + // $ANTLR start "store" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:24:1: store : a= 'WRITE_INT' b= ID ; + public final void store() throws RecognitionException { + Token a=null; + Token b=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:24:7: (a= 'WRITE_INT' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:24:9: a= 'WRITE_INT' b= ID + { + a=(Token)match(input,15,FOLLOW_15_in_store140); + + b=(Token)match(input,ID,FOLLOW_ID_in_store146); + + traduzirStore(a, b); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "store" + + + + // $ANTLR start "aritmetica" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:26:1: aritmetica : (a= 'ADD' |a= 'SUB' |a= 'MULT' |a= 'DIV' ); + public final void aritmetica() throws RecognitionException { + Token a=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:26:12: (a= 'ADD' |a= 'SUB' |a= 'MULT' |a= 'DIV' ) + int alt5=4; + switch ( input.LA(1) ) { + case 7: + { + alt5=1; + } + break; + case 14: + { + alt5=2; + } + break; + case 11: + { + alt5=3; + } + break; + case 10: + { + alt5=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + + } + + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:26:14: a= 'ADD' + { + a=(Token)match(input,7,FOLLOW_7_in_aritmetica160); + + traduzirArimetica(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:27:14: a= 'SUB' + { + a=(Token)match(input,14,FOLLOW_14_in_aritmetica181); + + traduzirArimetica(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:28:14: a= 'MULT' + { + a=(Token)match(input,11,FOLLOW_11_in_aritmetica202); + + traduzirArimetica(a); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:29:14: a= 'DIV' + { + a=(Token)match(input,10,FOLLOW_10_in_aritmetica223); + + traduzirArimetica(a); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "aritmetica" + + // Delegated rules + + + + + public static final BitSet FOLLOW_instrucao_in_programa16 = new BitSet(new long[]{0x000000000000FF82L}); + public static final BitSet FOLLOW_create_in_instrucao26 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_load_in_instrucao30 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_store_in_instrucao34 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao38 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_8_in_create47 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_create53 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_9_in_create66 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_create72 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_12_in_load92 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_load98 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_13_in_load113 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_INT_in_load115 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_15_in_store140 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_store146 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_7_in_aritmetica160 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_14_in_aritmetica181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_11_in_aritmetica202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_10_in_aritmetica223 = new BitSet(new long[]{0x0000000000000002L}); + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.java new file mode 100644 index 0000000..d32ab99 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.java @@ -0,0 +1,5 @@ +package br.ufpb.iged.interpretador.tradutor.intermediario.principal; + +public class Main { + +} diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java new file mode 100644 index 0000000..b7f6c55 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java @@ -0,0 +1,121 @@ +package br.ufpb.iged.interpretador.tradutor.intermediario.principal; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.antlr.runtime.Token; +import org.antlr.runtime.TokenStream; + +import br.ufpb.iged.interpretador.tradutor.intermediario.parser.IntermediarioParser; + +public class TradutorIntermediario extends IntermediarioParser{ + + private static final String ARQUIVO_SAIDA = "bytecodes.txt"; + private File file; + private FileWriter fileWriter; + private BufferedWriter bufferedWriter; + private int nextEnd = 0; + private Map variaveisMap = new HashMap(); + + public TradutorIntermediario(TokenStream input) throws IOException { + + super(input); + + file = new File(ARQUIVO_SAIDA); + + if (file.exists()) + + file.delete(); + + fileWriter = new FileWriter(file); + + bufferedWriter = new BufferedWriter(fileWriter); + + } + + @Override + protected void adicionarVariavel(Token op) { + + variaveisMap.put(op.getText(), nextEnd++); + + } + + @Override + protected void traduzirLoad(Token opc, Token op) { + + String opcode = opc.getText(); + + String toWrite; + + if (opcode.equals("READ_INT")) { + + toWrite="iload"; + + String id = op.getText(); + + Integer endereco = variaveisMap.get(id); + + switch(endereco) { + case 0: toWrite += "_0"; break; + case 1: toWrite += "_1"; break; + case 2: toWrite += "_2"; break; + case 3: toWrite += "_3"; break; + default: toWrite += " "+endereco; break; + } + + } else { + + Integer inteiro = new Integer(op.getText()); + + if (inteiro > -2 || inteiro < 6) { + + toWrite = "iconst"; + + switch(inteiro) { + case -1: toWrite += "_m1"; break; + case 0: toWrite += "_0"; break; + case 1: toWrite += "1"; break; + case 2: toWrite += "_2"; break; + case 3: toWrite += "_3"; break; + case 4: toWrite += "_4"; break; + case 5: toWrite += "_5"; break; + } + + } else + + toWrite = "ldc "+inteiro; + + + + } + + //bufferedWriter.write(toWrite+"\n"); + + } + + @Override + protected void traduzirStore(Token opc, Token op) { + // TODO Auto-generated method stub + + } + + @Override + protected void traduzirArimetica(Token opc) { + // TODO Auto-generated method stub + + } + + + public void fecharArquivoSaida() throws IOException { + + bufferedWriter.close(); + + fileWriter.close(); + + } + +} From 8bbb4d93e597ca6623744cb31b8457aa8ee9f241 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Tue, 5 Jun 2012 00:42:12 -0300 Subject: [PATCH 09/79] commit --- .../intermediario/gramatica/Intermediario.g | 6 +-- .../parser/IntermediarioLexer.java | 2 +- .../parser/IntermediarioParser.java | 21 ++++---- .../intermediario/principal/Main.java | 48 +++++++++++++++++ .../principal/TradutorIntermediario.java | 54 +++++++++++++++---- 5 files changed, 108 insertions(+), 23 deletions(-) diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g b/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g index 960024f..c0b37a0 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g @@ -3,9 +3,9 @@ grammar Intermediario; @members { protected void adicionarVariavel(Token op); - protected void traduzirLoad(Token opc, Token op); - protected void traduzirStore(Token opc, Token op); - protected void traduzirArimetica(Token opc); + protected void traduzirLoad(Token opc, Token op) throws IOException; + protected void traduzirStore(Token opc, Token op) throws IOException; + protected void traduzirArimetica(Token opc) throws IOException; } diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java index b59614c..b165113 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g 2012-06-04 12:30:44 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g 2012-06-04 23:46:57 package br.ufpb.iged.interpretador.tradutor.intermediario.parser; diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java index eb4e8cd..b8f83a9 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java @@ -1,8 +1,10 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g 2012-06-04 12:30:44 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g 2012-06-04 23:46:57 package br.ufpb.iged.interpretador.tradutor.intermediario.parser; import org.antlr.runtime.*; + +import java.io.IOException; import java.util.Stack; import java.util.List; import java.util.ArrayList; @@ -48,15 +50,16 @@ public IntermediarioParser(TokenStream input, RecognizerSharedState state) { protected abstract void adicionarVariavel(Token op); - protected abstract void traduzirLoad(Token opc, Token op); - protected abstract void traduzirStore(Token opc, Token op); - protected abstract void traduzirArimetica(Token opc); + protected abstract void traduzirLoad(Token opc, Token op) throws IOException; + protected abstract void traduzirStore(Token opc, Token op) throws IOException; + protected abstract void traduzirArimetica(Token opc) throws IOException; + // $ANTLR start "programa" // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:1: programa : ( instrucao )* ; - public final void programa() throws RecognitionException { + public final void programa() throws RecognitionException, IOException { try { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:10: ( ( instrucao )* ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:12: ( instrucao )* @@ -110,7 +113,7 @@ public final void programa() throws RecognitionException { // $ANTLR start "instrucao" // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:1: instrucao : ( create | load | store | aritmetica ) ; - public final void instrucao() throws RecognitionException { + public final void instrucao() throws RecognitionException, IOException { try { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:11: ( ( create | load | store | aritmetica ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:13: ( create | load | store | aritmetica ) @@ -280,7 +283,7 @@ else if ( (LA3_0==9) ) { // $ANTLR start "load" // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:20:1: load : (a= 'READ_INT' b= ID |a= 'READ_INTC' INT ); - public final void load() throws RecognitionException { + public final void load() throws RecognitionException, IOException { Token a=null; Token b=null; Token INT1=null; @@ -345,7 +348,7 @@ else if ( (LA4_0==13) ) { // $ANTLR start "store" // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:24:1: store : a= 'WRITE_INT' b= ID ; - public final void store() throws RecognitionException { + public final void store() throws RecognitionException, IOException { Token a=null; Token b=null; @@ -378,7 +381,7 @@ public final void store() throws RecognitionException { // $ANTLR start "aritmetica" // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:26:1: aritmetica : (a= 'ADD' |a= 'SUB' |a= 'MULT' |a= 'DIV' ); - public final void aritmetica() throws RecognitionException { + public final void aritmetica() throws RecognitionException, IOException { Token a=null; try { diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.java index d32ab99..044eca1 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.java +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.java @@ -1,5 +1,53 @@ package br.ufpb.iged.interpretador.tradutor.intermediario.principal; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; + +import org.antlr.runtime.ANTLRInputStream; +import org.antlr.runtime.CommonTokenStream; +import org.antlr.runtime.RecognitionException; + +import br.ufpb.iged.interpretador.tradutor.intermediario.parser.IntermediarioLexer; + + public class Main { + + public static final String NOME_ARQUIVO_ENTRADA = "codigo_intermediario.txt"; + + public static void main(String args[]) { + + try { + + InputStream entrada = new FileInputStream(NOME_ARQUIVO_ENTRADA); + + IntermediarioLexer lexer = new IntermediarioLexer( + new ANTLRInputStream(entrada)); + CommonTokenStream tokens = new CommonTokenStream(lexer); + + TradutorIntermediario tradutor = new TradutorIntermediario(tokens); + + tradutor.programa(); + + tradutor.fecharArquivoSaida(); + + } catch (FileNotFoundException e) { + + System.out.println("O arquivo de entrada năo pôde aberto"); + + } catch (IOException e) { + + System.out.println("Erro no arquivo de saída"); + + } catch (RecognitionException e) { + + System.out.println("O código contém erros e năo pode ser traduzido"); + + } + + + + } } diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java index b7f6c55..e0cb28b 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java @@ -45,7 +45,7 @@ protected void adicionarVariavel(Token op) { } @Override - protected void traduzirLoad(Token opc, Token op) { + protected void traduzirLoad(Token opc, Token op) throws IOException { String opcode = opc.getText(); @@ -78,7 +78,7 @@ protected void traduzirLoad(Token opc, Token op) { switch(inteiro) { case -1: toWrite += "_m1"; break; case 0: toWrite += "_0"; break; - case 1: toWrite += "1"; break; + case 1: toWrite += "_1"; break; case 2: toWrite += "_2"; break; case 3: toWrite += "_3"; break; case 4: toWrite += "_4"; break; @@ -87,25 +87,59 @@ protected void traduzirLoad(Token opc, Token op) { } else - toWrite = "ldc "+inteiro; - - + toWrite = "ldc "+inteiro; } - //bufferedWriter.write(toWrite+"\n"); + bufferedWriter.write(toWrite+"\n"); } @Override - protected void traduzirStore(Token opc, Token op) { - // TODO Auto-generated method stub + protected void traduzirStore(Token opc, Token op) throws IOException{ + + String id = op.getText(); + + Integer endereco = variaveisMap.get(id); + + String toWrite = "istore"; + + switch(endereco) { + case 0: toWrite += "_0"; break; + case 1: toWrite += "_1"; break; + case 2: toWrite += "_2"; break; + case 3: toWrite += "_3"; break; + default: toWrite += " "+endereco; break; + } + + bufferedWriter.write(toWrite+"\n"); } @Override - protected void traduzirArimetica(Token opc) { - // TODO Auto-generated method stub + protected void traduzirArimetica(Token opc) throws IOException{ + + String opcode = opc.getText(); + + String toWrite; + + if (opcode.equals("ADD")) + + toWrite = "iadd"; + + else if (opcode.equals("SUB")) + + toWrite = "isub"; + + else if (opcode.equals("MULT")) + + toWrite = "imul"; + + else + + toWrite = "idiv"; + + bufferedWriter.write(toWrite+"\n"); } From f4e9d3d37f38101434da780a89f5081691235c5f Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Tue, 5 Jun 2012 12:33:49 -0300 Subject: [PATCH 10/79] commit --- bytecodes.txt | 7 +++++++ codigo_intermediario.txt | 9 +++++++++ .../intermediario/principal/TradutorIntermediario.java | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 bytecodes.txt create mode 100644 codigo_intermediario.txt diff --git a/bytecodes.txt b/bytecodes.txt new file mode 100644 index 0000000..c6cbf67 --- /dev/null +++ b/bytecodes.txt @@ -0,0 +1,7 @@ +iload_0 +ldc 10 +istore_0 +iadd +isub +imul +idiv diff --git a/codigo_intermediario.txt b/codigo_intermediario.txt new file mode 100644 index 0000000..08cb009 --- /dev/null +++ b/codigo_intermediario.txt @@ -0,0 +1,9 @@ +CREATE_INT x +READ_INT x +READ_INTC 10 +WRITE_INT x +DELETE_INT x +ADD +SUB +MULT +DIV \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java index e0cb28b..81270c0 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.java @@ -71,7 +71,7 @@ protected void traduzirLoad(Token opc, Token op) throws IOException { Integer inteiro = new Integer(op.getText()); - if (inteiro > -2 || inteiro < 6) { + if (inteiro > -2 && inteiro < 6) { toWrite = "iconst"; From 9a599d9f3c100f543e334e170f43dcde355ea421 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Tue, 5 Jun 2012 12:37:52 -0300 Subject: [PATCH 11/79] commit --- .../intermediario/gramatica/Intermediario.g | 36 ++++++++++++++++++ .../intermediario/parser/Intermediario.tokens | 21 ++++++++++ .../parser/IntermediarioLexer.class | Bin 0 -> 8963 bytes .../parser/IntermediarioParser.class | Bin 0 -> 7102 bytes .../intermediario/principal/Main.class | Bin 0 -> 2114 bytes .../principal/TradutorIntermediario.class | Bin 0 -> 4310 bytes 6 files changed, 57 insertions(+) create mode 100644 bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g create mode 100644 bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens create mode 100644 bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.class create mode 100644 bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.class create mode 100644 bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.class create mode 100644 bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.class diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g new file mode 100644 index 0000000..19dfcf8 --- /dev/null +++ b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g @@ -0,0 +1,36 @@ +grammar Intermediario; + +@members { + + protected void adicionarVariavel(Token op); + protected void traduzirLoad(Token opc, Token op) throws IOException; + protected void traduzirStore(Token opc, Token op) throws IOException; + protected void traduzirArimetica(Token opc) throws IOException; + +} + +programa : instrucao*; + +instrucao : (create | load | store | aritmetica); + +create : 'CREATE_INT' a = ID {adicionarVariavel($a);} + | 'DELETE_INT' a = ID + ; + +load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} + | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} + ; + +store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; + +aritmetica : a = 'ADD' {traduzirArimetica($a);} + | a = 'SUB' {traduzirArimetica($a);} + | a = 'MULT' {traduzirArimetica($a);} + | a = 'DIV' {traduzirArimetica($a);} + ; + +INT : '-'? '0'..'9'+ ; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +WS : (' ' | '\t' | '\r' | '\n') {skip();} ; diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens new file mode 100644 index 0000000..cd5f7b8 --- /dev/null +++ b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens @@ -0,0 +1,21 @@ +T__7=7 +T__8=8 +T__9=9 +T__10=10 +T__11=11 +T__12=12 +T__13=13 +T__14=14 +T__15=15 +ID=4 +INT=5 +WS=6 +'ADD'=7 +'CREATE_INT'=8 +'DELETE_INT'=9 +'DIV'=10 +'MULT'=11 +'READ_INT'=12 +'READ_INTC'=13 +'SUB'=14 +'WRITE_INT'=15 diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.class b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.class new file mode 100644 index 0000000000000000000000000000000000000000..b7a3e3a585466f7e2b13e1b6e6f119c42e476dd3 GIT binary patch literal 8963 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 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.class b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.class new file mode 100644 index 0000000000000000000000000000000000000000..1677b46309aa49b62f00afe84fb05a834e968965 GIT binary patch literal 7102 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 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.class b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..205b8489b5c4702cdfa4e329b86ef6390d3764f4 GIT binary patch literal 2114 zcmbtVOH&(15dH=PD`a6DFi)GX7_gBsY;YbV;5e4CAToLwNmioZDr(pr%WF$J%4p>x z{yRCia>&6+%Bl)gxp2#mN~LEJSOnPza@d*P-tM06p6~1Z`=3Am0`MuG80ccSx2LSe z)7qZpmW5-vo-b5Q37lp|!Tzbx5a;w6< zvX$L?E^MFSaweNj?8bB3kCVmhZX#32#UI2O22<}$^FBo?uQBwmORw&8&oA;yLxj=C zFlI}~Ez8|gM=$yN6uI|~>$(12hVJ=Tks-7$9T7n{E=Cc-1%`o?>xoRGx+heD?^T38 zRNA~!r0n&3OBwQ?xpjv7ssGynDj-y)PB4tj@0=|!Rx~ieFdEcN?b~oGBI(r{K9w(c zHG*M`>CDF&hUYuGUt!ofN0waGg|d?RPLD4yCH93fFv)ODs%IaYKilr&K$IJ+hSzWs4y0O@{4r^ymc3g%;RPwJU-cZs{x*KbS>ukwGtFu%h@x zqcB`kvaEQO>lnAAL^x6oJ{2~#Bd&gIxG!a%yAJQe=U6fD#VHcyf2#YU8pW6RieN4q zg!u@5bNf0!HLGsFVq=5~F$>Y;C6Ef1@kPXjC?AxN|yOQR~w`~a~vuz(9QmJR5lM}Wq z(?B5K6I)^=S7l=NPzOR%k*yxJceNeW3_TT16o&M9ro;PqM_1MBYlu@~bDfy-UlNc* z_;?62?$AWhHRh->R0p<@ zqCG;xCyfkMIRO({Jffz}U=-VA*G*pil_=5xLaz)Y RwhV02lMIvk2U2%o=U>>%Qwjh8 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.class b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.class new file mode 100644 index 0000000000000000000000000000000000000000..1fe645fad58ab990a29a94ef3183b708b97611be GIT binary patch literal 4310 zcmbVPZBSfS8Gi15u$RpZNj8N7B_WMT3Iwvv2T2M@yCkVW2?Uk}!CHFRy^xzMyPLar zDUDj&G`7{IwOVV9^|LlcYyGGONJ<;y5C8bfah&F#GyUNo|2X4}Gdfd)&pCH5yEjeJ znF8nDbKduy^L{<=`(FNZ{p~9NcH?RYJ_Uo5Relba4?GkIIj*duznV5q1hY4S1KNM=(;euq70 zD+o-PX+uGkbDXw3$Tg3K1%1>qX@-J3JY0v$Jyny1sVT!UQtrOmm3=)P4)=yK#+-d9 zlTx7cD$r)>H+|MH^GEcYf;G;$f^DXwByf9W+?>wncEO@7vX-xd%WX$ao zk(daYnOuRmZ~O>EFjL~To;<-2O0`1xjDiifMG>8-r_3Y)q+8OYStG5W;g;AV>Q-R@ zgCQJMaOW+q)-Z%P(`VYShnYdl#ir&DBO{CiMnfQq9R$kcD5ipj&ti->%!(Q?FvUnV z^_E}ZX3Q#l4xbO9+mlupF2?ZY1r_GIffS^6QHv1->jZz3x_S zXJ|B8T~C=-Ush+GXuq}NZh1-bhzi0=9Xb>{IMLfb9L6-v5RNHWD{U$(8XAt{gvgzf z1wBo;c@oaGV_e0Iz)YGN3IAj@W;$h9Lixu;^iF-WsA7c(V-_tczC>?N+$$De*6;+Lq?vjyXNcVMoMm<2B+k4b#D4t-X|7XmBP}7c z|0dNnlcIB}_!j*%F+)+`79#ej_>OqDtN1QUaXOXUq~d!N8Wv^f2O54TN@ws<(YAOn zn@jR4K3TGv0CrYZC0=0C5h~rm-j&RBsa05R-%dT+$|N_gNN&U<(0O?PlSp!}$8r8q(ise2g(IrJ zEs|Qm)H(bylI{q!O7R^*p-NrwGBQ3~MWUmku3`b!8`J=JN_1?7x~@s$$egop7=i8171e6_^5&%=0*458TbML~BhAu;Ay zu!t8sf^|VEz4rR+_@^_gcnyD#e4`^ESJIgGmia^7gB&d!BIXZq6gXbsxWIAMBlD#d zW$>nlQ8E}Wc^D;wamvFe84TUSC>e~y9>&Wh;ZYCcl@g;yFe2v|17W7)8b&kb+5f7u ze*xbwVf{F94(uW}_VO!pKNGNnXzwD{yKxlv!^8tPjTl}<4=&PEe<8ZxCz$_DDF2tB zZNh*O;|In#29-R9l(Q`5=P|5YK|=W}KNzlIT=@qc_63PfkuOusD5B6sEoVQHs1-DU zUmrqDnjbSc{M6+NUgIo4Nq=)@ysM!|Yrq12LT-?{{uHm{Jm>E#m7Jd^P2^t^>y~Lm zNao)_2>hFN{}Mngf9n4O-~W)1)Px|^)>bc5iHh zB8`lF9)^oFGB$b`GPS6d#E+;34t`t}Zib&7vaA~r&Zr?;>T!bTNz-97$nf_WWEtTc zmXODL%rJq0ZpSq)25`;A0B1!E;LkF)e%|>98QTDFepg1`iS2q+Tt}A^H$Fw+>gn@0 zSYK}_efSsY0g4@RO5c&z$S-8+tBm}z{{ptOMt)sfzQtvAYvgyu4&yr zByQ%076EIVq8lD(8a+X^PqR#(!B#wt9e9>q;4JpBxD4V&>4L-DNsU%qFjRB_{|%7f z_puxLrMZ4K9Cx;JWwwt!M5Kma0(~t4AE1VAsH*xvw3}(Rfy-=CH+mvQxl{ lo3D-qyj$uqRlE>*naaJwf2qz%RW;{GQB{RGDLT^c{|{jYARPbz literal 0 HcmV?d00001 From a247c23b1515fad8f7155d256c97d133756eb348 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Tue, 12 Jun 2012 16:56:55 -0300 Subject: [PATCH 12/79] commit --- build.xml | 2 +- .../bytecodeassembler/gramaticas}/Assembler.g | 0 .../bytecodeassembler/grammars/Assembler.g | 86 ------------------- 3 files changed, 1 insertion(+), 87 deletions(-) rename {bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars => src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas}/Assembler.g (100%) delete mode 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g diff --git a/build.xml b/build.xml index e8776b1..f9f23ff 100755 --- a/build.xml +++ b/build.xml @@ -8,7 +8,7 @@ diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g b/src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Assembler.g similarity index 100% rename from bin/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g rename to src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Assembler.g diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g b/src/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g deleted file mode 100755 index 1d69b2a..0000000 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/grammars/Assembler.g +++ /dev/null @@ -1,86 +0,0 @@ -grammar Assembler; - -@members { - - protected void escreverOpcode(Token opc); - protected void escreverOpcode(Token opc, Token op) throws LabelException; - protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; - protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - protected void definirLabel(Token id) throws LabelException; - -} - -programa : comando* - ; - -comando : (label instrucao | instrucao); - -label : a = ID ':' {definirLabel($a);}; - -instrucao: (aritmetica | load | store | desvio | logica | 'nop' - | a = 'pop' {escreverOpcode($a);} - | a = 'pop2'{escreverOpcode($a);} - )? NOVA_LINHA; - -aritmetica : a = 'iadd' {escreverOpcode($a);} - | a = 'isub' {escreverOpcode($a);} - | a = 'imul' {escreverOpcode($a);} - | a = 'idiv' {escreverOpcode($a);} - | a = 'irem' {escreverOpcode($a);} - | a = 'iinc' {escreverOpcode($a);} - | a = 'ineg' {escreverOpcode($a);} - ; - -load : a = 'iconst_m1'{escreverOpcode($a);} - | a = 'iconst_0' {escreverOpcode($a);} - | a = 'iconst_1' {escreverOpcode($a);} - | a = 'iconst_2' {escreverOpcode($a);} - | a = 'iconst_3'{escreverOpcode($a);} - | a = 'iconst_4'{escreverOpcode($a);} - | a = 'iconst_5'{escreverOpcode($a);} - | a = 'iload_0' {escreverOpcode($a);} - | a = 'iload_1' {escreverOpcode($a);} - | a = 'iload_2' {escreverOpcode($a);} - | a = 'iload_3' {escreverOpcode($a);} - | a = 'iload' INT {escreverOpcode($a, $INT);} - | a = 'ldc' INT {escreverOpcode($a, $INT);} - ; - -store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_1' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_2' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_3' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore' INT {verificarAumentoMemoriaGlobal($a, $INT);} - ; - -logica : a = 'iand' {escreverOpcode($a);} - | a = 'ior' {escreverOpcode($a);} - | a = 'ixor' {escreverOpcode($a);} - ; - -desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} - | a = 'ifne' b = ID {escreverOpcode($a, $b);} - | a = 'iflt' b = ID {escreverOpcode($a, $b);} - | a = 'ifge' b = ID {escreverOpcode($a, $b);} - | a = 'ifgt' b = ID {escreverOpcode($a, $b);} - | a = 'ifle' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpeq' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpne' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmplt' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpge' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpgt' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmple' b = ID {escreverOpcode($a, $b);} - | a = 'goto' b = ID {escreverOpcode($a, $b);} - ; - -NULL: ('null' | 'NULL'); - -INT : '-'? '0'..'9'+ ; - -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; - -//LETRA: ('a'..'z' | 'A'..'Z'); - -NOVA_LINHA : ';'; - -WS : (' ' | '\t' | '\r' | '\n') {skip();} ; \ No newline at end of file From 24c99d52cfdbdd98623f4de009201b51038c6161 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Thu, 14 Jun 2012 00:59:42 -0300 Subject: [PATCH 13/79] commit --- .../symboltable/classes/CimboloAST.java | 16 +++++ .../symboltable/classes/Escopo.java | 18 +++++ .../symboltable/classes/EscopoBase.java | 47 +++++++++++++ .../symboltable/classes/EscopoGlobal.java | 13 ++++ .../symboltable/classes/EscopoLocal.java | 13 ++++ .../symboltable/classes/Simbolo.java | 37 ++++++++++ .../symboltable/classes/SimboloClasse.java | 64 +++++++++++++++++ .../symboltable/classes/SimboloComEscopo.java | 68 +++++++++++++++++++ .../classes/SimboloTipoPrimitvo.java | 19 ++++++ .../symboltable/classes/SimboloVariavel.java | 11 +++ .../symboltable/classes/Tipo.java | 7 ++ 11 files changed, 313 insertions(+) create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/CimboloAST.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/Escopo.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/Tipo.java diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/CimboloAST.java b/src/br/ufpb/iged/interpretador/symboltable/classes/CimboloAST.java new file mode 100644 index 0000000..26ee69d --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/CimboloAST.java @@ -0,0 +1,16 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +import org.antlr.runtime.tree.CommonTree; +import org.antlr.runtime.Token; + +public class CimboloAST extends CommonTree { + + public Escopo scope; // set by Def.g; ID lives in which scope? + + public Simbolo symbol; // set by Ref.g; point at def in symbol table + + public CimboloAST(Token t) { + super(t); + } + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/Escopo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/Escopo.java new file mode 100644 index 0000000..a5265df --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/Escopo.java @@ -0,0 +1,18 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +public interface Escopo { + + public String obterNomeEscopo(); + + /** Where to look next for symbols; superclass or enclosing scope */ + public Escopo obterEscopoPai(); + /** Scope in which this scope defined. For global scope, it's null */ + public Escopo obterEscopoEnvolvente(); + + /** Define a symbol in the current scope */ + public void definir(Simbolo simbolo); + + /** Look up name in this scope or in parent scope if not here */ + public Simbolo resolver(String name); + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java new file mode 100644 index 0000000..f1ab64f --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java @@ -0,0 +1,47 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +import java.util.LinkedHashMap; +import java.util.Map; + +public abstract class EscopoBase implements Escopo { + + private Escopo escopoEnvolvente; // null if global (outermost) scope + + private Map simbolos = new LinkedHashMap(); + + public EscopoBase(Escopo parent) { this.escopoEnvolvente = parent; } + + public Simbolo resolver(String nome) { + + Simbolo s = simbolos.get(nome); + + if ( s!=null ) return s; + // if not here, check any enclosing scope + if ( obterEscopoPai() != null ) return obterEscopoPai().resolver(nome); + return null; // not found + + } + + public void definir(Simbolo simbolo) { + + simbolos.put(simbolo.nome, simbolo); + + simbolo.escopo = this; // track the scope in each symbol + + } + + public Escopo obterEscopoPai() { + + return obterEscopoEnvolvente(); + + } + + public Escopo obterEscopoEnvolvente() { + + return escopoEnvolvente; + + } + + public String toString() { return simbolos.keySet().toString(); } +} + diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java new file mode 100644 index 0000000..4e80b2a --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java @@ -0,0 +1,13 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +public class EscopoGlobal extends EscopoBase { + + public EscopoGlobal() { + super(null); + } + + public String obterNomeEscopo() { + return "global"; + } + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.java new file mode 100644 index 0000000..bede4a4 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.java @@ -0,0 +1,13 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +public class EscopoLocal extends EscopoBase { + + public EscopoLocal(Escopo pai) { + super(pai); + } + + public String obterNomeEscopo() { + return "local"; + } + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java new file mode 100644 index 0000000..23c9695 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java @@ -0,0 +1,37 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +public class Simbolo { + + String nome; + + private Tipo tipo; + + Escopo escopo; + + private CimboloAST def; + + public Simbolo(String nome) { + this.nome = nome; + } + + public Simbolo(String nome, Tipo tipo) { + this(nome); + this.tipo = tipo; + } + + public String getNome() { + return nome; + } + + public String toString() { + String s = ""; + if ( escopo!=null ) s = escopo.obterNomeEscopo()+"."; + if ( tipo!=null ) return '<'+s+getNome()+":"+tipo+'>'; + return s+getNome(); + } + + public static String stripBrackets(String s) { + return s.substring(1,s.length()-1); + } + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java new file mode 100644 index 0000000..eb8194c --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -0,0 +1,64 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +import java.util.*; + +public class SimboloClasse extends SimboloComEscopo implements Escopo, Tipo { + /** This is the superclass not escopoEnvolvente field. We still record + * the enclosing Escopo so we can push in and pop out of class defs. + */ + SimboloClasse superClasse; + + /** List of all fields and methods */ + public Map membros=new LinkedHashMap(); + + public SimboloClasse(String nome, Escopo escopoEnvolvente, SimboloClasse superClasse) { + + super(nome, escopoEnvolvente); + + this.superClasse = superClasse; + + } + + public Escopo obterEscopoPai() { + + if ( superClasse==null ) return escopoEnvolvente; // globals + + return superClasse; // if not root object, return super + + } + + /** For a.b, only look in a's class hierarchy to resolve b, not globals */ + public Simbolo resolverMembro(String nome) { + + Simbolo s = membros.get(nome); + + if ( s!=null ) return s; + // if not here, check just the superclass chain + if ( superClasse != null ) { + return superClasse.resolverMembro(nome); + } + return null; // not found + + } + + public Map obterMembros() { + + return membros; + + } + + public String toString() { + return "class "+nome+":{"+ + stripBrackets(membros.keySet().toString())+"}"; + } + + @Override + public String obterNome() { + // TODO Auto-generated method stub + return nome; + } + + + +} + diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.java new file mode 100644 index 0000000..632a8f3 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.java @@ -0,0 +1,68 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +import java.util.Map; + +public abstract class SimboloComEscopo extends Simbolo implements Escopo { + + Escopo escopoEnvolvente; + + public SimboloComEscopo(String nome, Tipo tipo, Escopo escopoEnvolvente) { + + super(nome, tipo); + + this.escopoEnvolvente = escopoEnvolvente; + + } + + public SimboloComEscopo(String nome, Escopo escopoEnvolvente) { + + super(nome); + + this.escopoEnvolvente = escopoEnvolvente; + + } + + public Simbolo resolver(String nome) { + + Simbolo s = obterMembros().get(nome); + if ( s!=null ) return s; + // if not here, check any parent Escopo + if ( obterEscopoPai() != null ) { + return obterEscopoPai().resolver(nome); + } + return null; // not found + + } + + public void definir(Simbolo simbolo) { + + obterMembros().put(simbolo.nome, simbolo); + + simbolo.escopo = this; // track the Escopo in each Simbolo + + } + + public Escopo obterEscopoPai() { + + return obterEscopoEnvolvente(); + + } + + public Escopo obterEscopoEnvolvente() { + + return escopoEnvolvente; + + } + + public String obterNomeEscopo() { + + return nome; + + } + + /** Indicate how subclasses store Escopo members. Allows us to + * factor out common code in this class. + */ + public abstract Map obterMembros(); + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.java new file mode 100644 index 0000000..5030b72 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.java @@ -0,0 +1,19 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +public class SimboloTipoPrimitvo extends Simbolo implements Tipo { + + public SimboloTipoPrimitvo(String nome) { + + super(nome); + + } + + @Override + public String obterNome() { + // TODO Auto-generated method stub + return nome; + + } + + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.java new file mode 100644 index 0000000..e830ba2 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.java @@ -0,0 +1,11 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +public class SimboloVariavel extends Simbolo { + + public SimboloVariavel(String nome, Tipo tipo) { + + super(nome, tipo); + + } + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/Tipo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/Tipo.java new file mode 100644 index 0000000..7703484 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/Tipo.java @@ -0,0 +1,7 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +public interface Tipo { + + public String obterNome(); + +} From 0c380e368af2eba3c9122a7fc67aaf2a8070bc9c Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Fri, 15 Jun 2012 19:01:58 -0300 Subject: [PATCH 14/79] commit --- .../intermediario/gramatica/Intermediario.g | 72 +++++------ .../intermediario/parser/Intermediario.tokens | 42 +++---- instropcode_set.txt | 117 +++++++++++------- 3 files changed, 126 insertions(+), 105 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g index 19dfcf8..c0b37a0 100644 --- a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g +++ b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g @@ -1,36 +1,36 @@ -grammar Intermediario; - -@members { - - protected void adicionarVariavel(Token op); - protected void traduzirLoad(Token opc, Token op) throws IOException; - protected void traduzirStore(Token opc, Token op) throws IOException; - protected void traduzirArimetica(Token opc) throws IOException; - -} - -programa : instrucao*; - -instrucao : (create | load | store | aritmetica); - -create : 'CREATE_INT' a = ID {adicionarVariavel($a);} - | 'DELETE_INT' a = ID - ; - -load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} - | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} - ; - -store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; - -aritmetica : a = 'ADD' {traduzirArimetica($a);} - | a = 'SUB' {traduzirArimetica($a);} - | a = 'MULT' {traduzirArimetica($a);} - | a = 'DIV' {traduzirArimetica($a);} - ; - -INT : '-'? '0'..'9'+ ; - -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; - -WS : (' ' | '\t' | '\r' | '\n') {skip();} ; +grammar Intermediario; + +@members { + + protected void adicionarVariavel(Token op); + protected void traduzirLoad(Token opc, Token op) throws IOException; + protected void traduzirStore(Token opc, Token op) throws IOException; + protected void traduzirArimetica(Token opc) throws IOException; + +} + +programa : instrucao*; + +instrucao : (create | load | store | aritmetica); + +create : 'CREATE_INT' a = ID {adicionarVariavel($a);} + | 'DELETE_INT' a = ID + ; + +load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} + | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} + ; + +store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; + +aritmetica : a = 'ADD' {traduzirArimetica($a);} + | a = 'SUB' {traduzirArimetica($a);} + | a = 'MULT' {traduzirArimetica($a);} + | a = 'DIV' {traduzirArimetica($a);} + ; + +INT : '-'? '0'..'9'+ ; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +WS : (' ' | '\t' | '\r' | '\n') {skip();} ; diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens index cd5f7b8..0b7c472 100644 --- a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens +++ b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/Intermediario.tokens @@ -1,21 +1,21 @@ -T__7=7 -T__8=8 -T__9=9 -T__10=10 -T__11=11 -T__12=12 -T__13=13 -T__14=14 -T__15=15 -ID=4 -INT=5 -WS=6 -'ADD'=7 -'CREATE_INT'=8 -'DELETE_INT'=9 -'DIV'=10 -'MULT'=11 -'READ_INT'=12 -'READ_INTC'=13 -'SUB'=14 -'WRITE_INT'=15 +T__7=7 +T__8=8 +T__9=9 +T__10=10 +T__11=11 +T__12=12 +T__13=13 +T__14=14 +T__15=15 +ID=4 +INT=5 +WS=6 +'ADD'=7 +'CREATE_INT'=8 +'DELETE_INT'=9 +'DIV'=10 +'MULT'=11 +'READ_INT'=12 +'READ_INTC'=13 +'SUB'=14 +'WRITE_INT'=15 diff --git a/instropcode_set.txt b/instropcode_set.txt index 1909a14..4b03d36 100755 --- a/instropcode_set.txt +++ b/instropcode_set.txt @@ -1,48 +1,69 @@ -//Contém o conjunto de opcodes das instruçőes que o interpretador suporta até o momento - -opcode hex dec - -nop 00 0 -iconst_m1 02 2 -iconst_0 03 3 -iconst_1 04 4 -iconst_2 05 5 -iconst_3 06 6 -iconst_4 07 7 -iconst_5 -ldc 12 18 -iload 15 21 -iload_0 1a 26 -iload_1 1b 27 -iload_2 1c 28 -iload_3 1d 29 -istore 36 54 -istore_0 3b 59 -istore_1 3c 60 -istore_2 3d 61 -istore_3 3e 62 -pop 57 87 -pop2 58 88 -iadd 60 96 -isub 64 100 -imul 68 104 -idiv 6c 108 -irem 70 112 -ineg 74 116 -iand 7e 126 -ior 80 128 -ixor 82 130 -iinc 84 132 -ifeq 99 153 -ifne 9a 154 -iflt 9b 155 -ifge 9c 156 -ifgt 9d 157 -ifle 9e 158 -if_icmpeq 9f 159 -if_icmpne a0 160 -if_icmplt a1 161 -if_icmpge a2 162 -if_icmpgt a3 163 -if_icmple a4 164 -goto a7 167 \ No newline at end of file +//Contém o conjunto de opcodes das instruçőes que o interpretador suporta até o momento + +opcode hex dec + +nop 00 0 +iconst_m1 02 2 +iconst_0 03 3 +iconst_1 04 4 +iconst_2 05 5 +iconst_3 06 6 +iconst_4 07 7 +iconst_5 +ldc 12 18 +iload 15 21 +iload_0 1a 26 +iload_1 1b 27 +iload_2 1c 28 +iload_3 1d 29 +istore 36 54 +istore_0 3b 59 +istore_1 3c 60 +istore_2 3d 61 +istore_3 3e 62 +pop 57 87 +pop2 58 88 +iadd 60 96 +isub 64 100 +imul 68 104 +idiv 6c 108 +irem 70 112 +ineg 74 116 +iand 7e 126 +ior 80 128 +ixor 82 130 +iinc 84 132 +ifeq 99 153 +ifne 9a 154 +iflt 9b 155 +ifge 9c 156 +ifgt 9d 157 +ifle 9e 158 +if_icmpeq 9f 159 +if_icmpne a0 160 +if_icmplt a1 161 +if_icmpge a2 162 +if_icmpgt a3 163 +if_icmple a4 164 +goto a7 167 + +new java/lang/Integer ; Create the integer +dup ; Make a copy of the reference to it +bipush 27 ; Push an argument + ; Call the constructor +invokespecial java/lang/Integer/ (I)V + + +.class MyClass +.super MySuperClass +; A constructor taking no arguments +.method ()V +aload_0 ; Push this +invokespecial MySuperClass/()V ; Call a superclass + ; constructor on this + +return ; Return to the caller +.end method + +getfield +putfield \ No newline at end of file From e441469ab970969f2e4cbe88c1c7c56f636f0555 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sat, 16 Jun 2012 19:07:58 -0300 Subject: [PATCH 15/79] commit --- .../asm/BytecodeAssembler.class | Bin 6158 -> 6162 bytes .../bytecodeassembler/asm/Definicao.class | Bin 3540 -> 3571 bytes .../bytecodeassembler/parser/Assembler.tokens | 95 - .../parser/AssemblerLexer$DFA5.class | Bin 1726 -> 0 bytes .../parser/AssemblerLexer.class | Bin 18333 -> 0 bytes .../parser/AssemblerParser.class | Bin 16443 -> 0 bytes .../principal/Interpretador.class | Bin 8519 -> 8798 bytes .../ufpb/iged/interpretador/testes/Test.class | Bin 2197 -> 2403 bytes build.xml | 8 +- instropcode_set.txt | 8 + .../asm/BytecodeAssembler.java | 496 +-- .../bytecodeassembler/asm/Definicao.java | 276 +- .../gramaticas/{Assembler.g => Bytecodes.g} | 56 +- .../bytecodeassembler/parser/Assembler.tokens | 95 - .../parser/AssemblerLexer.java | 1988 ---------- .../parser/AssemblerParser.java | 1316 ------- .../bytecodeassembler/parser/Bytecodes.tokens | 131 + .../parser/BytecodesLexer.java | 2632 ++++++++++++++ .../parser/BytecodesParser.java | 3211 +++++++++++++++++ .../principal/Interpretador.java | 1572 ++++---- .../{CimboloAST.java => BytecodesAST.java} | 4 +- .../symboltable/classes/EscopoLocal.java | 1 + .../symboltable/classes/Simbolo.java | 2 +- .../ufpb/iged/interpretador/testes/Test.java | 64 +- 24 files changed, 7243 insertions(+), 4712 deletions(-) delete mode 100755 bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens delete mode 100644 bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer$DFA5.class delete mode 100644 bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.class delete mode 100644 bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.class rename src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/{Assembler.g => Bytecodes.g} (64%) delete mode 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens delete mode 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java delete mode 100755 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java create mode 100644 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Bytecodes.tokens create mode 100644 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesLexer.java create mode 100644 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesParser.java rename src/br/ufpb/iged/interpretador/symboltable/classes/{CimboloAST.java => BytecodesAST.java} (76%) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index e9cf531392f377fba3782498187a442aa2f43eac..fd4658babddb6d75961db332eaf082901ef4a909 100644 GIT binary patch delta 154 zcmeA(m}D@ahtsLDBsDodCAE0tR0l!BoeazjEDQ_`9?Z7dI~k%F8T^3M1V)BcKruZa zW&>glAl88LB_}fpS$b(ObTF7RbTZg7^fI_J^fSl%w{NNU}Ruo jaAKIlzy_o_8LS!RGFSm^3k1q@Gcf;UP}$rm)X53}w-^~| diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 74d5efa5771bbc8809f8affcee19b59bd13c6abc..36526598a79ae0b145b8aa1394313334276ac896 100644 GIT binary patch literal 3571 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 U&5#1Rx$6!-AT8yS%lHuZ2Ni&}7XSbN diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.class deleted file mode 100644 index c4ee2838f76e313b0552adcfb3bc4203495a2d8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18333 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 NZjfIw28fG^{ueqSZy5jp diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.class deleted file mode 100644 index f1f8ef0f3fec2539de217db453090d5f9bed1d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16443 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 Uk9aNL`s@A$%3=vl7a^+uA5oL7BLDyZ diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 5abf8853a1c18e93e58a4137176ce2a72d46ab5b..8454eaa8f67d29db63ccb3ef87102fd1aa1bade9 100644 GIT binary patch delta 3354 zcma)8ZFCgX8Gi20?9A-$5Z6tz$!0cTJ$xnx^?;y+Ks9(gawIJpKT1;zE4$q+4M}#h zP(fi!iytj0!u111!Ju)mLR(m~AW_uPYO6x)2UM)m##Y6qXI&u`iEd1wy_b$oPv^Eo8(HV<(=Qm5&xB{&VT35O= zk&dp4GTc7BcJVg9!Otk6I)}I3C*!x?`Rf&A3Cy_ppo)xF=Ueb=-*{ zgL_4LXLnpUV>;saKCf0H{x%&YxJVdR>i7XEn#s6IhaWy+?9|ak#`Q`SOYQ%QU0%Ast&qb}CJLO){GHf?=DE?L4Y2XxgdcDLl=fcix$arx$f(;>mO;gEGCf zX;JMW1{U?;8SGKf!{A>TT@$^$J=&4Dyk%{7CQg%h7SHhkEh0b9P{F_Htq5t@%OEdW z(h%{Y7xm)tqKp}aZ1>R3LVj7DOekrl`Cv1FoCM957VfGPD$T-ITA{bt=v>EG&{Q89`>aXv8MXYkHD-=E4nyUV)W--GocOb$duI z;JdrvxwL@g(!M&;UD1bx36gziH$lg%kou6yL2qyiV#xiPXykoxQKT!;O3wy*w(|c@ zn31g~%axdit1+9bbFdIsVKMbusdoq2qi95o+BVF`C8pjj@})Zn;0`J%E7v&v?%iOKGfJ`$@1(N z?UBjD^+3p=#NDycent4N350GD{wqfNH7jy(w8v$7}@)ZKh0xNQvzG&1O)R_M_WMp*b=GtkPhtY4 z@}N9N&PlQz(W;Z{e|Fz4vhl_7>?Y z?Y_ev8eA;9^$MEBb~)8`*iR3MZEeST@y1&85?emz;`5&J(l&FE*atS*6pMmXskFzd za_nW>GiI3igY`4Qy9ZNZ8*Hfv%ELjU;X-8_Cf_qeUOP;l3K~{%ZEJBAhRJ&d<@nGh zj+_#X*q-rC={Y;7U(UfPusJ8AVjM|5YwJl~XAeCpDZlmZ7_{iLZOdh`g+&>}r>2U0 z50kQr{_Q9k-F>L8+yX2Ix33 zwQ?5%Mf4@Y7IIIagUIx{zwMyS4tgbvnxgxxjg(3UUGJcbgZ4P+eLDZl(CRb?-Q%G5 zY@|(f(A^F?2F=uF8T*`aeS}uQ<(lN6sDpMp=u;cHXX9c^;cj!#P8%to(H+=~r(Wft zEe;y6kv2!5h!|MgY#ZU%PT)~IMnzJzkMKBlJF^wTM#lO*IYEpAcoE zvzjiR)K*YgZzGMkGl)`~r?X54>XZD7nns^Z78lzY6PvQTXaFJJj-VxGFVfXT0+@CX zyZh0*G>|)l7sS3P;O7PWqJV?8gBY{xneozayP!-yWeqgm;NYXGj6ZN9$7~<$t`OJUoUxJjvF-UmX5JYWs0& z=|OyS2!C#_FW?jYaAbYcU(9#IMVGpd@mE@0aWV2iIfrksNHzV)G(aX7KEvOr4G{V} Pmf#C`@DKb8|Ay!Pk&}14 delta 3236 zcma)8eQ;FO7609RZ}+|3JV?kUA<4_fG9W?%gA+c45NH9X6@`Mc)E1<|gDlD7W_R5z zP`_A8K~WIIt5!vcV07C`ZB5LA2_n=AN{fn$ime~`(dqb~op$;UBR%)+-j^jI1GBSx zfA^f<@7#0Vxo_|N?79yH`hI?IGb@ZJ-$;zQGeHYB4Yzg~Av% zu$B~QPoO?xpa=!R7&Q>XtqlH_P;!aYwlLHdON6Z-M`Ek2h!+gE^M89*^yk8tX*)*U zMfA1SdTUa|indHz(wc~EuqaU<(eE*^5h;nxPXh$Z!K zGDuZZVdR)i3#H8_Xb|T0lv#yr+4B-1AoMy_%ZL8>0NkPL$@qH9GkQ_K}7_UiI7D> zdoYobiVIUDs^cI<4N_DcukdPLWqB9+3>+35x6Se42##uajW6<*PPh-p7)r;@AHN_k z*(8N(nW^J-24*MshREwUf5_LMzezTqj+6YP@2X*)s1RwN67IM8d0#`>yOhb|aHQ1| z>%Yg~@)7w1eqF)5$sfwbtV@O?lY*s-yOjq?_jSX6RaGMRX5r%*za4iXqmqd@JXqt@dFB(aXxsK6Yo#|9`EOYC3b4ydFDYN33O85(A5 zxL(7;3kbla@fQod>`s2DFi^Cn?qyU?o?ZPEymi$X+}-`JLe8dd%3yO7d8+7JqnOQy zur-+03ZzACZa9jIIJr6hZba$$l{VXR>PpzE3~-M5KODb_)&kU7FPv+PGA=2!%NKT;~rsY8zKnR z5;p~5fk28Zts$7@H&eN3^%~*hx0jd{^1%|*75DI+C1w0*iK^M@#7!~(X`fUNxlv}B zRU4b~A}iZ2E8){hYfCP<>B6PeDcfN_iD7ja>`e*c3vtDfnP#om`vJCtBmYP8QQ)9e-L86xO7Y@U@LwIeU;MyVB1dHqPU z@lsv9NWMQ$KK>&4rjcg0*V3AMC>P21^~>>rBo3?zz0xy8O#@2mltGKsG@O3hHPw}y z3ocvJvr5<&-p_ZJn_ls!SV`a8x_inuD5-~00LIQ>0&L{+JLo0{?Q+m5 zi4-sVS%q?rjtg6>#!;L@|3g(4xv!#w#`d~@?x5`sI-EjH&i$=Ko^l8M$U#X5?RU_7 zn3vURS3Br#2c4EkAM2pI9P~PLTbp9+8_Jc_Q*gOPJIHcShl4(q$UPM!vI=*rgZ4<| z`I3%cJDzr}gLXLRoJ9IGfdXP-eY-TGNPioT;88knJ^IIZ48Q4qtNMAycJg>_wP$P4 z?jo;k9QU|r8=b{;<)d*Voya$nM%)QRZ|&1pr33Q`{@>cB0!bEk%%;HH)YG(p5bs7= zR?J?Yi+}~-kRYSR;vjrunTdZY1+jjQ)Px#ygmd)}38Ut^IE8}Hr&11!CYtOz@| z9C&k$d9V5UrRWVMf5U?7H$6Y9c^N@?$!}DAx8@2;2YOZ9%8qOzCVw$zeJ{B0*BzTd zj!1?C?F;S$H@)cAE9v5LGw^Crj&e-38wqh-^&35z;V35=5m-7$wbBrTrgIT;UDlW_RIwqFBNm)IWhf<}sLGuO4RkCY1Q>&clGzZ=?`i8OC*%s$p zTxxOki77fw{ieRieUH-YB+G7!dd||r7VS0s(~%OB8bz33iW}$_7-yQBgy<&E47X^b zmm#eyV{n)hF1K}_Ij!m<^i3P<56(+GNtYxp=@XF9`if?RxJz}1USfJ(U_Xo4)aavu F{T-Gbl(PT; delta 517 zcmY+AO-~bH6osF6Iy3LgI5AjkP$W>3MuSnRp;j#l^5HjVr6M3I3^0zZEj81|;L43V zSNevH{s7sENimxE1KjuvTp0ZqBfXTr~1ZQ6Yg-M z5!M!~Vf=Po^cq8dU@?drVeD(3EpQ&j^(YQ%fy;4DNb-WVO7JMiR)du&TYB7RhBcp) zoKh7tEe6yxvpaXjXOJO*y;NT=M|FWQH{vnOsAS}Sc{47rL_TAjQ(w%??gD!pE(%22 zqrhdKD~zj@HQ*Gu>T`{vnz1rHliZM$1nt{7%JpnfyEIG9I1F@@DfP;F@wc1G+pGVe zO?$tbmV|;X^;NX1&%#w(_93$(7<=BfPrZ~$wVLQqHR-GGa>3og!qz{VR})U(;Y8kg zO=g4K2MV(roK9K&?>M{3`Q(Kbms(7;xc<}1Kzv8vJd@ zO{O*Sm|})mbREXI#T*7*jB=YhB - - + --> - + diff --git a/instropcode_set.txt b/instropcode_set.txt index 4b03d36..0c0cb61 100755 --- a/instropcode_set.txt +++ b/instropcode_set.txt @@ -46,6 +46,14 @@ if_icmpge a2 162 if_icmpgt a3 163 if_icmple a4 164 goto a7 167 +aload 19 25 +aload_0 2a 42 +aload_1 2b 43 +aload_2 2c 44 +aload_3 2d 45 +invokespecial b7 183 +getfield b4 180 +putfield b5 181 new java/lang/Integer ; Create the integer dup ; Make a copy of the reference to it diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index aa9884a..1e12aab 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -1,248 +1,248 @@ -package br.ufpb.iged.interpretador.bytecodeassembler.asm; - -import java.util.HashMap; -import java.util.Map; - -import org.antlr.runtime.TokenStream; - -import org.antlr.runtime.Token; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; -import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; -import br.ufpb.iged.interpretador.excecoes.LabelException; - -public class BytecodeAssembler extends AssemblerParser{ - - public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; - public static final int TAMANHO_INICIAL_MEMORIA_GLOBAL = 1024; - - protected Map opcodesInstrucoes = - new HashMap(); - - protected Map labels = - new HashMap(); - protected Map enderecosMap = - new HashMap(); - protected static int ip = 0; - public static byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; - protected int tamMemoriaGlobalEstruturas = 0; - protected int tamMemoriaGlobalReferencias = 0; - protected int tamMemoriaGlobal = 0; - - - public BytecodeAssembler(TokenStream lexer, Definicao.Instrucao[] instrucoes) { - - super(lexer); - - for (int i = 1; i < instrucoes.length; i++) { - - opcodesInstrucoes.put(instrucoes[i].nome, instrucoes[i].opcode); - - } - - } - - protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException { - - String opcodeTxt = opc.getText(); - - if (opcodeTxt.contains("0")) { - - if (tamMemoriaGlobal == 0) - - tamMemoriaGlobal++; - - } else if (opcodeTxt.contains("1")) { - - if (tamMemoriaGlobal == 1) - - tamMemoriaGlobal++; - - else if (tamMemoriaGlobal < 1) - - throw new AcessoIndevidoMemoriaException(); - - } else if (opcodeTxt.contains("2")) { - - if (tamMemoriaGlobal == 2) - - tamMemoriaGlobal++; - - else if (tamMemoriaGlobal < 2) - - throw new AcessoIndevidoMemoriaException(); - - } else if (opcodeTxt.contains("3")) { - - if (tamMemoriaGlobal == 3) - - tamMemoriaGlobal++; - - else if (tamMemoriaGlobal < 3) - - throw new AcessoIndevidoMemoriaException(); - - } - - escreverOpcode(opc); - - } - - protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException { - - Integer endereco = new Integer(op.getText()); - - if (tamMemoriaGlobal == endereco) - - tamMemoriaGlobal++; - - else if (tamMemoriaGlobal < endereco) - - throw new AcessoIndevidoMemoriaException(); - - escreverOpcode(opc, op); - - } - - protected void escreverOpcode(Token opc) { - - String nomeInstrucao = opc.getText(); - - Integer opcode = opcodesInstrucoes.get(nomeInstrucao); - - verificarAumentoTamanhoMemoria(ip + 1); - - codigo[ip++] = (byte)(opcode.intValue() & 0xFF); - - - } - - - protected void escreverOpcode(Token opc, Token op) throws LabelException { - - escreverOpcode(opc); - - escreverOperando(op); - - } - - protected void escreverOperando(Token token) throws LabelException { - - int valor = 0; - - String operandoTxt = token.getText(); - - switch(token.getType()) { - - case INT: valor = new Integer(operandoTxt);break; - case ID: valor = obterEndereco(operandoTxt);break; - - } - - escreverInteiro(codigo, ip, valor); - - } - - protected void definirLabel(Token id) throws LabelException { - - LabelSymbol label = labels.get(id.getText()); - - if (label != null) - throw new LabelException("Label duplicado"); - - - label = new LabelSymbol(id.getText(), ip); - - labels.put(id.getText(), label); - - } - - protected int obterEndereco(String id) throws LabelException { - - LabelSymbol label = labels.get(id); - - if (label == null) - - throw new LabelException("O label referido năo existe"); - - - return label.address; - - } - - protected static void verificarAumentoTamanhoMemoria(int indice) { - - if ( indice >= codigo.length ) { - - int tamanho = Math.max(indice, codigo.length) * 2; - byte[] novaMemoriaCodigo = new byte[tamanho]; - System.arraycopy(codigo, 0 , novaMemoriaCodigo, 0, codigo.length); - codigo = novaMemoriaCodigo; - - } - - } - - - public static void escreverInteiro(byte[] bytes, int indice, int valor) { - - verificarAumentoTamanhoMemoria(ip + 4); - - bytes[indice + 0] = (byte)((valor >> (8 * 3)) & 0xFF); - bytes[indice + 1] = (byte)((valor >> (8 * 2)) & 0xFF); - bytes[indice + 2] = (byte)((valor >> (8 * 1)) & 0xFF); - bytes[indice + 3] = (byte)(valor & 0xFF); - - ip += 4; - - } - - public static int obterInteiro(byte[] memoria, int indice) { - - int b1 = memoria[indice++]&0xFF; - int b2 = memoria[indice++]&0xFF; - int b3 = memoria[indice++]&0xFF; - int b4 = memoria[indice++]&0xFF; - int palavra = b1<<(8*3) | b2<<(8*2) | b3<<(8*1) | b4; - return palavra; - - } - - - public byte[] obterCodigoMaquina() { - - return codigo; - - } - - public int obterTamanhoMemoriaCodigo() { - - return ip; - - } - - public int getTamMemoriaGlobalReferencias() { - return tamMemoriaGlobalReferencias; - } - - public void setTamMemoriaGlobalReferencias(int tamMemoriaGlobalReferencias) { - this.tamMemoriaGlobalReferencias = tamMemoriaGlobalReferencias; - } - - public int getTamMemoriaGlobal() { - return tamMemoriaGlobal; - } - - public void setTamMemoriaGlobal( - int tamMemoriaGlobal) { - this.tamMemoriaGlobal = tamMemoriaGlobal; - } - - public int getTamMemoriaGlobalEstruturas() { - return tamMemoriaGlobalEstruturas; - } - - public void setTamMemoriaGlobalEstruturas(int tamMemoriaGlobalEstruturas) { - this.tamMemoriaGlobalEstruturas = tamMemoriaGlobalEstruturas; - } - -} +package br.ufpb.iged.interpretador.bytecodeassembler.asm; + +import java.util.HashMap; +import java.util.Map; + +import org.antlr.runtime.TokenStream; + +import org.antlr.runtime.Token; +import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesParser; +import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; +import br.ufpb.iged.interpretador.excecoes.LabelException; + +public class BytecodeAssembler extends BytecodesParser{ + + public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; + public static final int TAMANHO_INICIAL_MEMORIA_GLOBAL = 1024; + + protected Map opcodesInstrucoes = + new HashMap(); + + protected Map labels = + new HashMap(); + protected Map enderecosMap = + new HashMap(); + protected static int ip = 0; + public static byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; + protected int tamMemoriaGlobalEstruturas = 0; + protected int tamMemoriaGlobalReferencias = 0; + protected int tamMemoriaGlobal = 0; + + + public BytecodeAssembler(TokenStream lexer, Definicao.Instrucao[] instrucoes) { + + super(lexer); + + for (int i = 1; i < instrucoes.length; i++) { + + opcodesInstrucoes.put(instrucoes[i].nome, instrucoes[i].opcode); + + } + + } + + protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException { + + String opcodeTxt = opc.getText(); + + if (opcodeTxt.contains("0")) { + + if (tamMemoriaGlobal == 0) + + tamMemoriaGlobal++; + + } else if (opcodeTxt.contains("1")) { + + if (tamMemoriaGlobal == 1) + + tamMemoriaGlobal++; + + else if (tamMemoriaGlobal < 1) + + throw new AcessoIndevidoMemoriaException(); + + } else if (opcodeTxt.contains("2")) { + + if (tamMemoriaGlobal == 2) + + tamMemoriaGlobal++; + + else if (tamMemoriaGlobal < 2) + + throw new AcessoIndevidoMemoriaException(); + + } else if (opcodeTxt.contains("3")) { + + if (tamMemoriaGlobal == 3) + + tamMemoriaGlobal++; + + else if (tamMemoriaGlobal < 3) + + throw new AcessoIndevidoMemoriaException(); + + } + + escreverOpcode(opc); + + } + + protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException { + + Integer endereco = new Integer(op.getText()); + + if (tamMemoriaGlobal == endereco) + + tamMemoriaGlobal++; + + else if (tamMemoriaGlobal < endereco) + + throw new AcessoIndevidoMemoriaException(); + + escreverOpcode(opc, op); + + } + + protected void escreverOpcode(Token opc) { + + String nomeInstrucao = opc.getText(); + + Integer opcode = opcodesInstrucoes.get(nomeInstrucao); + + verificarAumentoTamanhoMemoria(ip + 1); + + codigo[ip++] = (byte)(opcode.intValue() & 0xFF); + + + } + + + protected void escreverOpcode(Token opc, Token op) throws LabelException { + + escreverOpcode(opc); + + escreverOperando(op); + + } + + protected void escreverOperando(Token token) throws LabelException { + + int valor = 0; + + String operandoTxt = token.getText(); + + switch(token.getType()) { + + case INT: valor = new Integer(operandoTxt);break; + case ID: valor = obterEndereco(operandoTxt);break; + + } + + escreverInteiro(codigo, ip, valor); + + } + + protected void definirLabel(Token id) throws LabelException { + + LabelSymbol label = labels.get(id.getText()); + + if (label != null) + throw new LabelException("Label duplicado"); + + + label = new LabelSymbol(id.getText(), ip); + + labels.put(id.getText(), label); + + } + + protected int obterEndereco(String id) throws LabelException { + + LabelSymbol label = labels.get(id); + + if (label == null) + + throw new LabelException("O label referido năo existe"); + + + return label.address; + + } + + protected static void verificarAumentoTamanhoMemoria(int indice) { + + if ( indice >= codigo.length ) { + + int tamanho = Math.max(indice, codigo.length) * 2; + byte[] novaMemoriaCodigo = new byte[tamanho]; + System.arraycopy(codigo, 0 , novaMemoriaCodigo, 0, codigo.length); + codigo = novaMemoriaCodigo; + + } + + } + + + public static void escreverInteiro(byte[] bytes, int indice, int valor) { + + verificarAumentoTamanhoMemoria(ip + 4); + + bytes[indice + 0] = (byte)((valor >> (8 * 3)) & 0xFF); + bytes[indice + 1] = (byte)((valor >> (8 * 2)) & 0xFF); + bytes[indice + 2] = (byte)((valor >> (8 * 1)) & 0xFF); + bytes[indice + 3] = (byte)(valor & 0xFF); + + ip += 4; + + } + + public static int obterInteiro(byte[] memoria, int indice) { + + int b1 = memoria[indice++]&0xFF; + int b2 = memoria[indice++]&0xFF; + int b3 = memoria[indice++]&0xFF; + int b4 = memoria[indice++]&0xFF; + int palavra = b1<<(8*3) | b2<<(8*2) | b3<<(8*1) | b4; + return palavra; + + } + + + public byte[] obterCodigoMaquina() { + + return codigo; + + } + + public int obterTamanhoMemoriaCodigo() { + + return ip; + + } + + public int getTamMemoriaGlobalReferencias() { + return tamMemoriaGlobalReferencias; + } + + public void setTamMemoriaGlobalReferencias(int tamMemoriaGlobalReferencias) { + this.tamMemoriaGlobalReferencias = tamMemoriaGlobalReferencias; + } + + public int getTamMemoriaGlobal() { + return tamMemoriaGlobal; + } + + public void setTamMemoriaGlobal( + int tamMemoriaGlobal) { + this.tamMemoriaGlobal = tamMemoriaGlobal; + } + + public int getTamMemoriaGlobalEstruturas() { + return tamMemoriaGlobalEstruturas; + } + + public void setTamMemoriaGlobalEstruturas(int tamMemoriaGlobalEstruturas) { + this.tamMemoriaGlobalEstruturas = tamMemoriaGlobalEstruturas; + } + +} diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java index c2c4df8..a85f7ec 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java @@ -1,138 +1,138 @@ -package br.ufpb.iged.interpretador.bytecodeassembler.asm; - -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; - -public class Definicao { - - public static final int NOP = 0x0; - - public static final int ICONSTM1 = 0x2; - public static final int ICONST0 = 0x3; - public static final int ICONST1 = 0x4; - public static final int ICONST2 = 0x5; - public static final int ICONST3 = 0x6; - public static final int ICONST4 = 0x7; - public static final int ICONST5 = 0x8; - public static final int LDC = 0x12; - public static final int ILOAD = 0x15; - public static final int ILOAD0 = 0x1A; - public static final int ILOAD1 = 0x1B; - public static final int ILOAD2 = 0x1C; - public static final int ILOAD3 = 0x1D; - public static final int ISTORE = 0x36; - public static final int ISTORE0 = 0x3B; - public static final int ISTORE1 = 0x3C; - public static final int ISTORE2 = 0x3D; - public static final int ISTORE3 = 0x3E; - public static final int POP = 0x57; - public static final int POP2 = 0x58; - public static final int IADD = 0x60; - public static final int ISUB = 0x64; - public static final int IMUL = 0x68; - public static final int IDIV = 0x6C; - public static final int IREM = 0x70; - public static final int INEG = 0x74; - public static final int IAND = 0x7E; - public static final int IOR = 0x80; - public static final int IXOR = 0x82; - public static final int IINC = 0x84; - public static final int IFEQ = 0x99; - public static final int IFNE = 0x9A; - public static final int IFLT = 0x9B; - public static final int IFGE = 0x9C; - public static final int IFGT = 0x9D; - public static final int IFLE = 0x9E; - public static final int IF_ICMPEQ = 0x9F; - public static final int IF_ICMPNE = 0xA0; - public static final int IF_ICMPLT = 0xA1; - public static final int IF_ICMPGE = 0xA2; - public static final int IF_ICMPGT = 0xA3; - public static final int IF_ICMPLE = 0xA4; - public static final int GOTO = 0xA7; - - public static final int ID = AssemblerParser.ID; - public static final int INT= AssemblerParser.INT; - public static final int NOVA_LINHA = AssemblerParser.NOVA_LINHA; - public static final int NULL = AssemblerParser.NULL; - public static final int WS = AssemblerParser.WS; - - - public static class Instrucao { - - String nome; - - int tipo; - - int opcode; - - int n = 0; - - public Instrucao (String nome, int opcode) { - - this (nome, 0, opcode); - - } - - public Instrucao (String nome, int a, int opcode) { - - this.nome = nome; - - tipo = a; - - this.opcode = opcode; - - } - - - } - - public static Instrucao[] instrucoes = new Instrucao[] { null, - new Instrucao("nop", Definicao.NOP), - new Instrucao("iconst_m1", Definicao.ICONSTM1), - new Instrucao("iconst_0", Definicao.ICONST0), - new Instrucao("iconst_1", Definicao.ICONST1), - new Instrucao("iconst_2", Definicao.ICONST2), - new Instrucao("iconst_3", Definicao.ICONST3), - new Instrucao("iconst_4", Definicao.ICONST4), - new Instrucao("iconst_5", Definicao.ICONST5), - new Instrucao("ldc", INT, Definicao.LDC), - new Instrucao("iload", INT, Definicao.ILOAD), - new Instrucao("iload_0", Definicao.ILOAD0), - new Instrucao("iload_1", Definicao.ILOAD1), - new Instrucao("iload_2", Definicao.ILOAD2), - new Instrucao("iload_3", Definicao.ILOAD3), - new Instrucao("istore", INT, Definicao.ISTORE), - new Instrucao("istore_0", Definicao.ISTORE0), - new Instrucao("istore_1", Definicao.ISTORE1), - new Instrucao("istore_2", Definicao.ISTORE2), - new Instrucao("istore_3", Definicao.ISTORE3), - new Instrucao("pop", Definicao.POP), - new Instrucao("pop2", Definicao.POP2), - new Instrucao("iadd", Definicao.IADD), - new Instrucao("isub", Definicao.ISUB), - new Instrucao("imul", Definicao.IMUL), - new Instrucao("idiv", Definicao.IDIV), - new Instrucao("irem", Definicao.IREM), - new Instrucao("ineg", Definicao.INEG), - new Instrucao("iand", Definicao.IADD), - new Instrucao("ior", Definicao.IOR), - new Instrucao("ixor", Definicao.IXOR), - new Instrucao("iinc", Definicao.IINC), - new Instrucao("ifeq", ID, Definicao.IFEQ), - new Instrucao("ifne", ID, Definicao.IFNE), - new Instrucao("iflt", ID, Definicao.IFLT), - new Instrucao("ifge", ID, Definicao.IFGE), - new Instrucao("ifgt", ID, Definicao.IFGT), - new Instrucao("ifle", ID, Definicao.IFLE), - new Instrucao("if_icmpeq", ID, Definicao.IF_ICMPEQ), - new Instrucao("if_icmpne", ID, Definicao.IF_ICMPNE), - new Instrucao("if_icmplt", ID, Definicao.IF_ICMPLT), - new Instrucao("if_icmpge", ID, Definicao.IF_ICMPGE), - new Instrucao("if_icmpgt", ID, Definicao.IF_ICMPGT), - new Instrucao("if_icmple", ID, Definicao.IF_ICMPLE), - new Instrucao("goto", ID, Definicao.GOTO) - - }; - - -} +package br.ufpb.iged.interpretador.bytecodeassembler.asm; + +import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesParser; + +public class Definicao { + + public static final int NOP = 0x0; + + public static final int ICONSTM1 = 0x2; + public static final int ICONST0 = 0x3; + public static final int ICONST1 = 0x4; + public static final int ICONST2 = 0x5; + public static final int ICONST3 = 0x6; + public static final int ICONST4 = 0x7; + public static final int ICONST5 = 0x8; + public static final int LDC = 0x12; + public static final int ILOAD = 0x15; + public static final int ILOAD0 = 0x1A; + public static final int ILOAD1 = 0x1B; + public static final int ILOAD2 = 0x1C; + public static final int ILOAD3 = 0x1D; + public static final int ISTORE = 0x36; + public static final int ISTORE0 = 0x3B; + public static final int ISTORE1 = 0x3C; + public static final int ISTORE2 = 0x3D; + public static final int ISTORE3 = 0x3E; + public static final int POP = 0x57; + public static final int POP2 = 0x58; + public static final int IADD = 0x60; + public static final int ISUB = 0x64; + public static final int IMUL = 0x68; + public static final int IDIV = 0x6C; + public static final int IREM = 0x70; + public static final int INEG = 0x74; + public static final int IAND = 0x7E; + public static final int IOR = 0x80; + public static final int IXOR = 0x82; + public static final int IINC = 0x84; + public static final int IFEQ = 0x99; + public static final int IFNE = 0x9A; + public static final int IFLT = 0x9B; + public static final int IFGE = 0x9C; + public static final int IFGT = 0x9D; + public static final int IFLE = 0x9E; + public static final int IF_ICMPEQ = 0x9F; + public static final int IF_ICMPNE = 0xA0; + public static final int IF_ICMPLT = 0xA1; + public static final int IF_ICMPGE = 0xA2; + public static final int IF_ICMPGT = 0xA3; + public static final int IF_ICMPLE = 0xA4; + public static final int GOTO = 0xA7; + + public static final int ID = BytecodesParser.ID; + public static final int INT= BytecodesParser.INT; + public static final int NOVA_LINHA = BytecodesParser.NOVA_LINHA; + public static final int NULL = BytecodesParser.NULL; + public static final int WS = BytecodesParser.WS; + + + public static class Instrucao { + + String nome; + + int tipo; + + int opcode; + + int n = 0; + + public Instrucao (String nome, int opcode) { + + this (nome, 0, opcode); + + } + + public Instrucao (String nome, int a, int opcode) { + + this.nome = nome; + + tipo = a; + + this.opcode = opcode; + + } + + + } + + public static Instrucao[] instrucoes = new Instrucao[] { null, + new Instrucao("nop", Definicao.NOP), + new Instrucao("iconst_m1", Definicao.ICONSTM1), + new Instrucao("iconst_0", Definicao.ICONST0), + new Instrucao("iconst_1", Definicao.ICONST1), + new Instrucao("iconst_2", Definicao.ICONST2), + new Instrucao("iconst_3", Definicao.ICONST3), + new Instrucao("iconst_4", Definicao.ICONST4), + new Instrucao("iconst_5", Definicao.ICONST5), + new Instrucao("ldc", INT, Definicao.LDC), + new Instrucao("iload", INT, Definicao.ILOAD), + new Instrucao("iload_0", Definicao.ILOAD0), + new Instrucao("iload_1", Definicao.ILOAD1), + new Instrucao("iload_2", Definicao.ILOAD2), + new Instrucao("iload_3", Definicao.ILOAD3), + new Instrucao("istore", INT, Definicao.ISTORE), + new Instrucao("istore_0", Definicao.ISTORE0), + new Instrucao("istore_1", Definicao.ISTORE1), + new Instrucao("istore_2", Definicao.ISTORE2), + new Instrucao("istore_3", Definicao.ISTORE3), + new Instrucao("pop", Definicao.POP), + new Instrucao("pop2", Definicao.POP2), + new Instrucao("iadd", Definicao.IADD), + new Instrucao("isub", Definicao.ISUB), + new Instrucao("imul", Definicao.IMUL), + new Instrucao("idiv", Definicao.IDIV), + new Instrucao("irem", Definicao.IREM), + new Instrucao("ineg", Definicao.INEG), + new Instrucao("iand", Definicao.IADD), + new Instrucao("ior", Definicao.IOR), + new Instrucao("ixor", Definicao.IXOR), + new Instrucao("iinc", Definicao.IINC), + new Instrucao("ifeq", ID, Definicao.IFEQ), + new Instrucao("ifne", ID, Definicao.IFNE), + new Instrucao("iflt", ID, Definicao.IFLT), + new Instrucao("ifge", ID, Definicao.IFGE), + new Instrucao("ifgt", ID, Definicao.IFGT), + new Instrucao("ifle", ID, Definicao.IFLE), + new Instrucao("if_icmpeq", ID, Definicao.IF_ICMPEQ), + new Instrucao("if_icmpne", ID, Definicao.IF_ICMPNE), + new Instrucao("if_icmplt", ID, Definicao.IF_ICMPLT), + new Instrucao("if_icmpge", ID, Definicao.IF_ICMPGE), + new Instrucao("if_icmpgt", ID, Definicao.IF_ICMPGT), + new Instrucao("if_icmple", ID, Definicao.IF_ICMPLE), + new Instrucao("goto", ID, Definicao.GOTO) + + }; + + +} diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Bytecodes.g similarity index 64% rename from src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Assembler.g rename to src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Bytecodes.g index be49d94..bb28b42 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Bytecodes.g @@ -1,4 +1,15 @@ -grammar Assembler; +grammar Bytecodes; + +options { + output = AST; + ASTLabelType = BytecodesAST; +} + +tokens { + MEMBRO_CLASSE; + FIELD_DECL; + EXTENDS; +} @members { @@ -17,10 +28,30 @@ comando : (label instrucao | instrucao); label : a = ID ':' {definirLabel($a);}; -instrucao: (aritmetica | load | store | desvio | logica | 'nop' +instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica + | 'nop' | a = 'pop' {escreverOpcode($a);} | a = 'pop2'{escreverOpcode($a);} )? NOVA_LINHA; + +definicaoClasse : '.class' ID membroClasse+ -> ^('.class' ID ^(MEMBRO_CLASSE membroClasse+)) + | '.class' ID NOVA_LINHA superClasse membroClasse+ + -> ^('.class' ID superClasse ^(MEMBRO_CLASSE membroClasse+)) + | '.method' construtorDefault + ; + +superClasse : '.super' ID -> ^(EXTENDS ID) ; + +membroClasse : '.field' ID tipo NOVA_LINHA -> ^(FIELD_DECL ID tipo) ; + +manipulacaoObjetos : 'getfield' ID '/' ID tipo + | 'putfield' ID '/' ID tipo + | 'invokespecial' ID '/' INIT '()' VOID + ; + +construtorDefault : INIT '()' VOID ; + +tipo : INT | VOID | 'L'ID ; aritmetica : a = 'iadd' {escreverOpcode($a);} | a = 'isub' {escreverOpcode($a);} @@ -42,15 +73,20 @@ load : a = 'iconst_m1'{escreverOpcode($a);} | a = 'iload_1' {escreverOpcode($a);} | a = 'iload_2' {escreverOpcode($a);} | a = 'iload_3' {escreverOpcode($a);} - | a = 'iload' INT {escreverOpcode($a, $INT);} - | a = 'ldc' INT {escreverOpcode($a, $INT);} + | a = 'iload' INTEIRO {escreverOpcode($a, $INTEIRO);} + | a = 'ldc' INTEIRO {escreverOpcode($a, $INTEIRO);} + | a = 'aload' INTEIRO + | a = 'aload_0' + | a = 'aload_1' + | a = 'aload_2' + | a = 'aload_3' ; store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} | a = 'istore_1' {verificarAumentoMemoriaGlobal($a);} | a = 'istore_2' {verificarAumentoMemoriaGlobal($a);} | a = 'istore_3' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore' INT {verificarAumentoMemoriaGlobal($a, $INT);} + | a = 'istore' INTEIRO {verificarAumentoMemoriaGlobal($a, $INTEIRO);} ; logica : a = 'iand' {escreverOpcode($a);} @@ -73,9 +109,15 @@ desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} | a = 'goto' b = ID {escreverOpcode($a, $b);} ; -NULL: ('null' | 'NULL'); +INIT : ''; + +INT : 'I'; + +VOID : 'V'; + +NULL : ('null' | 'NULL'); -INT : '-'? '0'..'9'+ ; +INTEIRO : '-'? '0'..'9'+ ; ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens deleted file mode 100755 index 0e0aa1f..0000000 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens +++ /dev/null @@ -1,95 +0,0 @@ -T__9=9 -T__10=10 -T__11=11 -T__12=12 -T__13=13 -T__14=14 -T__15=15 -T__16=16 -T__17=17 -T__18=18 -T__19=19 -T__20=20 -T__21=21 -T__22=22 -T__23=23 -T__24=24 -T__25=25 -T__26=26 -T__27=27 -T__28=28 -T__29=29 -T__30=30 -T__31=31 -T__32=32 -T__33=33 -T__34=34 -T__35=35 -T__36=36 -T__37=37 -T__38=38 -T__39=39 -T__40=40 -T__41=41 -T__42=42 -T__43=43 -T__44=44 -T__45=45 -T__46=46 -T__47=47 -T__48=48 -T__49=49 -T__50=50 -T__51=51 -T__52=52 -T__53=53 -ID=4 -INT=5 -NOVA_LINHA=6 -NULL=7 -WS=8 -':'=9 -'goto'=10 -'iadd'=11 -'iand'=12 -'iconst_0'=13 -'iconst_1'=14 -'iconst_2'=15 -'iconst_3'=16 -'iconst_4'=17 -'iconst_5'=18 -'iconst_m1'=19 -'idiv'=20 -'if_icmpeq'=21 -'if_icmpge'=22 -'if_icmpgt'=23 -'if_icmple'=24 -'if_icmplt'=25 -'if_icmpne'=26 -'ifeq'=27 -'ifge'=28 -'ifgt'=29 -'ifle'=30 -'iflt'=31 -'ifne'=32 -'iinc'=33 -'iload'=34 -'iload_0'=35 -'iload_1'=36 -'iload_2'=37 -'iload_3'=38 -'imul'=39 -'ineg'=40 -'ior'=41 -'irem'=42 -'istore'=43 -'istore_0'=44 -'istore_1'=45 -'istore_2'=46 -'istore_3'=47 -'isub'=48 -'ixor'=49 -'ldc'=50 -'nop'=51 -'pop'=52 -'pop2'=53 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java deleted file mode 100755 index c3b2c71..0000000 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ /dev/null @@ -1,1988 +0,0 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g 2012-04-18 17:32:19 - -package br.ufpb.iged.interpretador.bytecodeassembler.parser; - -import org.antlr.runtime.*; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; - -@SuppressWarnings({"all", "warnings", "unchecked"}) -public class AssemblerLexer extends Lexer { - public static final int EOF=-1; - public static final int T__9=9; - public static final int T__10=10; - public static final int T__11=11; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__19=19; - public static final int T__20=20; - public static final int T__21=21; - public static final int T__22=22; - public static final int T__23=23; - public static final int T__24=24; - public static final int T__25=25; - public static final int T__26=26; - public static final int T__27=27; - public static final int T__28=28; - public static final int T__29=29; - public static final int T__30=30; - public static final int T__31=31; - public static final int T__32=32; - public static final int T__33=33; - public static final int T__34=34; - public static final int T__35=35; - public static final int T__36=36; - public static final int T__37=37; - public static final int T__38=38; - public static final int T__39=39; - public static final int T__40=40; - public static final int T__41=41; - public static final int T__42=42; - public static final int T__43=43; - public static final int T__44=44; - public static final int T__45=45; - public static final int T__46=46; - public static final int T__47=47; - public static final int T__48=48; - public static final int T__49=49; - public static final int T__50=50; - public static final int T__51=51; - public static final int T__52=52; - public static final int T__53=53; - public static final int ID=4; - public static final int INT=5; - public static final int NOVA_LINHA=6; - public static final int NULL=7; - public static final int WS=8; - - // delegates - // delegators - public Lexer[] getDelegates() { - return new Lexer[] {}; - } - - public AssemblerLexer() {} - public AssemblerLexer(CharStream input) { - this(input, new RecognizerSharedState()); - } - public AssemblerLexer(CharStream input, RecognizerSharedState state) { - super(input,state); - } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g"; } - - // $ANTLR start "T__9" - public final void mT__9() throws RecognitionException { - try { - int _type = T__9; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:2:6: ( ':' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:2:8: ':' - { - match(':'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__9" - - // $ANTLR start "T__10" - public final void mT__10() throws RecognitionException { - try { - int _type = T__10; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:3:7: ( 'goto' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:3:9: 'goto' - { - match("goto"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__10" - - // $ANTLR start "T__11" - public final void mT__11() throws RecognitionException { - try { - int _type = T__11; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:4:7: ( 'iadd' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:4:9: 'iadd' - { - match("iadd"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__11" - - // $ANTLR start "T__12" - public final void mT__12() throws RecognitionException { - try { - int _type = T__12; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:5:7: ( 'iand' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:5:9: 'iand' - { - match("iand"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__12" - - // $ANTLR start "T__13" - public final void mT__13() throws RecognitionException { - try { - int _type = T__13; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:6:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:6:9: 'iconst_0' - { - match("iconst_0"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__13" - - // $ANTLR start "T__14" - public final void mT__14() throws RecognitionException { - try { - int _type = T__14; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:7:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:7:9: 'iconst_1' - { - match("iconst_1"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__14" - - // $ANTLR start "T__15" - public final void mT__15() throws RecognitionException { - try { - int _type = T__15; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:8:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:8:9: 'iconst_2' - { - match("iconst_2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__15" - - // $ANTLR start "T__16" - public final void mT__16() throws RecognitionException { - try { - int _type = T__16; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:9:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:9:9: 'iconst_3' - { - match("iconst_3"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__16" - - // $ANTLR start "T__17" - public final void mT__17() throws RecognitionException { - try { - int _type = T__17; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:10:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:10:9: 'iconst_4' - { - match("iconst_4"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__17" - - // $ANTLR start "T__18" - public final void mT__18() throws RecognitionException { - try { - int _type = T__18; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:11:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:11:9: 'iconst_5' - { - match("iconst_5"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__18" - - // $ANTLR start "T__19" - public final void mT__19() throws RecognitionException { - try { - int _type = T__19; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:12:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:12:9: 'iconst_m1' - { - match("iconst_m1"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__19" - - // $ANTLR start "T__20" - public final void mT__20() throws RecognitionException { - try { - int _type = T__20; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:7: ( 'idiv' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:9: 'idiv' - { - match("idiv"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__20" - - // $ANTLR start "T__21" - public final void mT__21() throws RecognitionException { - try { - int _type = T__21; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:14:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:14:9: 'if_icmpeq' - { - match("if_icmpeq"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__21" - - // $ANTLR start "T__22" - public final void mT__22() throws RecognitionException { - try { - int _type = T__22; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:15:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:15:9: 'if_icmpge' - { - match("if_icmpge"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__22" - - // $ANTLR start "T__23" - public final void mT__23() throws RecognitionException { - try { - int _type = T__23; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:9: 'if_icmpgt' - { - match("if_icmpgt"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__23" - - // $ANTLR start "T__24" - public final void mT__24() throws RecognitionException { - try { - int _type = T__24; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:17:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:17:9: 'if_icmple' - { - match("if_icmple"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__24" - - // $ANTLR start "T__25" - public final void mT__25() throws RecognitionException { - try { - int _type = T__25; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:18:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:18:9: 'if_icmplt' - { - match("if_icmplt"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__25" - - // $ANTLR start "T__26" - public final void mT__26() throws RecognitionException { - try { - int _type = T__26; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:19:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:19:9: 'if_icmpne' - { - match("if_icmpne"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__26" - - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { - try { - int _type = T__27; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:9: 'ifeq' - { - match("ifeq"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__27" - - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { - try { - int _type = T__28; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:21:7: ( 'ifge' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:21:9: 'ifge' - { - match("ifge"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__28" - - // $ANTLR start "T__29" - public final void mT__29() throws RecognitionException { - try { - int _type = T__29; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:22:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:22:9: 'ifgt' - { - match("ifgt"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__29" - - // $ANTLR start "T__30" - public final void mT__30() throws RecognitionException { - try { - int _type = T__30; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:23:7: ( 'ifle' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:23:9: 'ifle' - { - match("ifle"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__30" - - // $ANTLR start "T__31" - public final void mT__31() throws RecognitionException { - try { - int _type = T__31; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:24:7: ( 'iflt' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:24:9: 'iflt' - { - match("iflt"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__31" - - // $ANTLR start "T__32" - public final void mT__32() throws RecognitionException { - try { - int _type = T__32; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:25:7: ( 'ifne' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:25:9: 'ifne' - { - match("ifne"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__32" - - // $ANTLR start "T__33" - public final void mT__33() throws RecognitionException { - try { - int _type = T__33; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:26:7: ( 'iinc' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:26:9: 'iinc' - { - match("iinc"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__33" - - // $ANTLR start "T__34" - public final void mT__34() throws RecognitionException { - try { - int _type = T__34; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:27:7: ( 'iload' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:27:9: 'iload' - { - match("iload"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__34" - - // $ANTLR start "T__35" - public final void mT__35() throws RecognitionException { - try { - int _type = T__35; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:28:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:28:9: 'iload_0' - { - match("iload_0"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__35" - - // $ANTLR start "T__36" - public final void mT__36() throws RecognitionException { - try { - int _type = T__36; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:29:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:29:9: 'iload_1' - { - match("iload_1"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__36" - - // $ANTLR start "T__37" - public final void mT__37() throws RecognitionException { - try { - int _type = T__37; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:30:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:30:9: 'iload_2' - { - match("iload_2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__37" - - // $ANTLR start "T__38" - public final void mT__38() throws RecognitionException { - try { - int _type = T__38; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:31:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:31:9: 'iload_3' - { - match("iload_3"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__38" - - // $ANTLR start "T__39" - public final void mT__39() throws RecognitionException { - try { - int _type = T__39; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:32:7: ( 'imul' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:32:9: 'imul' - { - match("imul"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__39" - - // $ANTLR start "T__40" - public final void mT__40() throws RecognitionException { - try { - int _type = T__40; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:33:7: ( 'ineg' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:33:9: 'ineg' - { - match("ineg"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__40" - - // $ANTLR start "T__41" - public final void mT__41() throws RecognitionException { - try { - int _type = T__41; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:34:7: ( 'ior' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:34:9: 'ior' - { - match("ior"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__41" - - // $ANTLR start "T__42" - public final void mT__42() throws RecognitionException { - try { - int _type = T__42; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:35:7: ( 'irem' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:35:9: 'irem' - { - match("irem"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__42" - - // $ANTLR start "T__43" - public final void mT__43() throws RecognitionException { - try { - int _type = T__43; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:36:7: ( 'istore' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:36:9: 'istore' - { - match("istore"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__43" - - // $ANTLR start "T__44" - public final void mT__44() throws RecognitionException { - try { - int _type = T__44; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:37:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:37:9: 'istore_0' - { - match("istore_0"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__44" - - // $ANTLR start "T__45" - public final void mT__45() throws RecognitionException { - try { - int _type = T__45; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:38:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:38:9: 'istore_1' - { - match("istore_1"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__45" - - // $ANTLR start "T__46" - public final void mT__46() throws RecognitionException { - try { - int _type = T__46; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:39:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:39:9: 'istore_2' - { - match("istore_2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__46" - - // $ANTLR start "T__47" - public final void mT__47() throws RecognitionException { - try { - int _type = T__47; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:40:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:40:9: 'istore_3' - { - match("istore_3"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__47" - - // $ANTLR start "T__48" - public final void mT__48() throws RecognitionException { - try { - int _type = T__48; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:41:7: ( 'isub' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:41:9: 'isub' - { - match("isub"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__48" - - // $ANTLR start "T__49" - public final void mT__49() throws RecognitionException { - try { - int _type = T__49; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:42:7: ( 'ixor' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:42:9: 'ixor' - { - match("ixor"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__49" - - // $ANTLR start "T__50" - public final void mT__50() throws RecognitionException { - try { - int _type = T__50; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:43:7: ( 'ldc' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:43:9: 'ldc' - { - match("ldc"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__50" - - // $ANTLR start "T__51" - public final void mT__51() throws RecognitionException { - try { - int _type = T__51; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:44:7: ( 'nop' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:44:9: 'nop' - { - match("nop"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__51" - - // $ANTLR start "T__52" - public final void mT__52() throws RecognitionException { - try { - int _type = T__52; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:45:7: ( 'pop' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:45:9: 'pop' - { - match("pop"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__52" - - // $ANTLR start "T__53" - public final void mT__53() throws RecognitionException { - try { - int _type = T__53; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:46:7: ( 'pop2' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:46:9: 'pop2' - { - match("pop2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__53" - - // $ANTLR start "NULL" - public final void mNULL() throws RecognitionException { - try { - int _type = NULL; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:5: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:7: ( 'null' | 'NULL' ) - { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:7: ( 'null' | 'NULL' ) - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0=='n') ) { - alt1=1; - } - else if ( (LA1_0=='N') ) { - alt1=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - - throw nvae; - - } - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:8: 'null' - { - match("null"); - - - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:76:17: 'NULL' - { - match("NULL"); - - - - } - break; - - } - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "NULL" - - // $ANTLR start "INT" - public final void mINT() throws RecognitionException { - try { - int _type = INT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:5: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:7: ( '-' )? ( '0' .. '9' )+ - { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:7: ( '-' )? - int alt2=2; - int LA2_0 = input.LA(1); - - if ( (LA2_0=='-') ) { - alt2=1; - } - switch (alt2) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:7: '-' - { - match('-'); - - } - break; - - } - - - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:78:12: ( '0' .. '9' )+ - int cnt3=0; - loop3: - do { - int alt3=2; - int LA3_0 = input.LA(1); - - if ( ((LA3_0 >= '0' && LA3_0 <= '9')) ) { - alt3=1; - } - - - switch (alt3) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g: - { - if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - } - break; - - default : - if ( cnt3 >= 1 ) break loop3; - EarlyExitException eee = - new EarlyExitException(3, input); - throw eee; - } - cnt3++; - } while (true); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "INT" - - // $ANTLR start "ID" - public final void mID() throws RecognitionException { - try { - int _type = ID; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - { - if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:80:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - loop4: - do { - int alt4=2; - int LA4_0 = input.LA(1); - - if ( (LA4_0=='.'||(LA4_0 >= '0' && LA4_0 <= '9')||(LA4_0 >= 'A' && LA4_0 <= 'Z')||(LA4_0 >= 'a' && LA4_0 <= 'z')) ) { - alt4=1; - } - - - switch (alt4) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g: - { - if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - } - break; - - default : - break loop4; - } - } while (true); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "ID" - - // $ANTLR start "NOVA_LINHA" - public final void mNOVA_LINHA() throws RecognitionException { - try { - int _type = NOVA_LINHA; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:84:12: ( ';' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:84:14: ';' - { - match(';'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "NOVA_LINHA" - - // $ANTLR start "WS" - public final void mWS() throws RecognitionException { - try { - int _type = WS; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:86:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:86:6: ( ' ' | '\\t' | '\\r' | '\\n' ) - { - if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - skip(); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "WS" - - public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:8: ( T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | NULL | INT | ID | NOVA_LINHA | WS ) - int alt5=50; - alt5 = dfa5.predict(input); - switch (alt5) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:10: T__9 - { - mT__9(); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:15: T__10 - { - mT__10(); - - - } - break; - case 3 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:21: T__11 - { - mT__11(); - - - } - break; - case 4 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:27: T__12 - { - mT__12(); - - - } - break; - case 5 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:33: T__13 - { - mT__13(); - - - } - break; - case 6 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:39: T__14 - { - mT__14(); - - - } - break; - case 7 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:45: T__15 - { - mT__15(); - - - } - break; - case 8 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:51: T__16 - { - mT__16(); - - - } - break; - case 9 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:57: T__17 - { - mT__17(); - - - } - break; - case 10 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:63: T__18 - { - mT__18(); - - - } - break; - case 11 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:69: T__19 - { - mT__19(); - - - } - break; - case 12 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:75: T__20 - { - mT__20(); - - - } - break; - case 13 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:81: T__21 - { - mT__21(); - - - } - break; - case 14 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:87: T__22 - { - mT__22(); - - - } - break; - case 15 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:93: T__23 - { - mT__23(); - - - } - break; - case 16 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:99: T__24 - { - mT__24(); - - - } - break; - case 17 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:105: T__25 - { - mT__25(); - - - } - break; - case 18 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:111: T__26 - { - mT__26(); - - - } - break; - case 19 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:117: T__27 - { - mT__27(); - - - } - break; - case 20 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:123: T__28 - { - mT__28(); - - - } - break; - case 21 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:129: T__29 - { - mT__29(); - - - } - break; - case 22 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:135: T__30 - { - mT__30(); - - - } - break; - case 23 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:141: T__31 - { - mT__31(); - - - } - break; - case 24 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:147: T__32 - { - mT__32(); - - - } - break; - case 25 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:153: T__33 - { - mT__33(); - - - } - break; - case 26 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:159: T__34 - { - mT__34(); - - - } - break; - case 27 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:165: T__35 - { - mT__35(); - - - } - break; - case 28 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:171: T__36 - { - mT__36(); - - - } - break; - case 29 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:177: T__37 - { - mT__37(); - - - } - break; - case 30 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:183: T__38 - { - mT__38(); - - - } - break; - case 31 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:189: T__39 - { - mT__39(); - - - } - break; - case 32 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:195: T__40 - { - mT__40(); - - - } - break; - case 33 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:201: T__41 - { - mT__41(); - - - } - break; - case 34 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:207: T__42 - { - mT__42(); - - - } - break; - case 35 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:213: T__43 - { - mT__43(); - - - } - break; - case 36 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:219: T__44 - { - mT__44(); - - - } - break; - case 37 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:225: T__45 - { - mT__45(); - - - } - break; - case 38 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:231: T__46 - { - mT__46(); - - - } - break; - case 39 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:237: T__47 - { - mT__47(); - - - } - break; - case 40 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:243: T__48 - { - mT__48(); - - - } - break; - case 41 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:249: T__49 - { - mT__49(); - - - } - break; - case 42 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:255: T__50 - { - mT__50(); - - - } - break; - case 43 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:261: T__51 - { - mT__51(); - - - } - break; - case 44 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:267: T__52 - { - mT__52(); - - - } - break; - case 45 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:273: T__53 - { - mT__53(); - - - } - break; - case 46 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:279: NULL - { - mNULL(); - - - } - break; - case 47 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:284: INT - { - mINT(); - - - } - break; - case 48 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:288: ID - { - mID(); - - - } - break; - case 49 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:291: NOVA_LINHA - { - mNOVA_LINHA(); - - - } - break; - case 50 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:1:302: WS - { - mWS(); - - - } - break; - - } - - } - - - protected DFA5 dfa5 = new DFA5(this); - static final String DFA5_eotS = - "\2\uffff\6\11\4\uffff\27\11\1\uffff\10\11\1\106\4\11\1\113\1\114"+ - "\1\11\1\117\1\11\1\121\1\122\1\123\1\11\1\125\1\uffff\1\127\1\130"+ - "\1\131\1\132\1\133\1\134\1\135\1\11\1\137\1\140\1\uffff\1\141\1"+ - "\11\1\143\1\144\2\uffff\1\145\1\146\1\uffff\1\145\3\uffff\1\11\11"+ - "\uffff\1\152\3\uffff\1\11\4\uffff\1\11\3\uffff\1\163\33\uffff"; - static final String DFA5_eofS = - "\u0087\uffff"; - static final String DFA5_minS = - "\1\11\1\uffff\1\157\1\141\1\144\2\157\1\125\4\uffff\1\164\1\144"+ - "\1\157\1\151\1\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157"+ - "\1\143\1\160\1\154\1\160\1\114\1\157\2\144\1\156\1\166\1\151\1\161"+ - "\3\145\1\143\1\141\1\154\1\147\1\56\1\155\1\157\1\142\1\162\2\56"+ - "\1\154\1\56\1\114\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\uffff"+ - "\1\56\1\162\2\56\2\uffff\2\56\1\uffff\1\56\3\uffff\1\164\1\uffff"+ - "\1\155\7\uffff\1\56\3\uffff\1\145\4\uffff\1\137\1\160\1\60\1\uffff"+ - "\1\56\1\60\1\145\4\uffff\1\60\11\uffff\2\145\11\uffff"; - static final String DFA5_maxS = - "\1\172\1\uffff\1\157\1\170\1\144\1\165\1\157\1\125\4\uffff\1\164"+ - "\1\156\1\157\1\151\2\156\1\157\1\165\1\145\1\162\1\145\1\165\1\157"+ - "\1\143\1\160\1\154\1\160\1\114\1\157\2\144\1\156\1\166\1\151\1\161"+ - "\2\164\1\145\1\143\1\141\1\154\1\147\1\172\1\155\1\157\1\142\1\162"+ - "\2\172\1\154\1\172\1\114\3\172\1\163\1\172\1\143\7\172\1\144\2\172"+ - "\1\uffff\1\172\1\162\2\172\2\uffff\2\172\1\uffff\1\172\3\uffff\1"+ - "\164\1\uffff\1\155\7\uffff\1\172\3\uffff\1\145\4\uffff\1\137\1\160"+ - "\1\63\1\uffff\1\172\1\155\1\156\4\uffff\1\63\11\uffff\2\164\11\uffff"; - static final String DFA5_acceptS = - "\1\uffff\1\1\6\uffff\1\57\1\60\1\61\1\62\72\uffff\1\41\4\uffff\1"+ - "\52\1\53\2\uffff\1\54\1\uffff\1\2\1\3\1\4\1\uffff\1\14\1\uffff\1"+ - "\23\1\24\1\25\1\26\1\27\1\30\1\31\1\uffff\1\37\1\40\1\42\1\uffff"+ - "\1\50\1\51\1\56\1\55\3\uffff\1\32\3\uffff\1\33\1\34\1\35\1\36\1"+ - "\uffff\1\43\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\15\2\uffff\1\22\1"+ - "\44\1\45\1\46\1\47\1\16\1\17\1\20\1\21"; - static final String DFA5_specialS = - "\u0087\uffff}>"; - static final String[] DFA5_transitionS = { - "\2\13\2\uffff\1\13\22\uffff\1\13\14\uffff\1\10\2\uffff\12\10"+ - "\1\1\1\12\5\uffff\15\11\1\7\14\11\6\uffff\6\11\1\2\1\11\1\3"+ - "\2\11\1\4\1\11\1\5\1\11\1\6\12\11", - "", - "\1\14", - "\1\15\1\uffff\1\16\1\17\1\uffff\1\20\2\uffff\1\21\2\uffff\1"+ - "\22\1\23\1\24\1\25\2\uffff\1\26\1\27\4\uffff\1\30", - "\1\31", - "\1\32\5\uffff\1\33", - "\1\34", - "\1\35", - "", - "", - "", - "", - "\1\36", - "\1\37\11\uffff\1\40", - "\1\41", - "\1\42", - "\1\43\5\uffff\1\44\1\uffff\1\45\4\uffff\1\46\1\uffff\1\47", - "\1\50", - "\1\51", - "\1\52", - "\1\53", - "\1\54", - "\1\55", - "\1\56\1\57", - "\1\60", - "\1\61", - "\1\62", - "\1\63", - "\1\64", - "\1\65", - "\1\66", - "\1\67", - "\1\70", - "\1\71", - "\1\72", - "\1\73", - "\1\74", - "\1\75\16\uffff\1\76", - "\1\77\16\uffff\1\100", - "\1\101", - "\1\102", - "\1\103", - "\1\104", - "\1\105", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\107", - "\1\110", - "\1\111", - "\1\112", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\115", - "\1\11\1\uffff\2\11\1\116\7\11\7\uffff\32\11\6\uffff\32\11", - "\1\120", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\124", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\126", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\136", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\142", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\6\uffff\32\11", - "", - "", - "", - "\1\147", - "", - "\1\150", - "", - "", - "", - "", - "", - "", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\4\uffff\1\151\1\uffff\32"+ - "\11", - "", - "", - "", - "\1\153", - "", - "", - "", - "", - "\1\154", - "\1\155", - "\1\156\1\157\1\160\1\161", - "", - "\1\11\1\uffff\12\11\7\uffff\32\11\4\uffff\1\162\1\uffff\32"+ - "\11", - "\1\164\1\165\1\166\1\167\1\170\1\171\67\uffff\1\172", - "\1\173\1\uffff\1\174\4\uffff\1\175\1\uffff\1\176", - "", - "", - "", - "", - "\1\177\1\u0080\1\u0081\1\u0082", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "\1\u0083\16\uffff\1\u0084", - "\1\u0085\16\uffff\1\u0086", - "", - "", - "", - "", - "", - "", - "", - "", - "" - }; - - static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS); - static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS); - static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS); - static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS); - static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS); - static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS); - static final short[][] DFA5_transition; - - static { - int numStates = DFA5_transitionS.length; - DFA5_transition = new short[numStates][]; - for (int i=0; i", "", "", "", "ID", "INT", "NOVA_LINHA", "NULL", "WS", "':'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'" - }; - - public static final int EOF=-1; - public static final int T__9=9; - public static final int T__10=10; - public static final int T__11=11; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__19=19; - public static final int T__20=20; - public static final int T__21=21; - public static final int T__22=22; - public static final int T__23=23; - public static final int T__24=24; - public static final int T__25=25; - public static final int T__26=26; - public static final int T__27=27; - public static final int T__28=28; - public static final int T__29=29; - public static final int T__30=30; - public static final int T__31=31; - public static final int T__32=32; - public static final int T__33=33; - public static final int T__34=34; - public static final int T__35=35; - public static final int T__36=36; - public static final int T__37=37; - public static final int T__38=38; - public static final int T__39=39; - public static final int T__40=40; - public static final int T__41=41; - public static final int T__42=42; - public static final int T__43=43; - public static final int T__44=44; - public static final int T__45=45; - public static final int T__46=46; - public static final int T__47=47; - public static final int T__48=48; - public static final int T__49=49; - public static final int T__50=50; - public static final int T__51=51; - public static final int T__52=52; - public static final int T__53=53; - public static final int ID=4; - public static final int INT=5; - public static final int NOVA_LINHA=6; - public static final int NULL=7; - public static final int WS=8; - - // delegates - public Parser[] getDelegates() { - return new Parser[] {}; - } - - // delegators - - - public AssemblerParser(TokenStream input) { - this(input, new RecognizerSharedState()); - } - public AssemblerParser(TokenStream input, RecognizerSharedState state) { - super(input, state); - } - - public String[] getTokenNames() { return AssemblerParser.tokenNames; } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g"; } - - - - protected abstract void escreverOpcode(Token opc); - protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - protected abstract void definirLabel(Token id) throws LabelException; - - - - - // $ANTLR start "programa" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:1: programa : ( comando )* ; - public final void programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:10: ( ( comando )* ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:12: ( comando )* - { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:12: ( comando )* - loop1: - do { - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||(LA1_0 >= 10 && LA1_0 <= 53)) ) { - alt1=1; - } - - - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:13:12: comando - { - pushFollow(FOLLOW_comando_in_programa16); - comando(); - - state._fsp--; - - - } - break; - - default : - break loop1; - } - } while (true); - - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "programa" - - - - // $ANTLR start "comando" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:1: comando : ( label instrucao | instrucao ) ; - public final void comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:11: ( label instrucao | instrucao ) - { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:11: ( label instrucao | instrucao ) - int alt2=2; - int LA2_0 = input.LA(1); - - if ( (LA2_0==ID) ) { - alt2=1; - } - else if ( (LA2_0==NOVA_LINHA||(LA2_0 >= 10 && LA2_0 <= 53)) ) { - alt2=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 2, 0, input); - - throw nvae; - - } - switch (alt2) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:12: label instrucao - { - pushFollow(FOLLOW_label_in_comando36); - label(); - - state._fsp--; - - - pushFollow(FOLLOW_instrucao_in_comando38); - instrucao(); - - state._fsp--; - - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:16:30: instrucao - { - pushFollow(FOLLOW_instrucao_in_comando42); - instrucao(); - - state._fsp--; - - - } - break; - - } - - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "comando" - - - - // $ANTLR start "label" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:18:1: label : a= ID ':' ; - public final void label() throws RecognitionException, LabelException { - Token a=null; - - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:18:7: (a= ID ':' ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:18:9: a= ID ':' - { - a=(Token)match(input,ID,FOLLOW_ID_in_label64); - - match(input,9,FOLLOW_9_in_label66); - - definirLabel(a); - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "label" - - - - // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:1: instrucao : ( aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; - public final void instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - Token a=null; - - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:10: ( ( aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:12: ( aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA - { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:12: ( aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? - int alt3=9; - switch ( input.LA(1) ) { - case 11: - case 20: - case 33: - case 39: - case 40: - case 42: - case 48: - { - alt3=1; - } - break; - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 34: - case 35: - case 36: - case 37: - case 38: - case 50: - { - alt3=2; - } - break; - case 43: - case 44: - case 45: - case 46: - case 47: - { - alt3=3; - } - break; - case 10: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - { - alt3=4; - } - break; - case 12: - case 41: - case 49: - { - alt3=5; - } - break; - case 51: - { - alt3=6; - } - break; - case 52: - { - alt3=7; - } - break; - case 53: - { - alt3=8; - } - break; - } - - switch (alt3) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:13: aritmetica - { - pushFollow(FOLLOW_aritmetica_in_instrucao76); - aritmetica(); - - state._fsp--; - - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:26: load - { - pushFollow(FOLLOW_load_in_instrucao80); - load(); - - state._fsp--; - - - } - break; - case 3 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:33: store - { - pushFollow(FOLLOW_store_in_instrucao84); - store(); - - state._fsp--; - - - } - break; - case 4 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:41: desvio - { - pushFollow(FOLLOW_desvio_in_instrucao88); - desvio(); - - state._fsp--; - - - } - break; - case 5 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:50: logica - { - pushFollow(FOLLOW_logica_in_instrucao92); - logica(); - - state._fsp--; - - - } - break; - case 6 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:20:59: 'nop' - { - match(input,51,FOLLOW_51_in_instrucao96); - - } - break; - case 7 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:21:17: a= 'pop' - { - a=(Token)match(input,52,FOLLOW_52_in_instrucao118); - - escreverOpcode(a); - - } - break; - case 8 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:22:17: a= 'pop2' - { - a=(Token)match(input,53,FOLLOW_53_in_instrucao142); - - escreverOpcode(a); - - } - break; - - } - - - match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao162); - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "instrucao" - - - - // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:25:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); - public final void aritmetica() throws RecognitionException { - Token a=null; - - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:25:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt4=7; - switch ( input.LA(1) ) { - case 11: - { - alt4=1; - } - break; - case 48: - { - alt4=2; - } - break; - case 39: - { - alt4=3; - } - break; - case 20: - { - alt4=4; - } - break; - case 42: - { - alt4=5; - } - break; - case 33: - { - alt4=6; - } - break; - case 40: - { - alt4=7; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 4, 0, input); - - throw nvae; - - } - - switch (alt4) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:25:14: a= 'iadd' - { - a=(Token)match(input,11,FOLLOW_11_in_aritmetica174); - - escreverOpcode(a); - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:26:14: a= 'isub' - { - a=(Token)match(input,48,FOLLOW_48_in_aritmetica195); - - escreverOpcode(a); - - } - break; - case 3 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:27:14: a= 'imul' - { - a=(Token)match(input,39,FOLLOW_39_in_aritmetica216); - - escreverOpcode(a); - - } - break; - case 4 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:28:14: a= 'idiv' - { - a=(Token)match(input,20,FOLLOW_20_in_aritmetica237); - - escreverOpcode(a); - - } - break; - case 5 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:29:14: a= 'irem' - { - a=(Token)match(input,42,FOLLOW_42_in_aritmetica258); - - escreverOpcode(a); - - } - break; - case 6 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:30:14: a= 'iinc' - { - a=(Token)match(input,33,FOLLOW_33_in_aritmetica279); - - escreverOpcode(a); - - } - break; - case 7 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:31:14: a= 'ineg' - { - a=(Token)match(input,40,FOLLOW_40_in_aritmetica300); - - escreverOpcode(a); - - } - break; - - } - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "aritmetica" - - - - // $ANTLR start "load" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:34:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INT |a= 'ldc' INT ); - public final void load() throws RecognitionException, LabelException { - Token a=null; - Token INT1=null; - Token INT2=null; - - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:34:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INT |a= 'ldc' INT ) - int alt5=13; - switch ( input.LA(1) ) { - case 19: - { - alt5=1; - } - break; - case 13: - { - alt5=2; - } - break; - case 14: - { - alt5=3; - } - break; - case 15: - { - alt5=4; - } - break; - case 16: - { - alt5=5; - } - break; - case 17: - { - alt5=6; - } - break; - case 18: - { - alt5=7; - } - break; - case 35: - { - alt5=8; - } - break; - case 36: - { - alt5=9; - } - break; - case 37: - { - alt5=10; - } - break; - case 38: - { - alt5=11; - } - break; - case 34: - { - alt5=12; - } - break; - case 50: - { - alt5=13; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 5, 0, input); - - throw nvae; - - } - - switch (alt5) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:34:8: a= 'iconst_m1' - { - a=(Token)match(input,19,FOLLOW_19_in_load337); - - escreverOpcode(a); - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:35:8: a= 'iconst_0' - { - a=(Token)match(input,13,FOLLOW_13_in_load351); - - escreverOpcode(a); - - } - break; - case 3 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:36:8: a= 'iconst_1' - { - a=(Token)match(input,14,FOLLOW_14_in_load366); - - escreverOpcode(a); - - } - break; - case 4 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:37:8: a= 'iconst_2' - { - a=(Token)match(input,15,FOLLOW_15_in_load381); - - escreverOpcode(a); - - } - break; - case 5 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:38:8: a= 'iconst_3' - { - a=(Token)match(input,16,FOLLOW_16_in_load396); - - escreverOpcode(a); - - } - break; - case 6 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:39:8: a= 'iconst_4' - { - a=(Token)match(input,17,FOLLOW_17_in_load410); - - escreverOpcode(a); - - } - break; - case 7 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:40:8: a= 'iconst_5' - { - a=(Token)match(input,18,FOLLOW_18_in_load424); - - escreverOpcode(a); - - } - break; - case 8 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:41:8: a= 'iload_0' - { - a=(Token)match(input,35,FOLLOW_35_in_load438); - - escreverOpcode(a); - - } - break; - case 9 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:42:8: a= 'iload_1' - { - a=(Token)match(input,36,FOLLOW_36_in_load453); - - escreverOpcode(a); - - } - break; - case 10 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:43:8: a= 'iload_2' - { - a=(Token)match(input,37,FOLLOW_37_in_load468); - - escreverOpcode(a); - - } - break; - case 11 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:44:8: a= 'iload_3' - { - a=(Token)match(input,38,FOLLOW_38_in_load483); - - escreverOpcode(a); - - } - break; - case 12 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:45:8: a= 'iload' INT - { - a=(Token)match(input,34,FOLLOW_34_in_load498); - - INT1=(Token)match(input,INT,FOLLOW_INT_in_load500); - - escreverOpcode(a, INT1); - - } - break; - case 13 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:46:8: a= 'ldc' INT - { - a=(Token)match(input,50,FOLLOW_50_in_load515); - - INT2=(Token)match(input,INT,FOLLOW_INT_in_load517); - - escreverOpcode(a, INT2); - - } - break; - - } - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "load" - - - - // $ANTLR start "store" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:49:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INT ); - public final void store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { - Token a=null; - Token INT3=null; - - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:49:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INT ) - int alt6=5; - switch ( input.LA(1) ) { - case 44: - { - alt6=1; - } - break; - case 45: - { - alt6=2; - } - break; - case 46: - { - alt6=3; - } - break; - case 47: - { - alt6=4; - } - break; - case 43: - { - alt6=5; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); - - throw nvae; - - } - - switch (alt6) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:49:9: a= 'istore_0' - { - a=(Token)match(input,44,FOLLOW_44_in_store542); - - verificarAumentoMemoriaGlobal(a); - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:50:9: a= 'istore_1' - { - a=(Token)match(input,45,FOLLOW_45_in_store558); - - verificarAumentoMemoriaGlobal(a); - - } - break; - case 3 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:51:9: a= 'istore_2' - { - a=(Token)match(input,46,FOLLOW_46_in_store574); - - verificarAumentoMemoriaGlobal(a); - - } - break; - case 4 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:52:9: a= 'istore_3' - { - a=(Token)match(input,47,FOLLOW_47_in_store590); - - verificarAumentoMemoriaGlobal(a); - - } - break; - case 5 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:53:9: a= 'istore' INT - { - a=(Token)match(input,43,FOLLOW_43_in_store606); - - INT3=(Token)match(input,INT,FOLLOW_INT_in_store608); - - verificarAumentoMemoriaGlobal(a, INT3); - - } - break; - - } - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "store" - - - - // $ANTLR start "logica" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:56:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); - public final void logica() throws RecognitionException { - Token a=null; - - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:56:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt7=3; - switch ( input.LA(1) ) { - case 12: - { - alt7=1; - } - break; - case 41: - { - alt7=2; - } - break; - case 49: - { - alt7=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 7, 0, input); - - throw nvae; - - } - - switch (alt7) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:56:10: a= 'iand' - { - a=(Token)match(input,12,FOLLOW_12_in_logica629); - - escreverOpcode(a); - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:57:10: a= 'ior' - { - a=(Token)match(input,41,FOLLOW_41_in_logica646); - - escreverOpcode(a); - - } - break; - case 3 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:58:10: a= 'ixor' - { - a=(Token)match(input,49,FOLLOW_49_in_logica663); - - escreverOpcode(a); - - } - break; - - } - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "logica" - - - - // $ANTLR start "desvio" - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:61:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); - public final void desvio() throws RecognitionException, LabelException { - Token a=null; - Token b=null; - - try { - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:61:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt8=13; - switch ( input.LA(1) ) { - case 27: - { - alt8=1; - } - break; - case 32: - { - alt8=2; - } - break; - case 31: - { - alt8=3; - } - break; - case 28: - { - alt8=4; - } - break; - case 29: - { - alt8=5; - } - break; - case 30: - { - alt8=6; - } - break; - case 21: - { - alt8=7; - } - break; - case 26: - { - alt8=8; - } - break; - case 25: - { - alt8=9; - } - break; - case 22: - { - alt8=10; - } - break; - case 23: - { - alt8=11; - } - break; - case 24: - { - alt8=12; - } - break; - case 10: - { - alt8=13; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); - - throw nvae; - - } - - switch (alt8) { - case 1 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:61:10: a= 'ifeq' b= ID - { - a=(Token)match(input,27,FOLLOW_27_in_desvio685); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio691); - - escreverOpcode(a, b); - - } - break; - case 2 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:62:10: a= 'ifne' b= ID - { - a=(Token)match(input,32,FOLLOW_32_in_desvio708); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio714); - - escreverOpcode(a, b); - - } - break; - case 3 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:63:10: a= 'iflt' b= ID - { - a=(Token)match(input,31,FOLLOW_31_in_desvio731); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio737); - - escreverOpcode(a, b); - - } - break; - case 4 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:64:10: a= 'ifge' b= ID - { - a=(Token)match(input,28,FOLLOW_28_in_desvio754); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio760); - - escreverOpcode(a, b); - - } - break; - case 5 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:65:10: a= 'ifgt' b= ID - { - a=(Token)match(input,29,FOLLOW_29_in_desvio777); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio783); - - escreverOpcode(a, b); - - } - break; - case 6 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:66:10: a= 'ifle' b= ID - { - a=(Token)match(input,30,FOLLOW_30_in_desvio800); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio806); - - escreverOpcode(a, b); - - } - break; - case 7 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:67:10: a= 'if_icmpeq' b= ID - { - a=(Token)match(input,21,FOLLOW_21_in_desvio823); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio829); - - escreverOpcode(a, b); - - } - break; - case 8 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:68:10: a= 'if_icmpne' b= ID - { - a=(Token)match(input,26,FOLLOW_26_in_desvio846); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio852); - - escreverOpcode(a, b); - - } - break; - case 9 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:69:10: a= 'if_icmplt' b= ID - { - a=(Token)match(input,25,FOLLOW_25_in_desvio869); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio875); - - escreverOpcode(a, b); - - } - break; - case 10 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:70:10: a= 'if_icmpge' b= ID - { - a=(Token)match(input,22,FOLLOW_22_in_desvio892); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio898); - - escreverOpcode(a, b); - - } - break; - case 11 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:71:10: a= 'if_icmpgt' b= ID - { - a=(Token)match(input,23,FOLLOW_23_in_desvio915); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio921); - - escreverOpcode(a, b); - - } - break; - case 12 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:72:10: a= 'if_icmple' b= ID - { - a=(Token)match(input,24,FOLLOW_24_in_desvio938); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio944); - - escreverOpcode(a, b); - - } - break; - case 13 : - // C:\\Users\\Tiago\\.ssh\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\grammars\\Assembler.g:73:10: a= 'goto' b= ID - { - a=(Token)match(input,10,FOLLOW_10_in_desvio961); - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio967); - - escreverOpcode(a, b); - - } - break; - - } - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "desvio" - - // Delegated rules - - - - - public static final BitSet FOLLOW_comando_in_programa16 = new BitSet(new long[]{0x003FFFFFFFFFFC52L}); - public static final BitSet FOLLOW_label_in_comando36 = new BitSet(new long[]{0x003FFFFFFFFFFC40L}); - public static final BitSet FOLLOW_instrucao_in_comando38 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando42 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label64 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_9_in_label66 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao76 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_load_in_instrucao80 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_store_in_instrucao84 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_desvio_in_instrucao88 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_logica_in_instrucao92 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_51_in_instrucao96 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_52_in_instrucao118 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_53_in_instrucao142 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao162 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_11_in_aritmetica174 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_aritmetica195 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_aritmetica216 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_20_in_aritmetica237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_aritmetica258 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_aritmetica279 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_aritmetica300 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_19_in_load337 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_13_in_load351 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_14_in_load366 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_15_in_load381 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_load396 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_load410 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_18_in_load424 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load438 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load453 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load468 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load483 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load498 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_INT_in_load500 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_load515 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_INT_in_load517 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_store542 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_store558 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_store574 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_store590 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_store606 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_INT_in_store608 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_12_in_logica629 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_logica646 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_logica663 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_desvio685 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio691 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_desvio708 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio714 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_desvio731 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio737 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_desvio754 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio760 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_desvio777 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio783 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_desvio800 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio806 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_21_in_desvio823 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio829 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_desvio846 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio852 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_desvio869 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio875 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_22_in_desvio892 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio898 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_desvio915 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio921 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_desvio938 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio944 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_10_in_desvio961 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio967 = new BitSet(new long[]{0x0000000000000002L}); - -} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Bytecodes.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Bytecodes.tokens new file mode 100644 index 0000000..bbc8897 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Bytecodes.tokens @@ -0,0 +1,131 @@ +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +EXTENDS=4 +FIELD_DECL=5 +ID=6 +INIT=7 +INT=8 +INTEIRO=9 +MEMBRO_CLASSE=10 +NOVA_LINHA=11 +NULL=12 +VOID=13 +WS=14 +'()'=15 +'.class'=16 +'.field'=17 +'.method'=18 +'.super'=19 +'/'=20 +':'=21 +'L'=22 +'aload'=23 +'aload_0'=24 +'aload_1'=25 +'aload_2'=26 +'aload_3'=27 +'getfield'=28 +'goto'=29 +'iadd'=30 +'iand'=31 +'iconst_0'=32 +'iconst_1'=33 +'iconst_2'=34 +'iconst_3'=35 +'iconst_4'=36 +'iconst_5'=37 +'iconst_m1'=38 +'idiv'=39 +'if_icmpeq'=40 +'if_icmpge'=41 +'if_icmpgt'=42 +'if_icmple'=43 +'if_icmplt'=44 +'if_icmpne'=45 +'ifeq'=46 +'ifge'=47 +'ifgt'=48 +'ifle'=49 +'iflt'=50 +'ifne'=51 +'iinc'=52 +'iload'=53 +'iload_0'=54 +'iload_1'=55 +'iload_2'=56 +'iload_3'=57 +'imul'=58 +'ineg'=59 +'invokespecial'=60 +'ior'=61 +'irem'=62 +'istore'=63 +'istore_0'=64 +'istore_1'=65 +'istore_2'=66 +'istore_3'=67 +'isub'=68 +'ixor'=69 +'ldc'=70 +'nop'=71 +'pop'=72 +'pop2'=73 +'putfield'=74 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesLexer.java new file mode 100644 index 0000000..2922d17 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesLexer.java @@ -0,0 +1,2632 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g 2012-06-16 19:01:13 + +package br.ufpb.iged.interpretador.bytecodeassembler.parser; + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public class BytecodesLexer extends Lexer { + public static final int EOF=-1; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__19=19; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__50=50; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + public static final int T__54=54; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__59=59; + public static final int T__60=60; + public static final int T__61=61; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int T__66=66; + public static final int T__67=67; + public static final int T__68=68; + public static final int T__69=69; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int T__73=73; + public static final int T__74=74; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int INTEIRO=9; + public static final int MEMBRO_CLASSE=10; + public static final int NOVA_LINHA=11; + public static final int NULL=12; + public static final int VOID=13; + public static final int WS=14; + + // delegates + // delegators + public Lexer[] getDelegates() { + return new Lexer[] {}; + } + + public BytecodesLexer() {} + public BytecodesLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public BytecodesLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g"; } + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:2:7: ( '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:2:9: '()' + { + match("()"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__15" + + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { + try { + int _type = T__16; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:3:7: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:3:9: '.class' + { + match(".class"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__16" + + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { + try { + int _type = T__17; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:4:7: ( '.field' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:4:9: '.field' + { + match(".field"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__17" + + // $ANTLR start "T__18" + public final void mT__18() throws RecognitionException { + try { + int _type = T__18; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:5:7: ( '.method' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:5:9: '.method' + { + match(".method"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__18" + + // $ANTLR start "T__19" + public final void mT__19() throws RecognitionException { + try { + int _type = T__19; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:6:7: ( '.super' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:6:9: '.super' + { + match(".super"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__19" + + // $ANTLR start "T__20" + public final void mT__20() throws RecognitionException { + try { + int _type = T__20; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:7:7: ( '/' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:7:9: '/' + { + match('/'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__20" + + // $ANTLR start "T__21" + public final void mT__21() throws RecognitionException { + try { + int _type = T__21; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:8:7: ( ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:8:9: ':' + { + match(':'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__21" + + // $ANTLR start "T__22" + public final void mT__22() throws RecognitionException { + try { + int _type = T__22; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:9:7: ( 'L' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:9:9: 'L' + { + match('L'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__22" + + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { + try { + int _type = T__23; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:10:7: ( 'aload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:10:9: 'aload' + { + match("aload"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__23" + + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { + try { + int _type = T__24; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:11:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:11:9: 'aload_0' + { + match("aload_0"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__24" + + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { + try { + int _type = T__25; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:12:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:12:9: 'aload_1' + { + match("aload_1"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__25" + + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { + try { + int _type = T__26; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:13:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:13:9: 'aload_2' + { + match("aload_2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__26" + + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:14:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:14:9: 'aload_3' + { + match("aload_3"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__27" + + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { + try { + int _type = T__28; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:15:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:15:9: 'getfield' + { + match("getfield"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__28" + + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { + try { + int _type = T__29; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:16:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:16:9: 'goto' + { + match("goto"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__29" + + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { + try { + int _type = T__30; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:17:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:17:9: 'iadd' + { + match("iadd"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:18:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:18:9: 'iand' + { + match("iand"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__31" + + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { + try { + int _type = T__32; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:19:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:19:9: 'iconst_0' + { + match("iconst_0"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__32" + + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { + try { + int _type = T__33; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:20:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:20:9: 'iconst_1' + { + match("iconst_1"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__33" + + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { + try { + int _type = T__34; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:21:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:21:9: 'iconst_2' + { + match("iconst_2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__34" + + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { + try { + int _type = T__35; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:22:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:22:9: 'iconst_3' + { + match("iconst_3"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__35" + + // $ANTLR start "T__36" + public final void mT__36() throws RecognitionException { + try { + int _type = T__36; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:23:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:23:9: 'iconst_4' + { + match("iconst_4"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__36" + + // $ANTLR start "T__37" + public final void mT__37() throws RecognitionException { + try { + int _type = T__37; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:9: 'iconst_5' + { + match("iconst_5"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__37" + + // $ANTLR start "T__38" + public final void mT__38() throws RecognitionException { + try { + int _type = T__38; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:25:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:25:9: 'iconst_m1' + { + match("iconst_m1"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__38" + + // $ANTLR start "T__39" + public final void mT__39() throws RecognitionException { + try { + int _type = T__39; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:26:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:26:9: 'idiv' + { + match("idiv"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__39" + + // $ANTLR start "T__40" + public final void mT__40() throws RecognitionException { + try { + int _type = T__40; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:9: 'if_icmpeq' + { + match("if_icmpeq"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__40" + + // $ANTLR start "T__41" + public final void mT__41() throws RecognitionException { + try { + int _type = T__41; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:28:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:28:9: 'if_icmpge' + { + match("if_icmpge"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__41" + + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { + try { + int _type = T__42; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:9: 'if_icmpgt' + { + match("if_icmpgt"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__42" + + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { + try { + int _type = T__43; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:30:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:30:9: 'if_icmple' + { + match("if_icmple"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__43" + + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { + try { + int _type = T__44; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:9: 'if_icmplt' + { + match("if_icmplt"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__44" + + // $ANTLR start "T__45" + public final void mT__45() throws RecognitionException { + try { + int _type = T__45; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:32:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:32:9: 'if_icmpne' + { + match("if_icmpne"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__45" + + // $ANTLR start "T__46" + public final void mT__46() throws RecognitionException { + try { + int _type = T__46; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:33:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:33:9: 'ifeq' + { + match("ifeq"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__46" + + // $ANTLR start "T__47" + public final void mT__47() throws RecognitionException { + try { + int _type = T__47; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:34:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:34:9: 'ifge' + { + match("ifge"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__47" + + // $ANTLR start "T__48" + public final void mT__48() throws RecognitionException { + try { + int _type = T__48; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:35:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:35:9: 'ifgt' + { + match("ifgt"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__48" + + // $ANTLR start "T__49" + public final void mT__49() throws RecognitionException { + try { + int _type = T__49; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:36:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:36:9: 'ifle' + { + match("ifle"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__49" + + // $ANTLR start "T__50" + public final void mT__50() throws RecognitionException { + try { + int _type = T__50; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:9: 'iflt' + { + match("iflt"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__50" + + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { + try { + int _type = T__51; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:9: 'ifne' + { + match("ifne"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__51" + + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { + try { + int _type = T__52; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:39:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:39:9: 'iinc' + { + match("iinc"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__52" + + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { + try { + int _type = T__53; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:40:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:40:9: 'iload' + { + match("iload"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__53" + + // $ANTLR start "T__54" + public final void mT__54() throws RecognitionException { + try { + int _type = T__54; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:41:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:41:9: 'iload_0' + { + match("iload_0"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__54" + + // $ANTLR start "T__55" + public final void mT__55() throws RecognitionException { + try { + int _type = T__55; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:42:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:42:9: 'iload_1' + { + match("iload_1"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__55" + + // $ANTLR start "T__56" + public final void mT__56() throws RecognitionException { + try { + int _type = T__56; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:9: 'iload_2' + { + match("iload_2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__56" + + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { + try { + int _type = T__57; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:44:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:44:9: 'iload_3' + { + match("iload_3"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__57" + + // $ANTLR start "T__58" + public final void mT__58() throws RecognitionException { + try { + int _type = T__58; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:9: 'imul' + { + match("imul"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__58" + + // $ANTLR start "T__59" + public final void mT__59() throws RecognitionException { + try { + int _type = T__59; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:46:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:46:9: 'ineg' + { + match("ineg"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__59" + + // $ANTLR start "T__60" + public final void mT__60() throws RecognitionException { + try { + int _type = T__60; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:9: 'invokespecial' + { + match("invokespecial"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__60" + + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { + try { + int _type = T__61; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:48:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:48:9: 'ior' + { + match("ior"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__61" + + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { + try { + int _type = T__62; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:49:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:49:9: 'irem' + { + match("irem"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__62" + + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { + try { + int _type = T__63; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:50:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:50:9: 'istore' + { + match("istore"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__63" + + // $ANTLR start "T__64" + public final void mT__64() throws RecognitionException { + try { + int _type = T__64; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:51:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:51:9: 'istore_0' + { + match("istore_0"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__64" + + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { + try { + int _type = T__65; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:9: 'istore_1' + { + match("istore_1"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__65" + + // $ANTLR start "T__66" + public final void mT__66() throws RecognitionException { + try { + int _type = T__66; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:53:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:53:9: 'istore_2' + { + match("istore_2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__66" + + // $ANTLR start "T__67" + public final void mT__67() throws RecognitionException { + try { + int _type = T__67; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:9: 'istore_3' + { + match("istore_3"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__67" + + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { + try { + int _type = T__68; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:55:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:55:9: 'isub' + { + match("isub"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__68" + + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { + try { + int _type = T__69; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:9: 'ixor' + { + match("ixor"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__69" + + // $ANTLR start "T__70" + public final void mT__70() throws RecognitionException { + try { + int _type = T__70; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:57:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:57:9: 'ldc' + { + match("ldc"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__70" + + // $ANTLR start "T__71" + public final void mT__71() throws RecognitionException { + try { + int _type = T__71; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:58:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:58:9: 'nop' + { + match("nop"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__71" + + // $ANTLR start "T__72" + public final void mT__72() throws RecognitionException { + try { + int _type = T__72; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:59:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:59:9: 'pop' + { + match("pop"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__72" + + // $ANTLR start "T__73" + public final void mT__73() throws RecognitionException { + try { + int _type = T__73; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:60:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:60:9: 'pop2' + { + match("pop2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__73" + + // $ANTLR start "T__74" + public final void mT__74() throws RecognitionException { + try { + int _type = T__74; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:61:7: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:61:9: 'putfield' + { + match("putfield"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__74" + + // $ANTLR start "INIT" + public final void mINIT() throws RecognitionException { + try { + int _type = INIT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:112:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:112:8: '' + { + match(""); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INIT" + + // $ANTLR start "INT" + public final void mINT() throws RecognitionException { + try { + int _type = INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:114:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:114:7: 'I' + { + match('I'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INT" + + // $ANTLR start "VOID" + public final void mVOID() throws RecognitionException { + try { + int _type = VOID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:116:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:116:8: 'V' + { + match('V'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "VOID" + + // $ANTLR start "NULL" + public final void mNULL() throws RecognitionException { + try { + int _type = NULL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:8: ( 'null' | 'NULL' ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:8: ( 'null' | 'NULL' ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='n') ) { + alt1=1; + } + else if ( (LA1_0=='N') ) { + alt1=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + + } + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:9: 'null' + { + match("null"); + + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:18: 'NULL' + { + match("NULL"); + + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NULL" + + // $ANTLR start "INTEIRO" + public final void mINTEIRO() throws RecognitionException { + try { + int _type = INTEIRO; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:11: ( '-' )? ( '0' .. '9' )+ + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:11: ( '-' )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0=='-') ) { + alt2=1; + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:11: '-' + { + match('-'); + + } + break; + + } + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:16: ( '0' .. '9' )+ + int cnt3=0; + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0 >= '0' && LA3_0 <= '9')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + } + break; + + default : + if ( cnt3 >= 1 ) break loop3; + EarlyExitException eee = + new EarlyExitException(3, input); + throw eee; + } + cnt3++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INTEIRO" + + // $ANTLR start "ID" + public final void mID() throws RecognitionException { + try { + int _type = ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:122:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:122:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + { + if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:122:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='.'||(LA4_0 >= '0' && LA4_0 <= '9')||(LA4_0 >= 'A' && LA4_0 <= 'Z')||(LA4_0 >= 'a' && LA4_0 <= 'z')) ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g: + { + if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + } + break; + + default : + break loop4; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ID" + + // $ANTLR start "NOVA_LINHA" + public final void mNOVA_LINHA() throws RecognitionException { + try { + int _type = NOVA_LINHA; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:126:12: ( ';' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:126:14: ';' + { + match(';'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NOVA_LINHA" + + // $ANTLR start "WS" + public final void mWS() throws RecognitionException { + try { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:128:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:128:6: ( ' ' | '\\t' | '\\r' | '\\n' ) + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + skip(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "WS" + + public void mTokens() throws RecognitionException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + int alt5=68; + alt5 = dfa5.predict(input); + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:10: T__15 + { + mT__15(); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:16: T__16 + { + mT__16(); + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:22: T__17 + { + mT__17(); + + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:28: T__18 + { + mT__18(); + + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:34: T__19 + { + mT__19(); + + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:40: T__20 + { + mT__20(); + + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:46: T__21 + { + mT__21(); + + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:52: T__22 + { + mT__22(); + + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:58: T__23 + { + mT__23(); + + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:64: T__24 + { + mT__24(); + + + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:70: T__25 + { + mT__25(); + + + } + break; + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:76: T__26 + { + mT__26(); + + + } + break; + case 13 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:82: T__27 + { + mT__27(); + + + } + break; + case 14 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:88: T__28 + { + mT__28(); + + + } + break; + case 15 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:94: T__29 + { + mT__29(); + + + } + break; + case 16 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:100: T__30 + { + mT__30(); + + + } + break; + case 17 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:106: T__31 + { + mT__31(); + + + } + break; + case 18 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:112: T__32 + { + mT__32(); + + + } + break; + case 19 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:118: T__33 + { + mT__33(); + + + } + break; + case 20 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:124: T__34 + { + mT__34(); + + + } + break; + case 21 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:130: T__35 + { + mT__35(); + + + } + break; + case 22 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:136: T__36 + { + mT__36(); + + + } + break; + case 23 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:142: T__37 + { + mT__37(); + + + } + break; + case 24 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:148: T__38 + { + mT__38(); + + + } + break; + case 25 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:154: T__39 + { + mT__39(); + + + } + break; + case 26 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:160: T__40 + { + mT__40(); + + + } + break; + case 27 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:166: T__41 + { + mT__41(); + + + } + break; + case 28 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:172: T__42 + { + mT__42(); + + + } + break; + case 29 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:178: T__43 + { + mT__43(); + + + } + break; + case 30 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:184: T__44 + { + mT__44(); + + + } + break; + case 31 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:190: T__45 + { + mT__45(); + + + } + break; + case 32 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:196: T__46 + { + mT__46(); + + + } + break; + case 33 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:202: T__47 + { + mT__47(); + + + } + break; + case 34 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:208: T__48 + { + mT__48(); + + + } + break; + case 35 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:214: T__49 + { + mT__49(); + + + } + break; + case 36 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:220: T__50 + { + mT__50(); + + + } + break; + case 37 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:226: T__51 + { + mT__51(); + + + } + break; + case 38 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:232: T__52 + { + mT__52(); + + + } + break; + case 39 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:238: T__53 + { + mT__53(); + + + } + break; + case 40 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:244: T__54 + { + mT__54(); + + + } + break; + case 41 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:250: T__55 + { + mT__55(); + + + } + break; + case 42 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:256: T__56 + { + mT__56(); + + + } + break; + case 43 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:262: T__57 + { + mT__57(); + + + } + break; + case 44 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:268: T__58 + { + mT__58(); + + + } + break; + case 45 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:274: T__59 + { + mT__59(); + + + } + break; + case 46 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:280: T__60 + { + mT__60(); + + + } + break; + case 47 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:286: T__61 + { + mT__61(); + + + } + break; + case 48 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:292: T__62 + { + mT__62(); + + + } + break; + case 49 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:298: T__63 + { + mT__63(); + + + } + break; + case 50 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:304: T__64 + { + mT__64(); + + + } + break; + case 51 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:310: T__65 + { + mT__65(); + + + } + break; + case 52 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:316: T__66 + { + mT__66(); + + + } + break; + case 53 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:322: T__67 + { + mT__67(); + + + } + break; + case 54 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:328: T__68 + { + mT__68(); + + + } + break; + case 55 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:334: T__69 + { + mT__69(); + + + } + break; + case 56 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:340: T__70 + { + mT__70(); + + + } + break; + case 57 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:346: T__71 + { + mT__71(); + + + } + break; + case 58 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:352: T__72 + { + mT__72(); + + + } + break; + case 59 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:358: T__73 + { + mT__73(); + + + } + break; + case 60 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:364: T__74 + { + mT__74(); + + + } + break; + case 61 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:370: INIT + { + mINIT(); + + + } + break; + case 62 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:375: INT + { + mINT(); + + + } + break; + case 63 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:379: VOID + { + mVOID(); + + + } + break; + case 64 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:384: NULL + { + mNULL(); + + + } + break; + case 65 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:389: INTEIRO + { + mINTEIRO(); + + + } + break; + case 66 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:397: ID + { + mID(); + + + } + break; + case 67 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:400: NOVA_LINHA + { + mNOVA_LINHA(); + + + } + break; + case 68 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:411: WS + { + mWS(); + + + } + break; + + } + + } + + + protected DFA5 dfa5 = new DFA5(this); + static final String DFA5_eotS = + "\5\uffff\1\30\6\21\1\uffff\1\55\1\56\1\21\11\uffff\24\21\2\uffff"+ + "\10\21\1\uffff\11\21\1\137\4\21\1\144\1\145\1\21\1\150\4\21\1\155"+ + "\1\156\1\157\1\21\1\161\1\uffff\1\163\1\164\1\165\1\166\1\167\1"+ + "\170\1\171\1\21\1\173\1\174\1\21\1\uffff\1\176\1\21\1\u0080\1\u0081"+ + "\2\uffff\1\u0082\1\u0083\1\uffff\1\21\1\u0082\1\u0086\1\21\3\uffff"+ + "\1\21\11\uffff\1\u008b\2\uffff\1\21\1\uffff\1\21\4\uffff\1\21\2"+ + "\uffff\2\21\3\uffff\1\21\1\u009c\1\21\4\uffff\1\21\6\uffff\1\21"+ + "\2\uffff\1\21\1\u00b0\13\uffff\1\21\4\uffff\1\u00b6\5\uffff\1\21"+ + "\1\uffff\3\21\1\u00bb\1\uffff"; + static final String DFA5_eofS = + "\u00bc\uffff"; + static final String DFA5_minS = + "\1\11\1\uffff\1\143\2\uffff\1\56\1\154\1\145\1\141\1\144\2\157\1"+ + "\uffff\2\56\1\125\11\uffff\1\157\2\164\1\144\1\157\1\151\1\137\1"+ + "\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\160\1\154"+ + "\1\160\1\164\2\uffff\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1"+ + "\151\1\161\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157"+ + "\1\142\1\162\2\56\1\154\1\56\1\146\1\114\1\144\1\151\3\56\1\163"+ + "\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff\1\56\1\162\2\56\2\uffff"+ + "\2\56\1\uffff\1\151\2\56\1\145\3\uffff\1\164\1\uffff\1\155\7\uffff"+ + "\1\56\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1\60\1\uffff\1\154"+ + "\1\137\1\160\1\60\1\uffff\1\163\1\56\1\154\4\uffff\1\144\1\60\1"+ + "\145\4\uffff\1\160\1\60\1\uffff\1\144\1\56\10\uffff\2\145\1\uffff"+ + "\1\145\4\uffff\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56"+ + "\1\uffff"; + static final String DFA5_maxS = + "\1\172\1\uffff\1\163\2\uffff\1\172\1\154\1\157\1\170\1\144\2\165"+ + "\1\uffff\2\172\1\125\11\uffff\1\157\2\164\1\156\1\157\1\151\2\156"+ + "\1\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143\1\160\1\154\1\160"+ + "\1\164\2\uffff\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1\151\1"+ + "\161\2\164\1\145\1\143\1\141\1\154\1\147\1\157\1\172\1\155\1\157"+ + "\1\142\1\162\2\172\1\154\1\172\1\146\1\114\1\144\1\151\3\172\1\163"+ + "\1\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1\172\1\162\2\172\2"+ + "\uffff\2\172\1\uffff\1\151\2\172\1\145\3\uffff\1\164\1\uffff\1\155"+ + "\7\uffff\1\172\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1\63\1"+ + "\uffff\1\154\1\137\1\160\1\63\1\uffff\1\163\1\172\1\154\4\uffff"+ + "\1\144\1\155\1\156\4\uffff\1\160\1\63\1\uffff\1\144\1\172\10\uffff"+ + "\2\164\1\uffff\1\145\4\uffff\1\172\5\uffff\1\143\1\uffff\1\151\1"+ + "\141\1\154\1\172\1\uffff"; + static final String DFA5_acceptS = + "\1\uffff\1\1\1\uffff\1\6\1\7\7\uffff\1\75\3\uffff\1\101\1\102\1"+ + "\103\1\104\1\2\1\3\1\4\1\5\1\10\24\uffff\1\76\1\77\60\uffff\1\57"+ + "\4\uffff\1\70\1\71\2\uffff\1\72\4\uffff\1\17\1\20\1\21\1\uffff\1"+ + "\31\1\uffff\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\uffff\1\54\1\55"+ + "\1\uffff\1\60\1\uffff\1\66\1\67\1\100\1\73\2\uffff\1\11\4\uffff"+ + "\1\47\3\uffff\1\12\1\13\1\14\1\15\3\uffff\1\50\1\51\1\52\1\53\2"+ + "\uffff\1\61\2\uffff\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\32\2\uffff"+ + "\1\37\1\uffff\1\62\1\63\1\64\1\65\1\uffff\1\16\1\33\1\34\1\35\1"+ + "\36\1\uffff\1\74\4\uffff\1\56"; + static final String DFA5_specialS = + "\u00bc\uffff}>"; + static final String[] DFA5_transitionS = { + "\2\23\2\uffff\1\23\22\uffff\1\23\7\uffff\1\1\4\uffff\1\20\1"+ + "\2\1\3\12\20\1\4\1\22\1\14\4\uffff\10\21\1\15\2\21\1\5\1\21"+ + "\1\17\7\21\1\16\4\21\6\uffff\1\6\5\21\1\7\1\21\1\10\2\21\1\11"+ + "\1\21\1\12\1\21\1\13\12\21", + "", + "\1\24\2\uffff\1\25\6\uffff\1\26\5\uffff\1\27", + "", + "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\31", + "\1\32\11\uffff\1\33", + "\1\34\1\uffff\1\35\1\36\1\uffff\1\37\2\uffff\1\40\2\uffff\1"+ + "\41\1\42\1\43\1\44\2\uffff\1\45\1\46\4\uffff\1\47", + "\1\50", + "\1\51\5\uffff\1\52", + "\1\53\5\uffff\1\54", + "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\57", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\60", + "\1\61", + "\1\62", + "\1\63\11\uffff\1\64", + "\1\65", + "\1\66", + "\1\67\5\uffff\1\70\1\uffff\1\71\4\uffff\1\72\1\uffff\1\73", + "\1\74", + "\1\75", + "\1\76", + "\1\77\20\uffff\1\100", + "\1\101", + "\1\102", + "\1\103\1\104", + "\1\105", + "\1\106", + "\1\107", + "\1\110", + "\1\111", + "\1\112", + "", + "", + "\1\113", + "\1\114", + "\1\115", + "\1\116", + "\1\117", + "\1\120", + "\1\121", + "\1\122", + "\1\123", + "\1\124", + "\1\125\16\uffff\1\126", + "\1\127\16\uffff\1\130", + "\1\131", + "\1\132", + "\1\133", + "\1\134", + "\1\135", + "\1\136", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\140", + "\1\141", + "\1\142", + "\1\143", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\146", + "\1\21\1\uffff\2\21\1\147\7\21\7\uffff\32\21\6\uffff\32\21", + "\1\151", + "\1\152", + "\1\153", + "\1\154", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\160", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\162", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\172", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\175", + "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\177", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "", + "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "", + "\1\u0084", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u0085\1\uffff\32"+ + "\21", + "\1\u0087", + "", + "", + "", + "\1\u0088", + "", + "\1\u0089", + "", + "", + "", + "", + "", + "", + "", + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u008a\1\uffff\32"+ + "\21", + "", + "", + "\1\u008c", + "", + "\1\u008d", + "", + "", + "", + "", + "\1\u008e", + "\1\u008f\1\u0090\1\u0091\1\u0092", + "", + "\1\u0093", + "\1\u0094", + "\1\u0095", + "\1\u0096\1\u0097\1\u0098\1\u0099", + "", + "\1\u009a", + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u009b\1\uffff\32"+ + "\21", + "\1\u009d", + "", + "", + "", + "", + "\1\u009e", + "\1\u009f\1\u00a0\1\u00a1\1\u00a2\1\u00a3\1\u00a4\67\uffff\1"+ + "\u00a5", + "\1\u00a6\1\uffff\1\u00a7\4\uffff\1\u00a8\1\uffff\1\u00a9", + "", + "", + "", + "", + "\1\u00aa", + "\1\u00ab\1\u00ac\1\u00ad\1\u00ae", + "", + "\1\u00af", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\u00b1\16\uffff\1\u00b2", + "\1\u00b3\16\uffff\1\u00b4", + "", + "\1\u00b5", + "", + "", + "", + "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "", + "", + "", + "", + "", + "\1\u00b7", + "", + "\1\u00b8", + "\1\u00b9", + "\1\u00ba", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "" + }; + + static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS); + static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS); + static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS); + static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS); + static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS); + static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS); + static final short[][] DFA5_transition; + + static { + int numStates = DFA5_transitionS.length; + DFA5_transition = new short[numStates][]; + for (int i=0; i", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + }; + + public static final int EOF=-1; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__19=19; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__50=50; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + public static final int T__54=54; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__59=59; + public static final int T__60=60; + public static final int T__61=61; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int T__66=66; + public static final int T__67=67; + public static final int T__68=68; + public static final int T__69=69; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int T__73=73; + public static final int T__74=74; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int INTEIRO=9; + public static final int MEMBRO_CLASSE=10; + public static final int NOVA_LINHA=11; + public static final int NULL=12; + public static final int VOID=13; + public static final int WS=14; + + // delegates + public Parser[] getDelegates() { + return new Parser[] {}; + } + + // delegators + + + public BytecodesParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public BytecodesParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + } + +protected TreeAdaptor adaptor = new CommonTreeAdaptor(); + +public void setTreeAdaptor(TreeAdaptor adaptor) { + this.adaptor = adaptor; +} +public TreeAdaptor getTreeAdaptor() { + return adaptor; +} + public String[] getTokenNames() { return BytecodesParser.tokenNames; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g"; } + + + + protected abstract void escreverOpcode(Token opc); + protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; + protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + protected abstract void definirLabel(Token id) throws LabelException; + + + + public static class programa_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "programa" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:1: programa : ( comando )* ; + public final BytecodesParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + BytecodesParser.programa_return retval = new BytecodesParser.programa_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + BytecodesParser.comando_return comando1 =null; + + + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:12: ( comando )* + { + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:12: ( comando )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==16||LA1_0==18||(LA1_0 >= 23 && LA1_0 <= 74)) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:12: comando + { + pushFollow(FOLLOW_comando_in_programa59); + comando1=comando(); + + state._fsp--; + + adaptor.addChild(root_0, comando1.getTree()); + + } + break; + + default : + break loop1; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "programa" + + + public static class comando_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "comando" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:1: comando : ( label instrucao | instrucao ) ; + public final BytecodesParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + BytecodesParser.comando_return retval = new BytecodesParser.comando_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + BytecodesParser.label_return label2 =null; + + BytecodesParser.instrucao_return instrucao3 =null; + + BytecodesParser.instrucao_return instrucao4 =null; + + + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:11: ( label instrucao | instrucao ) + { + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:11: ( label instrucao | instrucao ) + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==ID) ) { + alt2=1; + } + else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 74)) ) { + alt2=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:12: label instrucao + { + pushFollow(FOLLOW_label_in_comando79); + label2=label(); + + state._fsp--; + + adaptor.addChild(root_0, label2.getTree()); + + pushFollow(FOLLOW_instrucao_in_comando81); + instrucao3=instrucao(); + + state._fsp--; + + adaptor.addChild(root_0, instrucao3.getTree()); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:30: instrucao + { + pushFollow(FOLLOW_instrucao_in_comando85); + instrucao4=instrucao(); + + state._fsp--; + + adaptor.addChild(root_0, instrucao4.getTree()); + + } + break; + + } + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "comando" + + + public static class label_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "label" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:1: label : a= ID ':' ; + public final BytecodesParser.label_return label() throws RecognitionException, LabelException { + BytecodesParser.label_return retval = new BytecodesParser.label_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + Token char_literal5=null; + + BytecodesAST a_tree=null; + BytecodesAST char_literal5_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:9: a= ID ':' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,ID,FOLLOW_ID_in_label107); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + char_literal5=(Token)match(input,21,FOLLOW_21_in_label109); + char_literal5_tree = + (BytecodesAST)adaptor.create(char_literal5) + ; + adaptor.addChild(root_0, char_literal5_tree); + + + definirLabel(a); + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "label" + + + public static class instrucao_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "instrucao" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + public final BytecodesParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + BytecodesParser.instrucao_return retval = new BytecodesParser.instrucao_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + Token string_literal13=null; + Token NOVA_LINHA14=null; + BytecodesParser.definicaoClasse_return definicaoClasse6 =null; + + BytecodesParser.manipulacaoObjetos_return manipulacaoObjetos7 =null; + + BytecodesParser.aritmetica_return aritmetica8 =null; + + BytecodesParser.load_return load9 =null; + + BytecodesParser.store_return store10 =null; + + BytecodesParser.desvio_return desvio11 =null; + + BytecodesParser.logica_return logica12 =null; + + + BytecodesAST a_tree=null; + BytecodesAST string_literal13_tree=null; + BytecodesAST NOVA_LINHA14_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + { + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + int alt3=11; + switch ( input.LA(1) ) { + case 16: + case 18: + { + alt3=1; + } + break; + case 28: + case 60: + case 74: + { + alt3=2; + } + break; + case 30: + case 39: + case 52: + case 58: + case 59: + case 62: + case 68: + { + alt3=3; + } + break; + case 23: + case 24: + case 25: + case 26: + case 27: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 53: + case 54: + case 55: + case 56: + case 57: + case 70: + { + alt3=4; + } + break; + case 63: + case 64: + case 65: + case 66: + case 67: + { + alt3=5; + } + break; + case 29: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + { + alt3=6; + } + break; + case 31: + case 61: + case 69: + { + alt3=7; + } + break; + case 71: + { + alt3=8; + } + break; + case 72: + { + alt3=9; + } + break; + case 73: + { + alt3=10; + } + break; + } + + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:13: definicaoClasse + { + pushFollow(FOLLOW_definicaoClasse_in_instrucao119); + definicaoClasse6=definicaoClasse(); + + state._fsp--; + + adaptor.addChild(root_0, definicaoClasse6.getTree()); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:31: manipulacaoObjetos + { + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao123); + manipulacaoObjetos7=manipulacaoObjetos(); + + state._fsp--; + + adaptor.addChild(root_0, manipulacaoObjetos7.getTree()); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:52: aritmetica + { + pushFollow(FOLLOW_aritmetica_in_instrucao127); + aritmetica8=aritmetica(); + + state._fsp--; + + adaptor.addChild(root_0, aritmetica8.getTree()); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:65: load + { + pushFollow(FOLLOW_load_in_instrucao131); + load9=load(); + + state._fsp--; + + adaptor.addChild(root_0, load9.getTree()); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:72: store + { + pushFollow(FOLLOW_store_in_instrucao135); + store10=store(); + + state._fsp--; + + adaptor.addChild(root_0, store10.getTree()); + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:80: desvio + { + pushFollow(FOLLOW_desvio_in_instrucao139); + desvio11=desvio(); + + state._fsp--; + + adaptor.addChild(root_0, desvio11.getTree()); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:89: logica + { + pushFollow(FOLLOW_logica_in_instrucao143); + logica12=logica(); + + state._fsp--; + + adaptor.addChild(root_0, logica12.getTree()); + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:32:21: 'nop' + { + string_literal13=(Token)match(input,71,FOLLOW_71_in_instrucao166); + string_literal13_tree = + (BytecodesAST)adaptor.create(string_literal13) + ; + adaptor.addChild(root_0, string_literal13_tree); + + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:33:17: a= 'pop' + { + a=(Token)match(input,72,FOLLOW_72_in_instrucao188); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:34:17: a= 'pop2' + { + a=(Token)match(input,73,FOLLOW_73_in_instrucao212); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + + } + + + NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao232); + NOVA_LINHA14_tree = + (BytecodesAST)adaptor.create(NOVA_LINHA14) + ; + adaptor.addChild(root_0, NOVA_LINHA14_tree); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "instrucao" + + + public static class definicaoClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "definicaoClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:1: definicaoClasse : ( '.class' ID ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); + public final BytecodesParser.definicaoClasse_return definicaoClasse() throws RecognitionException { + BytecodesParser.definicaoClasse_return retval = new BytecodesParser.definicaoClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal15=null; + Token ID16=null; + Token string_literal18=null; + Token ID19=null; + Token NOVA_LINHA20=null; + Token string_literal23=null; + BytecodesParser.membroClasse_return membroClasse17 =null; + + BytecodesParser.superClasse_return superClasse21 =null; + + BytecodesParser.membroClasse_return membroClasse22 =null; + + BytecodesParser.construtorDefault_return construtorDefault24 =null; + + + BytecodesAST string_literal15_tree=null; + BytecodesAST ID16_tree=null; + BytecodesAST string_literal18_tree=null; + BytecodesAST ID19_tree=null; + BytecodesAST NOVA_LINHA20_tree=null; + BytecodesAST string_literal23_tree=null; + RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); + RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); + RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:17: ( '.class' ID ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) + int alt6=3; + int LA6_0 = input.LA(1); + + if ( (LA6_0==16) ) { + int LA6_1 = input.LA(2); + + if ( (LA6_1==ID) ) { + int LA6_3 = input.LA(3); + + if ( (LA6_3==NOVA_LINHA) ) { + alt6=2; + } + else if ( (LA6_3==17) ) { + alt6=1; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 3, input); + + throw nvae; + + } + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 1, input); + + throw nvae; + + } + } + else if ( (LA6_0==18) ) { + alt6=3; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + + } + switch (alt6) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:19: '.class' ID ( membroClasse )+ + { + string_literal15=(Token)match(input,16,FOLLOW_16_in_definicaoClasse268); + stream_16.add(string_literal15); + + + ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse270); + stream_ID.add(ID16); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:31: ( membroClasse )+ + int cnt4=0; + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==17) ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:31: membroClasse + { + pushFollow(FOLLOW_membroClasse_in_definicaoClasse272); + membroClasse17=membroClasse(); + + state._fsp--; + + stream_membroClasse.add(membroClasse17.getTree()); + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + + + // AST REWRITE + // elements: 16, membroClasse, ID + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 37:46: -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:49: ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_16.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:63: ^( MEMBRO_CLASSE ( membroClasse )+ ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") + , root_2); + + if ( !(stream_membroClasse.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_membroClasse.hasNext() ) { + adaptor.addChild(root_2, stream_membroClasse.nextTree()); + + } + stream_membroClasse.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:19: '.class' ID NOVA_LINHA superClasse ( membroClasse )+ + { + string_literal18=(Token)match(input,16,FOLLOW_16_in_definicaoClasse309); + stream_16.add(string_literal18); + + + ID19=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse311); + stream_ID.add(ID19); + + + NOVA_LINHA20=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse313); + stream_NOVA_LINHA.add(NOVA_LINHA20); + + + pushFollow(FOLLOW_superClasse_in_definicaoClasse315); + superClasse21=superClasse(); + + state._fsp--; + + stream_superClasse.add(superClasse21.getTree()); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:54: ( membroClasse )+ + int cnt5=0; + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==17) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:54: membroClasse + { + pushFollow(FOLLOW_membroClasse_in_definicaoClasse317); + membroClasse22=membroClasse(); + + state._fsp--; + + stream_membroClasse.add(membroClasse22.getTree()); + + } + break; + + default : + if ( cnt5 >= 1 ) break loop5; + EarlyExitException eee = + new EarlyExitException(5, input); + throw eee; + } + cnt5++; + } while (true); + + + // AST REWRITE + // elements: superClasse, ID, membroClasse, 16 + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 39:19: -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:39:22: ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_16.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_1, stream_superClasse.nextTree()); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:39:48: ^( MEMBRO_CLASSE ( membroClasse )+ ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") + , root_2); + + if ( !(stream_membroClasse.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_membroClasse.hasNext() ) { + adaptor.addChild(root_2, stream_membroClasse.nextTree()); + + } + stream_membroClasse.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:40:19: '.method' construtorDefault + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal23=(Token)match(input,18,FOLLOW_18_in_definicaoClasse375); + string_literal23_tree = + (BytecodesAST)adaptor.create(string_literal23) + ; + adaptor.addChild(root_0, string_literal23_tree); + + + pushFollow(FOLLOW_construtorDefault_in_definicaoClasse377); + construtorDefault24=construtorDefault(); + + state._fsp--; + + adaptor.addChild(root_0, construtorDefault24.getTree()); + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "definicaoClasse" + + + public static class superClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "superClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + public final BytecodesParser.superClasse_return superClasse() throws RecognitionException { + BytecodesParser.superClasse_return retval = new BytecodesParser.superClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal25=null; + Token ID26=null; + + BytecodesAST string_literal25_tree=null; + BytecodesAST ID26_tree=null; + RewriteRuleTokenStream stream_19=new RewriteRuleTokenStream(adaptor,"token 19"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:15: '.super' ID + { + string_literal25=(Token)match(input,19,FOLLOW_19_in_superClasse406); + stream_19.add(string_literal25); + + + ID26=(Token)match(input,ID,FOLLOW_ID_in_superClasse408); + stream_ID.add(ID26); + + + // AST REWRITE + // elements: ID + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 43:27: -> ^( EXTENDS ID ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:30: ^( EXTENDS ID ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(EXTENDS, "EXTENDS") + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "superClasse" + + + public static class membroClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "membroClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:1: membroClasse : '.field' ID tipo NOVA_LINHA -> ^( FIELD_DECL ID tipo ) ; + public final BytecodesParser.membroClasse_return membroClasse() throws RecognitionException { + BytecodesParser.membroClasse_return retval = new BytecodesParser.membroClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal27=null; + Token ID28=null; + Token NOVA_LINHA30=null; + BytecodesParser.tipo_return tipo29 =null; + + + BytecodesAST string_literal27_tree=null; + BytecodesAST ID28_tree=null; + BytecodesAST NOVA_LINHA30_tree=null; + RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); + RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:14: ( '.field' ID tipo NOVA_LINHA -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:16: '.field' ID tipo NOVA_LINHA + { + string_literal27=(Token)match(input,17,FOLLOW_17_in_membroClasse425); + stream_17.add(string_literal27); + + + ID28=(Token)match(input,ID,FOLLOW_ID_in_membroClasse427); + stream_ID.add(ID28); + + + pushFollow(FOLLOW_tipo_in_membroClasse429); + tipo29=tipo(); + + state._fsp--; + + stream_tipo.add(tipo29.getTree()); + + NOVA_LINHA30=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_membroClasse431); + stream_NOVA_LINHA.add(NOVA_LINHA30); + + + // AST REWRITE + // elements: tipo, ID + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 45:44: -> ^( FIELD_DECL ID tipo ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:47: ^( FIELD_DECL ID tipo ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(FIELD_DECL, "FIELD_DECL") + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_1, stream_tipo.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "membroClasse" + + + public static class manipulacaoObjetos_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "manipulacaoObjetos" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); + public final BytecodesParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { + BytecodesParser.manipulacaoObjetos_return retval = new BytecodesParser.manipulacaoObjetos_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal31=null; + Token ID32=null; + Token char_literal33=null; + Token ID34=null; + Token string_literal36=null; + Token ID37=null; + Token char_literal38=null; + Token ID39=null; + Token string_literal41=null; + Token ID42=null; + Token char_literal43=null; + Token INIT44=null; + Token string_literal45=null; + Token VOID46=null; + BytecodesParser.tipo_return tipo35 =null; + + BytecodesParser.tipo_return tipo40 =null; + + + BytecodesAST string_literal31_tree=null; + BytecodesAST ID32_tree=null; + BytecodesAST char_literal33_tree=null; + BytecodesAST ID34_tree=null; + BytecodesAST string_literal36_tree=null; + BytecodesAST ID37_tree=null; + BytecodesAST char_literal38_tree=null; + BytecodesAST ID39_tree=null; + BytecodesAST string_literal41_tree=null; + BytecodesAST ID42_tree=null; + BytecodesAST char_literal43_tree=null; + BytecodesAST INIT44_tree=null; + BytecodesAST string_literal45_tree=null; + BytecodesAST VOID46_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) + int alt7=3; + switch ( input.LA(1) ) { + case 28: + { + alt7=1; + } + break; + case 74: + { + alt7=2; + } + break; + case 60: + { + alt7=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + + } + + switch (alt7) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:22: 'getfield' ID '/' ID tipo + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal31=(Token)match(input,28,FOLLOW_28_in_manipulacaoObjetos450); + string_literal31_tree = + (BytecodesAST)adaptor.create(string_literal31) + ; + adaptor.addChild(root_0, string_literal31_tree); + + + ID32=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos452); + ID32_tree = + (BytecodesAST)adaptor.create(ID32) + ; + adaptor.addChild(root_0, ID32_tree); + + + char_literal33=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos454); + char_literal33_tree = + (BytecodesAST)adaptor.create(char_literal33) + ; + adaptor.addChild(root_0, char_literal33_tree); + + + ID34=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos456); + ID34_tree = + (BytecodesAST)adaptor.create(ID34) + ; + adaptor.addChild(root_0, ID34_tree); + + + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos458); + tipo35=tipo(); + + state._fsp--; + + adaptor.addChild(root_0, tipo35.getTree()); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:48:22: 'putfield' ID '/' ID tipo + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal36=(Token)match(input,74,FOLLOW_74_in_manipulacaoObjetos481); + string_literal36_tree = + (BytecodesAST)adaptor.create(string_literal36) + ; + adaptor.addChild(root_0, string_literal36_tree); + + + ID37=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos483); + ID37_tree = + (BytecodesAST)adaptor.create(ID37) + ; + adaptor.addChild(root_0, ID37_tree); + + + char_literal38=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos485); + char_literal38_tree = + (BytecodesAST)adaptor.create(char_literal38) + ; + adaptor.addChild(root_0, char_literal38_tree); + + + ID39=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos487); + ID39_tree = + (BytecodesAST)adaptor.create(ID39) + ; + adaptor.addChild(root_0, ID39_tree); + + + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos489); + tipo40=tipo(); + + state._fsp--; + + adaptor.addChild(root_0, tipo40.getTree()); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:49:22: 'invokespecial' ID '/' INIT '()' VOID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal41=(Token)match(input,60,FOLLOW_60_in_manipulacaoObjetos512); + string_literal41_tree = + (BytecodesAST)adaptor.create(string_literal41) + ; + adaptor.addChild(root_0, string_literal41_tree); + + + ID42=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos514); + ID42_tree = + (BytecodesAST)adaptor.create(ID42) + ; + adaptor.addChild(root_0, ID42_tree); + + + char_literal43=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos516); + char_literal43_tree = + (BytecodesAST)adaptor.create(char_literal43) + ; + adaptor.addChild(root_0, char_literal43_tree); + + + INIT44=(Token)match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos518); + INIT44_tree = + (BytecodesAST)adaptor.create(INIT44) + ; + adaptor.addChild(root_0, INIT44_tree); + + + string_literal45=(Token)match(input,15,FOLLOW_15_in_manipulacaoObjetos520); + string_literal45_tree = + (BytecodesAST)adaptor.create(string_literal45) + ; + adaptor.addChild(root_0, string_literal45_tree); + + + VOID46=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos522); + VOID46_tree = + (BytecodesAST)adaptor.create(VOID46) + ; + adaptor.addChild(root_0, VOID46_tree); + + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "manipulacaoObjetos" + + + public static class construtorDefault_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "construtorDefault" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:1: construtorDefault : INIT '()' VOID ; + public final BytecodesParser.construtorDefault_return construtorDefault() throws RecognitionException { + BytecodesParser.construtorDefault_return retval = new BytecodesParser.construtorDefault_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token INIT47=null; + Token string_literal48=null; + Token VOID49=null; + + BytecodesAST INIT47_tree=null; + BytecodesAST string_literal48_tree=null; + BytecodesAST VOID49_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:19: ( INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:21: INIT '()' VOID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + INIT47=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault570); + INIT47_tree = + (BytecodesAST)adaptor.create(INIT47) + ; + adaptor.addChild(root_0, INIT47_tree); + + + string_literal48=(Token)match(input,15,FOLLOW_15_in_construtorDefault572); + string_literal48_tree = + (BytecodesAST)adaptor.create(string_literal48) + ; + adaptor.addChild(root_0, string_literal48_tree); + + + VOID49=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault574); + VOID49_tree = + (BytecodesAST)adaptor.create(VOID49) + ; + adaptor.addChild(root_0, VOID49_tree); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "construtorDefault" + + + public static class tipo_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "tipo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:1: tipo : ( INT | VOID | 'L' ID ); + public final BytecodesParser.tipo_return tipo() throws RecognitionException { + BytecodesParser.tipo_return retval = new BytecodesParser.tipo_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token INT50=null; + Token VOID51=null; + Token char_literal52=null; + Token ID53=null; + + BytecodesAST INT50_tree=null; + BytecodesAST VOID51_tree=null; + BytecodesAST char_literal52_tree=null; + BytecodesAST ID53_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:6: ( INT | VOID | 'L' ID ) + int alt8=3; + switch ( input.LA(1) ) { + case INT: + { + alt8=1; + } + break; + case VOID: + { + alt8=2; + } + break; + case 22: + { + alt8=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); + + throw nvae; + + } + + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:8: INT + { + root_0 = (BytecodesAST)adaptor.nil(); + + + INT50=(Token)match(input,INT,FOLLOW_INT_in_tipo586); + INT50_tree = + (BytecodesAST)adaptor.create(INT50) + ; + adaptor.addChild(root_0, INT50_tree); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:14: VOID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + VOID51=(Token)match(input,VOID,FOLLOW_VOID_in_tipo590); + VOID51_tree = + (BytecodesAST)adaptor.create(VOID51) + ; + adaptor.addChild(root_0, VOID51_tree); + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:21: 'L' ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + char_literal52=(Token)match(input,22,FOLLOW_22_in_tipo594); + char_literal52_tree = + (BytecodesAST)adaptor.create(char_literal52) + ; + adaptor.addChild(root_0, char_literal52_tree); + + + ID53=(Token)match(input,ID,FOLLOW_ID_in_tipo595); + ID53_tree = + (BytecodesAST)adaptor.create(ID53) + ; + adaptor.addChild(root_0, ID53_tree); + + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "tipo" + + + public static class aritmetica_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "aritmetica" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + public final BytecodesParser.aritmetica_return aritmetica() throws RecognitionException { + BytecodesParser.aritmetica_return retval = new BytecodesParser.aritmetica_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + + BytecodesAST a_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + int alt9=7; + switch ( input.LA(1) ) { + case 30: + { + alt9=1; + } + break; + case 68: + { + alt9=2; + } + break; + case 58: + { + alt9=3; + } + break; + case 39: + { + alt9=4; + } + break; + case 62: + { + alt9=5; + } + break; + case 52: + { + alt9=6; + } + break; + case 59: + { + alt9=7; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + + throw nvae; + + } + + switch (alt9) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:14: a= 'iadd' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,30,FOLLOW_30_in_aritmetica608); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:57:14: a= 'isub' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,68,FOLLOW_68_in_aritmetica629); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:58:14: a= 'imul' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,58,FOLLOW_58_in_aritmetica650); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:59:14: a= 'idiv' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,39,FOLLOW_39_in_aritmetica671); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:60:14: a= 'irem' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,62,FOLLOW_62_in_aritmetica692); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:61:14: a= 'iinc' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,52,FOLLOW_52_in_aritmetica713); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:62:14: a= 'ineg' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,59,FOLLOW_59_in_aritmetica734); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "aritmetica" + + + public static class load_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "load" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:65:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); + public final BytecodesParser.load_return load() throws RecognitionException, LabelException { + BytecodesParser.load_return retval = new BytecodesParser.load_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + Token INTEIRO54=null; + Token INTEIRO55=null; + Token INTEIRO56=null; + + BytecodesAST a_tree=null; + BytecodesAST INTEIRO54_tree=null; + BytecodesAST INTEIRO55_tree=null; + BytecodesAST INTEIRO56_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:65:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt10=18; + switch ( input.LA(1) ) { + case 38: + { + alt10=1; + } + break; + case 32: + { + alt10=2; + } + break; + case 33: + { + alt10=3; + } + break; + case 34: + { + alt10=4; + } + break; + case 35: + { + alt10=5; + } + break; + case 36: + { + alt10=6; + } + break; + case 37: + { + alt10=7; + } + break; + case 54: + { + alt10=8; + } + break; + case 55: + { + alt10=9; + } + break; + case 56: + { + alt10=10; + } + break; + case 57: + { + alt10=11; + } + break; + case 53: + { + alt10=12; + } + break; + case 70: + { + alt10=13; + } + break; + case 23: + { + alt10=14; + } + break; + case 24: + { + alt10=15; + } + break; + case 25: + { + alt10=16; + } + break; + case 26: + { + alt10=17; + } + break; + case 27: + { + alt10=18; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 10, 0, input); + + throw nvae; + + } + + switch (alt10) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:65:8: a= 'iconst_m1' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,38,FOLLOW_38_in_load771); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:66:8: a= 'iconst_0' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,32,FOLLOW_32_in_load785); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:67:8: a= 'iconst_1' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,33,FOLLOW_33_in_load800); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:68:8: a= 'iconst_2' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,34,FOLLOW_34_in_load815); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:69:8: a= 'iconst_3' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,35,FOLLOW_35_in_load830); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:70:8: a= 'iconst_4' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,36,FOLLOW_36_in_load844); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:71:8: a= 'iconst_5' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,37,FOLLOW_37_in_load858); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:72:8: a= 'iload_0' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,54,FOLLOW_54_in_load872); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:73:8: a= 'iload_1' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,55,FOLLOW_55_in_load887); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:74:8: a= 'iload_2' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,56,FOLLOW_56_in_load902); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:75:8: a= 'iload_3' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,57,FOLLOW_57_in_load917); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:76:8: a= 'iload' INTEIRO + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,53,FOLLOW_53_in_load932); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + INTEIRO54=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load934); + INTEIRO54_tree = + (BytecodesAST)adaptor.create(INTEIRO54) + ; + adaptor.addChild(root_0, INTEIRO54_tree); + + + escreverOpcode(a, INTEIRO54); + + } + break; + case 13 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:77:8: a= 'ldc' INTEIRO + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,70,FOLLOW_70_in_load949); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + INTEIRO55=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load951); + INTEIRO55_tree = + (BytecodesAST)adaptor.create(INTEIRO55) + ; + adaptor.addChild(root_0, INTEIRO55_tree); + + + escreverOpcode(a, INTEIRO55); + + } + break; + case 14 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:78:8: a= 'aload' INTEIRO + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,23,FOLLOW_23_in_load966); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + INTEIRO56=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load968); + INTEIRO56_tree = + (BytecodesAST)adaptor.create(INTEIRO56) + ; + adaptor.addChild(root_0, INTEIRO56_tree); + + + } + break; + case 15 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:79:8: a= 'aload_0' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,24,FOLLOW_24_in_load981); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + } + break; + case 16 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:80:8: a= 'aload_1' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,25,FOLLOW_25_in_load994); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + } + break; + case 17 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:81:8: a= 'aload_2' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,26,FOLLOW_26_in_load1007); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + } + break; + case 18 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:82:8: a= 'aload_3' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,27,FOLLOW_27_in_load1020); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "load" + + + public static class store_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "store" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:85:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); + public final BytecodesParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { + BytecodesParser.store_return retval = new BytecodesParser.store_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + Token INTEIRO57=null; + + BytecodesAST a_tree=null; + BytecodesAST INTEIRO57_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:85:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) + int alt11=5; + switch ( input.LA(1) ) { + case 64: + { + alt11=1; + } + break; + case 65: + { + alt11=2; + } + break; + case 66: + { + alt11=3; + } + break; + case 67: + { + alt11=4; + } + break; + case 63: + { + alt11=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 11, 0, input); + + throw nvae; + + } + + switch (alt11) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:85:9: a= 'istore_0' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,64,FOLLOW_64_in_store1043); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:86:9: a= 'istore_1' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,65,FOLLOW_65_in_store1059); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:87:9: a= 'istore_2' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,66,FOLLOW_66_in_store1075); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:88:9: a= 'istore_3' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,67,FOLLOW_67_in_store1091); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:89:9: a= 'istore' INTEIRO + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,63,FOLLOW_63_in_store1107); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + INTEIRO57=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1109); + INTEIRO57_tree = + (BytecodesAST)adaptor.create(INTEIRO57) + ; + adaptor.addChild(root_0, INTEIRO57_tree); + + + verificarAumentoMemoriaGlobal(a, INTEIRO57); + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "store" + + + public static class logica_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "logica" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:92:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + public final BytecodesParser.logica_return logica() throws RecognitionException { + BytecodesParser.logica_return retval = new BytecodesParser.logica_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + + BytecodesAST a_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:92:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt12=3; + switch ( input.LA(1) ) { + case 31: + { + alt12=1; + } + break; + case 61: + { + alt12=2; + } + break; + case 69: + { + alt12=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + + throw nvae; + + } + + switch (alt12) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:92:10: a= 'iand' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,31,FOLLOW_31_in_logica1130); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:93:10: a= 'ior' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,61,FOLLOW_61_in_logica1147); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:94:10: a= 'ixor' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,69,FOLLOW_69_in_logica1164); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "logica" + + + public static class desvio_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "desvio" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:97:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + public final BytecodesParser.desvio_return desvio() throws RecognitionException, LabelException { + BytecodesParser.desvio_return retval = new BytecodesParser.desvio_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + Token b=null; + + BytecodesAST a_tree=null; + BytecodesAST b_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:97:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt13=13; + switch ( input.LA(1) ) { + case 46: + { + alt13=1; + } + break; + case 51: + { + alt13=2; + } + break; + case 50: + { + alt13=3; + } + break; + case 47: + { + alt13=4; + } + break; + case 48: + { + alt13=5; + } + break; + case 49: + { + alt13=6; + } + break; + case 40: + { + alt13=7; + } + break; + case 45: + { + alt13=8; + } + break; + case 44: + { + alt13=9; + } + break; + case 41: + { + alt13=10; + } + break; + case 42: + { + alt13=11; + } + break; + case 43: + { + alt13=12; + } + break; + case 29: + { + alt13=13; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 13, 0, input); + + throw nvae; + + } + + switch (alt13) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:97:10: a= 'ifeq' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,46,FOLLOW_46_in_desvio1186); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1192); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:98:10: a= 'ifne' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,51,FOLLOW_51_in_desvio1209); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1215); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:99:10: a= 'iflt' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,50,FOLLOW_50_in_desvio1232); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1238); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:100:10: a= 'ifge' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,47,FOLLOW_47_in_desvio1255); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1261); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:101:10: a= 'ifgt' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,48,FOLLOW_48_in_desvio1278); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1284); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:102:10: a= 'ifle' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,49,FOLLOW_49_in_desvio1301); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1307); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:103:10: a= 'if_icmpeq' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,40,FOLLOW_40_in_desvio1324); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1330); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:104:10: a= 'if_icmpne' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,45,FOLLOW_45_in_desvio1347); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1353); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:105:10: a= 'if_icmplt' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,44,FOLLOW_44_in_desvio1370); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1376); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:106:10: a= 'if_icmpge' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,41,FOLLOW_41_in_desvio1393); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1399); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:107:10: a= 'if_icmpgt' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,42,FOLLOW_42_in_desvio1416); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1422); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:108:10: a= 'if_icmple' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,43,FOLLOW_43_in_desvio1439); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1445); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + case 13 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:109:10: a= 'goto' b= ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,29,FOLLOW_29_in_desvio1462); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1468); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); + + + escreverOpcode(a, b); + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "desvio" + + // Delegated rules + + + + + public static final BitSet FOLLOW_comando_in_programa59 = new BitSet(new long[]{0xFFFFFFFFFF850842L,0x00000000000007FFL}); + public static final BitSet FOLLOW_label_in_comando79 = new BitSet(new long[]{0xFFFFFFFFFF850800L,0x00000000000007FFL}); + public static final BitSet FOLLOW_instrucao_in_comando81 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando85 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label107 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_label109 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao119 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao123 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao127 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_load_in_instrucao131 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_store_in_instrucao135 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_desvio_in_instrucao139 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_logica_in_instrucao143 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_71_in_instrucao166 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_72_in_instrucao188 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_73_in_instrucao212 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao232 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_16_in_definicaoClasse268 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse270 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse272 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_16_in_definicaoClasse309 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse311 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse313 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse315 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse317 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_18_in_definicaoClasse375 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse377 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_19_in_superClasse406 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_superClasse408 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_membroClasse425 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_membroClasse427 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_membroClasse429 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_membroClasse431 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_manipulacaoObjetos450 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos452 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos454 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos456 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos458 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_manipulacaoObjetos481 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos483 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos485 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos487 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos489 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_manipulacaoObjetos512 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos514 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos516 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos518 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_manipulacaoObjetos520 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos522 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault570 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_construtorDefault572 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_VOID_in_construtorDefault574 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo586 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo590 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_22_in_tipo594 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_tipo595 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_aritmetica608 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_aritmetica629 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_aritmetica650 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_aritmetica671 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_aritmetica692 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_aritmetica713 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_aritmetica734 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load771 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_load785 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load800 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load815 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_load830 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_load844 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load858 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load872 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load887 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load902 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load917 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_load932 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load934 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_load949 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load951 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_load966 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load968 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load981 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load994 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load1007 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load1020 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_store1043 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_store1059 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_store1075 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_store1091 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_store1107 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_store1109 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_logica1130 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_logica1147 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_logica1164 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1186 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1192 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1209 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1215 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1232 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1238 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1255 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1261 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1278 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1284 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1301 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1307 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_desvio1324 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1330 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_desvio1347 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1353 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_desvio1370 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1376 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_desvio1393 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1399 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_desvio1416 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1422 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_desvio1439 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1445 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_desvio1462 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1468 = new BitSet(new long[]{0x0000000000000002L}); + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index fbaff25..4731b0e 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -1,786 +1,786 @@ -package br.ufpb.iged.interpretador.principal; - -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.Scanner; - -import org.antlr.runtime.ANTLRInputStream; -import org.antlr.runtime.CommonTokenStream; - -import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; -import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerLexer; - -public class Interpretador { - - public static final String NOME_ARQUIVO_ENTRADA = "entrada.txt"; - - public static final int TAMANHO_INICIAL_PILHA_OPERANDOS = 100; - - int ip = 0; - - byte[] codigo; - - int tamanhoCodigo; - - Object[] memoriaGlobal; - - Object[] pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA_OPERANDOS]; - - int sp = -1; - - public static void main(String[] args) throws Exception { - - InputStream entrada = new FileInputStream(NOME_ARQUIVO_ENTRADA); - - Interpretador interpretador = new Interpretador(); - if (carregar(interpretador, entrada)) - interpretador.cpu(); - - } - - public static boolean carregar(Interpretador interp, InputStream input) - throws Exception { - - try { - AssemblerLexer assemblerLexer = new AssemblerLexer( - new ANTLRInputStream(input)); - CommonTokenStream tokens = new CommonTokenStream(assemblerLexer); - BytecodeAssembler assembler = new BytecodeAssembler(tokens, - Definicao.instrucoes); - assembler.programa(); - if (assembler.getNumberOfSyntaxErrors() > 0) - return false; - interp.codigo = assembler.obterCodigoMaquina(); - interp.tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); - interp.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; - - } finally { - input.close(); - } - return true; - - } - - protected void cpu() { - - int op1, op2; - - short opcode; - - boolean desvio; - - while (ip < tamanhoCodigo) { - - desvio = false; - - opcode = codigo[ip]; - - if (opcode < 0) - - opcode = recuperarValorOpcode(opcode); - - switch (opcode) { - - // nenhuma operaçăo - - case Definicao.NOP: - ; - break; - - case Definicao.POP: - sp-- ; - break; - - case Definicao.POP2: - sp -= 2 ; - break; - - // operaçőes aritméticas - - case Definicao.INEG: { - - op1 = (Integer) pilhaOperandos[sp]; - - pilhaOperandos[sp] = 0 - op1; - - }; - break; - - case Definicao.IADD: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - pilhaOperandos[sp] = op1 + op2; - - } - ; - break; - - case Definicao.ISUB: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - pilhaOperandos[sp] = op1 - op2; - - } - ; - break; - - case Definicao.IMUL: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - pilhaOperandos[sp] = op1 * op2; - - } - ; - break; - - case Definicao.IDIV: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - pilhaOperandos[sp] = op1 / op2; - - } - ; - break; - - case Definicao.IREM: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - pilhaOperandos[sp] = op1 % op2; - - } - ; - break; - - case Definicao.IINC: { - - op1 = (Integer) pilhaOperandos[sp]; - - pilhaOperandos[sp] = ++op1; - - } - ; - break; - - // operaçőes de empilhamento de constantes - - case Definicao.ICONST0: { - - sp++; - - pilhaOperandos[sp] = 0; - - } - ; - break; - - case Definicao.ICONST1: { - - sp++; - - pilhaOperandos[sp] = 1; - - } - ; - break; - - case Definicao.ICONST2: { - - sp++; - - pilhaOperandos[sp] = 2; - - } - ; - break; - - case Definicao.ICONST3: { - - sp++; - - pilhaOperandos[sp] = 3; - - } - ; - break; - - case Definicao.ICONST4: { - - sp++; - - pilhaOperandos[sp] = 4; - - } - ; - break; - - case Definicao.ICONST5: { - - sp++; - - pilhaOperandos[sp] = 5; - - } - ; - break; - - case Definicao.ICONSTM1: { - - sp++; - - pilhaOperandos[sp] = -1; - - } - ; - break; - - case Definicao.LDC: { - - sp++; - - op1 = obterOperandoInteiro(); - - pilhaOperandos[sp] = op1; - - } - ; - break; - - // operaçőes de load - - case Definicao.ILOAD0: { - - sp++; - - pilhaOperandos[sp] = memoriaGlobal[0]; - - } - ; - break; - - case Definicao.ILOAD1: { - - sp++; - - pilhaOperandos[sp] = memoriaGlobal[1]; - - } - ; - break; - - case Definicao.ILOAD2: { - - sp++; - - pilhaOperandos[sp] = memoriaGlobal[2]; - - } - ; - break; - - case Definicao.ILOAD3: { - - sp++; - - pilhaOperandos[sp] = memoriaGlobal[3]; - - } - ; - break; - - case Definicao.ILOAD: { - - sp++; - - op1 = obterOperandoInteiro(); - - pilhaOperandos[sp] = memoriaGlobal[op1]; - - } - ; - break; - - // operaçőes de store - - case Definicao.ISTORE0: { - - memoriaGlobal[0] = pilhaOperandos[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE1: { - - memoriaGlobal[1] = pilhaOperandos[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE2: { - - memoriaGlobal[2] = pilhaOperandos[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE3: { - - memoriaGlobal[3] = pilhaOperandos[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE: { - - op1 = obterOperandoInteiro(); - - memoriaGlobal[op1] = pilhaOperandos[sp]; - - sp--; - - } - ; - break; - - // operaçőes lógicas - - case Definicao.IAND: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - op1 = op1 & op2; - - sp--; - - } - ; - break; - - case Definicao.IOR: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - op1 = op1 | op2; - - sp--; - - } - ; - break; - - case Definicao.IXOR: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - op1 = op1 ^ op2; - - sp--; - - } - ; - break; - - // operaçőes de desvio condicional - - case Definicao.IFEQ: { - - op1 = (Integer) pilhaOperandos[sp]; - - if (op1 == 0) { - - desviar(); - - desvio = true; - - } else - - pilhaOperandos[sp] = 0; - - } - ; - break; - - case Definicao.IFNE: { - - op1 = (Integer) pilhaOperandos[sp]; - - if (op1 != 0) { - - desviar(); - - desvio = true; - - } else - - pilhaOperandos[sp] = 0; - - } - ; - break; - - case Definicao.IFLT: { - - op1 = (Integer) pilhaOperandos[sp]; - - if (op1 > 0) { - - desviar(); - - desvio = true; - - } else - - pilhaOperandos[sp] = 0; - - } - ; - break; - - case Definicao.IFGE: { - - op1 = (Integer) pilhaOperandos[sp]; - - if (op1 >= 0) { - - desviar(); - - desvio = true; - - } else - - pilhaOperandos[sp] = 0; - - } - ; - break; - - case Definicao.IFGT: { - - op1 = (Integer) pilhaOperandos[sp]; - - if (op1 > 0) { - - desviar(); - - desvio = true; - - } else - - pilhaOperandos[sp] = 0; - - } - ; - break; - - case Definicao.IFLE: { - - op1 = (Integer) pilhaOperandos[sp]; - - if (op1 <= 0) { - - desviar(); - - desvio = true; - - } else - - pilhaOperandos[sp] = 0; - - } - ; - break; - - case Definicao.IF_ICMPEQ: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - if (op1 == op2) { - - desviar(); - - desvio = true; - - } else { - - pilhaOperandos[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPNE: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - if (op1 != op2) { - - desviar(); - - desvio = true; - - } else { - - pilhaOperandos[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPLT: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - if (op1 < op2) { - - desviar(); - - desvio = true; - - } else { - - pilhaOperandos[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPGE: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - if (op1 >= op2) { - - desviar(); - - desvio = true; - - } else { - - pilhaOperandos[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPGT: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - if (op1 > op2) { - - desviar(); - - desvio = true; - - } else { - - pilhaOperandos[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPLE: { - - op1 = (Integer) pilhaOperandos[sp - 1]; - - op2 = (Integer) pilhaOperandos[sp]; - - sp--; - - if (op1 <= op2) { - - desviar(); - - desvio = true; - - } else { - - pilhaOperandos[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - // desvio incondicional - case Definicao.GOTO: { - - op1 = obterOperandoInteiro(); - - ip = op1; - - desvio = true; - - } - ; - break; - - } - - if (!desvio) - - ip++; - - // Para testes - exibirTela(); - - } - - } - - protected void desviar() { - - pilhaOperandos[sp] = 1; - - int op = obterOperandoInteiro(); - - ip = op; - - } - - protected int obterOperandoInteiro() { - - int op = BytecodeAssembler.obterInteiro(codigo, ip + 1); - - ip += 4; - - return op; - - } - - protected short recuperarValorOpcode(short a) { - - return (short) (128 + (128 + a)); - - } - - // Usado somente para testes - protected void exibirTela() { - - int i; - - System.out.println("IP: " + ip); - - System.out.println("SP: " + sp); - - System.out.print("Memória do código: "); - - for (i = 0; i < codigo.length; i++) - - System.out.print(codigo[i] + " "); - - System.out.print("\n"); - - System.out.print("Memória global das variáveis: "); - - for (i = 0; i < memoriaGlobal.length; i++) - - System.out.print(memoriaGlobal[i] + " "); - - System.out.print("\n"); - - System.out.print("Pilha: "); - - for (i = 0; i < pilhaOperandos.length; i++) - - System.out.print(pilhaOperandos[i] + " "); - - System.out.print("\n\n"); - - System.out - .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); - - Scanner in = new Scanner(System.in); - - in.next(); - - } - -} +package br.ufpb.iged.interpretador.principal; + +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.Scanner; + +import org.antlr.runtime.ANTLRInputStream; +import org.antlr.runtime.CommonTokenStream; + +import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; +import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; +import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesLexer; + +public class Interpretador { + + public static final String NOME_ARQUIVO_ENTRADA = "entrada.txt"; + + public static final int TAMANHO_INICIAL_PILHA_OPERANDOS = 100; + + int ip = 0; + + byte[] codigo; + + int tamanhoCodigo; + + Object[] memoriaGlobal; + + Object[] pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA_OPERANDOS]; + + int sp = -1; + + public static void main(String[] args) throws Exception { + + InputStream entrada = new FileInputStream(NOME_ARQUIVO_ENTRADA); + + Interpretador interpretador = new Interpretador(); + if (carregar(interpretador, entrada)) + interpretador.cpu(); + + } + + public static boolean carregar(Interpretador interp, InputStream input) + throws Exception { + + try { + BytecodesLexer assemblerLexer = new BytecodesLexer( + new ANTLRInputStream(input)); + CommonTokenStream tokens = new CommonTokenStream(assemblerLexer); + BytecodeAssembler assembler = new BytecodeAssembler(tokens, + Definicao.instrucoes); + assembler.programa(); + if (assembler.getNumberOfSyntaxErrors() > 0) + return false; + interp.codigo = assembler.obterCodigoMaquina(); + interp.tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); + interp.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; + + } finally { + input.close(); + } + return true; + + } + + protected void cpu() { + + int op1, op2; + + short opcode; + + boolean desvio; + + while (ip < tamanhoCodigo) { + + desvio = false; + + opcode = codigo[ip]; + + if (opcode < 0) + + opcode = recuperarValorOpcode(opcode); + + switch (opcode) { + + // nenhuma operaçăo + + case Definicao.NOP: + ; + break; + + case Definicao.POP: + sp-- ; + break; + + case Definicao.POP2: + sp -= 2 ; + break; + + // operaçőes aritméticas + + case Definicao.INEG: { + + op1 = (Integer) pilhaOperandos[sp]; + + pilhaOperandos[sp] = 0 - op1; + + }; + break; + + case Definicao.IADD: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + pilhaOperandos[sp] = op1 + op2; + + } + ; + break; + + case Definicao.ISUB: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + pilhaOperandos[sp] = op1 - op2; + + } + ; + break; + + case Definicao.IMUL: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + pilhaOperandos[sp] = op1 * op2; + + } + ; + break; + + case Definicao.IDIV: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + pilhaOperandos[sp] = op1 / op2; + + } + ; + break; + + case Definicao.IREM: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + pilhaOperandos[sp] = op1 % op2; + + } + ; + break; + + case Definicao.IINC: { + + op1 = (Integer) pilhaOperandos[sp]; + + pilhaOperandos[sp] = ++op1; + + } + ; + break; + + // operaçőes de empilhamento de constantes + + case Definicao.ICONST0: { + + sp++; + + pilhaOperandos[sp] = 0; + + } + ; + break; + + case Definicao.ICONST1: { + + sp++; + + pilhaOperandos[sp] = 1; + + } + ; + break; + + case Definicao.ICONST2: { + + sp++; + + pilhaOperandos[sp] = 2; + + } + ; + break; + + case Definicao.ICONST3: { + + sp++; + + pilhaOperandos[sp] = 3; + + } + ; + break; + + case Definicao.ICONST4: { + + sp++; + + pilhaOperandos[sp] = 4; + + } + ; + break; + + case Definicao.ICONST5: { + + sp++; + + pilhaOperandos[sp] = 5; + + } + ; + break; + + case Definicao.ICONSTM1: { + + sp++; + + pilhaOperandos[sp] = -1; + + } + ; + break; + + case Definicao.LDC: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilhaOperandos[sp] = op1; + + } + ; + break; + + // operaçőes de load + + case Definicao.ILOAD0: { + + sp++; + + pilhaOperandos[sp] = memoriaGlobal[0]; + + } + ; + break; + + case Definicao.ILOAD1: { + + sp++; + + pilhaOperandos[sp] = memoriaGlobal[1]; + + } + ; + break; + + case Definicao.ILOAD2: { + + sp++; + + pilhaOperandos[sp] = memoriaGlobal[2]; + + } + ; + break; + + case Definicao.ILOAD3: { + + sp++; + + pilhaOperandos[sp] = memoriaGlobal[3]; + + } + ; + break; + + case Definicao.ILOAD: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilhaOperandos[sp] = memoriaGlobal[op1]; + + } + ; + break; + + // operaçőes de store + + case Definicao.ISTORE0: { + + memoriaGlobal[0] = pilhaOperandos[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE1: { + + memoriaGlobal[1] = pilhaOperandos[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE2: { + + memoriaGlobal[2] = pilhaOperandos[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE3: { + + memoriaGlobal[3] = pilhaOperandos[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE: { + + op1 = obterOperandoInteiro(); + + memoriaGlobal[op1] = pilhaOperandos[sp]; + + sp--; + + } + ; + break; + + // operaçőes lógicas + + case Definicao.IAND: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + op1 = op1 & op2; + + sp--; + + } + ; + break; + + case Definicao.IOR: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + op1 = op1 | op2; + + sp--; + + } + ; + break; + + case Definicao.IXOR: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + op1 = op1 ^ op2; + + sp--; + + } + ; + break; + + // operaçőes de desvio condicional + + case Definicao.IFEQ: { + + op1 = (Integer) pilhaOperandos[sp]; + + if (op1 == 0) { + + desviar(); + + desvio = true; + + } else + + pilhaOperandos[sp] = 0; + + } + ; + break; + + case Definicao.IFNE: { + + op1 = (Integer) pilhaOperandos[sp]; + + if (op1 != 0) { + + desviar(); + + desvio = true; + + } else + + pilhaOperandos[sp] = 0; + + } + ; + break; + + case Definicao.IFLT: { + + op1 = (Integer) pilhaOperandos[sp]; + + if (op1 > 0) { + + desviar(); + + desvio = true; + + } else + + pilhaOperandos[sp] = 0; + + } + ; + break; + + case Definicao.IFGE: { + + op1 = (Integer) pilhaOperandos[sp]; + + if (op1 >= 0) { + + desviar(); + + desvio = true; + + } else + + pilhaOperandos[sp] = 0; + + } + ; + break; + + case Definicao.IFGT: { + + op1 = (Integer) pilhaOperandos[sp]; + + if (op1 > 0) { + + desviar(); + + desvio = true; + + } else + + pilhaOperandos[sp] = 0; + + } + ; + break; + + case Definicao.IFLE: { + + op1 = (Integer) pilhaOperandos[sp]; + + if (op1 <= 0) { + + desviar(); + + desvio = true; + + } else + + pilhaOperandos[sp] = 0; + + } + ; + break; + + case Definicao.IF_ICMPEQ: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + if (op1 == op2) { + + desviar(); + + desvio = true; + + } else { + + pilhaOperandos[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPNE: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + if (op1 != op2) { + + desviar(); + + desvio = true; + + } else { + + pilhaOperandos[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPLT: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + if (op1 < op2) { + + desviar(); + + desvio = true; + + } else { + + pilhaOperandos[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPGE: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + if (op1 >= op2) { + + desviar(); + + desvio = true; + + } else { + + pilhaOperandos[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPGT: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + if (op1 > op2) { + + desviar(); + + desvio = true; + + } else { + + pilhaOperandos[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPLE: { + + op1 = (Integer) pilhaOperandos[sp - 1]; + + op2 = (Integer) pilhaOperandos[sp]; + + sp--; + + if (op1 <= op2) { + + desviar(); + + desvio = true; + + } else { + + pilhaOperandos[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + // desvio incondicional + case Definicao.GOTO: { + + op1 = obterOperandoInteiro(); + + ip = op1; + + desvio = true; + + } + ; + break; + + } + + if (!desvio) + + ip++; + + // Para testes + exibirTela(); + + } + + } + + protected void desviar() { + + pilhaOperandos[sp] = 1; + + int op = obterOperandoInteiro(); + + ip = op; + + } + + protected int obterOperandoInteiro() { + + int op = BytecodeAssembler.obterInteiro(codigo, ip + 1); + + ip += 4; + + return op; + + } + + protected short recuperarValorOpcode(short a) { + + return (short) (128 + (128 + a)); + + } + + // Usado somente para testes + protected void exibirTela() { + + int i; + + System.out.println("IP: " + ip); + + System.out.println("SP: " + sp); + + System.out.print("Memória do código: "); + + for (i = 0; i < codigo.length; i++) + + System.out.print(codigo[i] + " "); + + System.out.print("\n"); + + System.out.print("Memória global das variáveis: "); + + for (i = 0; i < memoriaGlobal.length; i++) + + System.out.print(memoriaGlobal[i] + " "); + + System.out.print("\n"); + + System.out.print("Pilha: "); + + for (i = 0; i < pilhaOperandos.length; i++) + + System.out.print(pilhaOperandos[i] + " "); + + System.out.print("\n\n"); + + System.out + .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); + + Scanner in = new Scanner(System.in); + + in.next(); + + } + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/CimboloAST.java b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java similarity index 76% rename from src/br/ufpb/iged/interpretador/symboltable/classes/CimboloAST.java rename to src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java index 26ee69d..7ca5e8e 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/CimboloAST.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java @@ -3,13 +3,13 @@ import org.antlr.runtime.tree.CommonTree; import org.antlr.runtime.Token; -public class CimboloAST extends CommonTree { +public class BytecodesAST extends CommonTree { public Escopo scope; // set by Def.g; ID lives in which scope? public Simbolo symbol; // set by Ref.g; point at def in symbol table - public CimboloAST(Token t) { + public BytecodesAST(Token t) { super(t); } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.java index bede4a4..327024b 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.java @@ -10,4 +10,5 @@ public String obterNomeEscopo() { return "local"; } + } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java index 23c9695..7b6f893 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java @@ -8,7 +8,7 @@ public class Simbolo { Escopo escopo; - private CimboloAST def; + private BytecodesAST def; public Simbolo(String nome) { this.nome = nome; diff --git a/src/br/ufpb/iged/interpretador/testes/Test.java b/src/br/ufpb/iged/interpretador/testes/Test.java index ac4a553..7014126 100755 --- a/src/br/ufpb/iged/interpretador/testes/Test.java +++ b/src/br/ufpb/iged/interpretador/testes/Test.java @@ -1,32 +1,32 @@ -package br.ufpb.iged.interpretador.testes; - -import org.antlr.runtime.*; - -import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; -import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerLexer; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; - -public class Test { - - public static void main(String[] args) throws Exception { - - CharStream entrada = new ANTLRFileStream("entrada.txt"); - - AssemblerLexer lexer = new AssemblerLexer(entrada); - - CommonTokenStream tokens = new CommonTokenStream(lexer); - - AssemblerParser parser = new BytecodeAssembler(tokens, Definicao.instrucoes); - parser.programa(); - - for (int i = 0; i < BytecodeAssembler.codigo.length ; i++) { - - System.out.print(BytecodeAssembler.codigo[i] + " "); - - } - - - } - -} +package br.ufpb.iged.interpretador.testes; + +import org.antlr.runtime.*; + +import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; +import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; +import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesLexer; +import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesParser; + +public class Test { + + public static void main(String[] args) throws Exception { + + CharStream entrada = new ANTLRFileStream("entrada.txt"); + + BytecodesLexer lexer = new BytecodesLexer(entrada); + + CommonTokenStream tokens = new CommonTokenStream(lexer); + + BytecodesParser parser = new BytecodeAssembler(tokens, Definicao.instrucoes); + parser.programa(); + + for (int i = 0; i < BytecodeAssembler.codigo.length ; i++) { + + System.out.print(BytecodeAssembler.codigo[i] + " "); + + } + + + } + +} From 4091ec02d5d752ff68cec4e94c1a67532f0e2059 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 17 Jun 2012 00:21:11 -0300 Subject: [PATCH 16/79] commit --- build.xml | 73 +++- .../gramaticas/Bytecodes.g | 0 .../ufpb/iged/interpretador/gramaticas/Def.g | 64 +++ .../interpretador/gramaticas}/Intermediario.g | 0 .../ufpb/iged/interpretador/gramaticas/Ref.g | 56 +++ .../symboltable/classes/BytecodesAST.java | 4 +- .../symboltable/classes/Simbolo.java | 6 +- .../symboltable/classes/SimboloClasse.java | 2 +- .../symboltable/classes/TabelaSimbolos.java | 15 + .../interpretador/symboltable/parser/Def.java | 362 +++++++++++++++++ .../symboltable/parser/Def.tokens | 5 + .../interpretador/symboltable/parser/Ref.java | 369 ++++++++++++++++++ .../symboltable/parser/Ref.tokens | 8 + .../intermediario/gramatica/Intermediario.g | 36 -- 14 files changed, 943 insertions(+), 57 deletions(-) rename src/br/ufpb/iged/interpretador/{bytecodeassembler => }/gramaticas/Bytecodes.g (100%) create mode 100644 src/br/ufpb/iged/interpretador/gramaticas/Def.g rename {bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica => src/br/ufpb/iged/interpretador/gramaticas}/Intermediario.g (100%) create mode 100644 src/br/ufpb/iged/interpretador/gramaticas/Ref.g create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Def.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens delete mode 100644 src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g diff --git a/build.xml b/build.xml index 37b015f..c8bd00c 100755 --- a/build.xml +++ b/build.xml @@ -1,35 +1,78 @@ - - - + - + - + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Bytecodes.g b/src/br/ufpb/iged/interpretador/gramaticas/Bytecodes.g similarity index 100% rename from src/br/ufpb/iged/interpretador/bytecodeassembler/gramaticas/Bytecodes.g rename to src/br/ufpb/iged/interpretador/gramaticas/Bytecodes.g diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g new file mode 100644 index 0000000..1b6c423 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -0,0 +1,64 @@ + +tree grammar Def; + +options { + //tokenVocab=Bytecodes; + ASTLabelType=BytecodesAST; + filter=true; +} + +@members { + TabelaSimbolos tabelaSimbolos; + Escopo escopoAtual; + public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + escopoAtual = tabelaSimbolos.global; + } +} + +topdown : entraNaClasse + | declaracaoVariavel + ; + +bottomup : saiDaClasse + ; + +// START: class +entraNaClasse + : ^('.class' nome=ID (^(EXTENDS sup=ID))? .) + { // def class but leave superclass blank until ref phase + System.out.println("line "+$nome.getLine()+ + ": def class "+$nome.text); + // record scope in AST for next pass + if ( $sup!=null ) + $sup.escopo = escopoAtual; + SimboloClasse classe = new SimboloClasse($nome.text,escopoAtual,null); + classe.def = $nome; // point from symbol table into AST + $nome.simbolo = classe; // point from AST into symbol table + escopoAtual.definir(classe); // def class in current scope + escopoAtual = classe; // set current scope to class scope + } + ; +// END: class + + +declaracaoVariavel // global, parameter, or local variable + : ^((FIELD_DECL) var=. ID .?) + { + System.out.println("line "+$ID.getLine()+": def "+$ID.text); + $var.escopo = escopoAtual; + SimboloVariavel variavel = new SimboloVariavel($ID.text,null); + variavel.def = $ID; // track AST location of def's ID + $ID.simbolo = variavel; // track in AST + escopoAtual.definir(variavel); + } + ; + +saiDaClasse + : '.class' + { + System.out.println("members: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g b/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g similarity index 100% rename from bin/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g rename to src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g new file mode 100644 index 0000000..11e0cc1 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -0,0 +1,56 @@ +tree grammar Ref; + +options { + //tokenVocab = Bytecodes; + ASTLabelType = BytecodesAST; + filter = true; +} + +@members { + TabelaSimbolos tabelaSimbolos; + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + } + +} + +topdown + : entraNaClasse + | declaracaoVariavel + ; + +entraNaClasse + : ^('.class' nome=ID (^(EXTENDS sup=ID))? ^(MEMBRO_CLASSE .*)) + { + if ( $sup!=null ) { + // look up superclass (if any) + $sup.simbolo = $sup.escopo.resolver($sup.text); + ((SimboloClasse)$nome.simbolo).superClasse = + (SimboloClasse)$sup.simbolo; // set superclass + System.out.println("line "+$nome.getLine()+": set "+$nome.text+ + " super to "+((SimboloClasse)$nome.simbolo).superClasse.nome); + } + else { + System.out.println("line "+$nome.getLine()+": set "+$nome.text); + } + } + ; + +declaracaoVariavel // global, parameter, or local variable + : ^((FIELD_DECL) tipo ID .?) + { + $ID.simbolo.tipo = $tipo.tsym; // set return type of variable + System.out.println("line "+$ID.getLine()+": set var type "+$ID.simbolo); + } + ; + +tipo returns [Tipo tsym] +@init { + // get scope from AST; use to resolve type name and save it in AST + $start.simbolo = $start.escopo.resolver($start.getText()); + $tsym = (Tipo)$start.simbolo; // return Type from this rule +} + : 'int' + | ID // struct name + ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java index 7ca5e8e..36e3208 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java @@ -5,9 +5,9 @@ public class BytecodesAST extends CommonTree { - public Escopo scope; // set by Def.g; ID lives in which scope? + public Escopo escopo; // set by Def.g; ID lives in which scope? - public Simbolo symbol; // set by Ref.g; point at def in symbol table + public Simbolo simbolo; // set by Ref.g; point at def in symbol table public BytecodesAST(Token t) { super(t); diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java index 7b6f893..9275152 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java @@ -2,13 +2,13 @@ public class Simbolo { - String nome; + public String nome; - private Tipo tipo; + public Tipo tipo; Escopo escopo; - private BytecodesAST def; + public BytecodesAST def; public Simbolo(String nome) { this.nome = nome; diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java index eb8194c..ddc8056 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -6,7 +6,7 @@ public class SimboloClasse extends SimboloComEscopo implements Escopo, Tipo { /** This is the superclass not escopoEnvolvente field. We still record * the enclosing Escopo so we can push in and pop out of class defs. */ - SimboloClasse superClasse; + public SimboloClasse superClasse; /** List of all fields and methods */ public Map membros=new LinkedHashMap(); diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.java b/src/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.java new file mode 100644 index 0000000..2026a56 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.java @@ -0,0 +1,15 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +public class TabelaSimbolos { + + public EscopoGlobal global = new EscopoGlobal(); + + public TabelaSimbolos() { + + global.definir(new SimboloTipoPrimitvo("int")); + + } + + + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java new file mode 100644 index 0000000..3457022 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -0,0 +1,362 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-17 00:17:36 + +package br.ufpb.iged.interpretador.symboltable.parser; + +import org.antlr.runtime.*; +import org.antlr.runtime.tree.*; + +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +import br.ufpb.iged.interpretador.symboltable.classes.Escopo; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; +import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; + +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public class Def extends TreeFilter { + public static final String[] tokenNames = new String[] { + "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "'.class'" + }; + + public static final int EOF=-1; + public static final int T__7=7; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + + // delegates + public TreeFilter[] getDelegates() { + return new TreeFilter[] {}; + } + + // delegators + + + public Def(TreeNodeStream input) { + this(input, new RecognizerSharedState()); + } + public Def(TreeNodeStream input, RecognizerSharedState state) { + super(input, state); + } + + public String[] getTokenNames() { return Def.tokenNames; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g"; } + + + TabelaSimbolos tabelaSimbolos; + Escopo escopoAtual; + public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + escopoAtual = tabelaSimbolos.global; + } + + + + // $ANTLR start "topdown" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:1: topdown : ( entraNaClasse | declaracaoVariavel ); + public final void topdown() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:9: ( entraNaClasse | declaracaoVariavel ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==7) ) { + alt1=1; + } + else if ( (LA1_0==FIELD_DECL) ) { + alt1=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + + } + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:11: entraNaClasse + { + pushFollow(FOLLOW_entraNaClasse_in_topdown43); + entraNaClasse(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:21:11: declaracaoVariavel + { + pushFollow(FOLLOW_declaracaoVariavel_in_topdown55); + declaracaoVariavel(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "topdown" + + + + // $ANTLR start "bottomup" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:1: bottomup : saiDaClasse ; + public final void bottomup() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:10: ( saiDaClasse ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:12: saiDaClasse + { + pushFollow(FOLLOW_saiDaClasse_in_bottomup80); + saiDaClasse(); + + state._fsp--; + if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "bottomup" + + + + // $ANTLR start "entraNaClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + public final void entraNaClasse() throws RecognitionException { + BytecodesAST nome=null; + BytecodesAST sup=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + { + match(input,7,FOLLOW_7_in_entraNaClasse115); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse119); if (state.failed) return ; + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:28: ( ^( EXTENDS sup= ID ) )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==EXTENDS) ) { + int LA2_1 = input.LA(2); + + if ( (LA2_1==DOWN) ) { + int LA2_3 = input.LA(3); + + if ( (LA2_3==ID) ) { + int LA2_4 = input.LA(4); + + if ( (LA2_4==UP) ) { + int LA2_5 = input.LA(5); + + if ( ((LA2_5 >= EXTENDS && LA2_5 <= 7)) ) { + alt2=1; + } + } + } + } + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:29: ^( EXTENDS sup= ID ) + { + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse123); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse127); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + } + break; + + } + + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { // def class but leave superclass blank until ref phase + System.out.println("line "+nome.getLine()+ + ": def class "+(nome!=null?nome.getText():null)); + // record scope in AST for next pass + if ( sup!=null ) + sup.escopo = escopoAtual; + SimboloClasse classe = new SimboloClasse((nome!=null?nome.getText():null),escopoAtual,null); + classe.def = nome; // point from symbol table into AST + nome.simbolo = classe; // point from AST into symbol table + escopoAtual.definir(classe); // def class in current scope + escopoAtual = classe; // set current scope to class scope + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "entraNaClasse" + + + + // $ANTLR start "declaracaoVariavel" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:1: declaracaoVariavel : ^( ( FIELD_DECL ) var= . ID ( . )? ) ; + public final void declaracaoVariavel() throws RecognitionException { + BytecodesAST ID1=null; + BytecodesAST var=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:5: ( ^( ( FIELD_DECL ) var= . ID ( . )? ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:9: ^( ( FIELD_DECL ) var= . ID ( . )? ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:11: ( FIELD_DECL ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:12: FIELD_DECL + { + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel167); if (state.failed) return ; + + } + + + match(input, Token.DOWN, null); if (state.failed) return ; + var=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel174); if (state.failed) return ; + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:33: ( . )? + int alt3=2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0 >= EXTENDS && LA3_0 <= 7)) ) { + alt3=1; + } + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:33: . + { + matchAny(input); if (state.failed) return ; + + } + break; + + } + + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("line "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); + var.escopo = escopoAtual; + SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),null); + variavel.def = ID1; // track AST location of def's ID + ID1.simbolo = variavel; // track in AST + escopoAtual.definir(variavel); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "declaracaoVariavel" + + + + // $ANTLR start "saiDaClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:58:1: saiDaClasse : '.class' ; + public final void saiDaClasse() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:59:5: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:59:9: '.class' + { + match(input,7,FOLLOW_7_in_saiDaClasse207); if (state.failed) return ; + + if ( state.backtracking==1 ) { + System.out.println("members: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "saiDaClasse" + + // Delegated rules + + + + + public static final BitSet FOLLOW_entraNaClasse_in_topdown43 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown55 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup80 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_7_in_entraNaClasse115 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse119 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse123 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse127 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel167 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel174 = new BitSet(new long[]{0x00000000000000F8L}); + public static final BitSet FOLLOW_7_in_saiDaClasse207 = new BitSet(new long[]{0x0000000000000002L}); + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens new file mode 100644 index 0000000..17b37fa --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens @@ -0,0 +1,5 @@ +T__7=7 +EXTENDS=4 +FIELD_DECL=5 +ID=6 +'.class'=7 diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java new file mode 100644 index 0000000..e37e3dd --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java @@ -0,0 +1,369 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-06-17 00:17:37 + +package br.ufpb.iged.interpretador.symboltable.parser; + +import org.antlr.runtime.*; +import org.antlr.runtime.tree.*; + +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +import br.ufpb.iged.interpretador.symboltable.classes.Tipo; + +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public class Ref extends TreeFilter { + public static final String[] tokenNames = new String[] { + "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "MEMBRO_CLASSE", "'.class'", "'int'" + }; + + public static final int EOF=-1; + public static final int T__8=8; + public static final int T__9=9; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int MEMBRO_CLASSE=7; + + // delegates + public TreeFilter[] getDelegates() { + return new TreeFilter[] {}; + } + + // delegators + + + public Ref(TreeNodeStream input) { + this(input, new RecognizerSharedState()); + } + public Ref(TreeNodeStream input, RecognizerSharedState state) { + super(input, state); + } + + public String[] getTokenNames() { return Ref.tokenNames; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g"; } + + + TabelaSimbolos tabelaSimbolos; + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + } + + + + + // $ANTLR start "topdown" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:18:1: topdown : ( entraNaClasse | declaracaoVariavel ); + public final void topdown() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:19:5: ( entraNaClasse | declaracaoVariavel ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==8) ) { + alt1=1; + } + else if ( (LA1_0==FIELD_DECL) ) { + alt1=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + + } + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:19:9: entraNaClasse + { + pushFollow(FOLLOW_entraNaClasse_in_topdown50); + entraNaClasse(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:20:9: declaracaoVariavel + { + pushFollow(FOLLOW_declaracaoVariavel_in_topdown60); + declaracaoVariavel(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "topdown" + + + + // $ANTLR start "entraNaClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:23:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE ( . )* ) ) ; + public final void entraNaClasse() throws RecognitionException { + BytecodesAST nome=null; + BytecodesAST sup=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE ( . )* ) ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE ( . )* ) ) + { + match(input,8,FOLLOW_8_in_entraNaClasse80); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse84); if (state.failed) return ; + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:28: ( ^( EXTENDS sup= ID ) )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==EXTENDS) ) { + alt2=1; + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:29: ^( EXTENDS sup= ID ) + { + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse88); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse92); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + } + break; + + } + + + match(input,MEMBRO_CLASSE,FOLLOW_MEMBRO_CLASSE_in_entraNaClasse98); if (state.failed) return ; + + if ( input.LA(1)==Token.DOWN ) { + match(input, Token.DOWN, null); if (state.failed) return ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:65: ( . )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0 >= EXTENDS && LA3_0 <= 9)) ) { + alt3=1; + } + else if ( (LA3_0==UP) ) { + alt3=2; + } + + + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:65: . + { + matchAny(input); if (state.failed) return ; + + } + break; + + default : + break loop3; + } + } while (true); + + + match(input, Token.UP, null); if (state.failed) return ; + } + + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + if ( sup!=null ) { + // look up superclass (if any) + sup.simbolo = sup.escopo.resolver((sup!=null?sup.getText():null)); + ((SimboloClasse)nome.simbolo).superClasse = + (SimboloClasse)sup.simbolo; // set superclass + System.out.println("line "+nome.getLine()+": set "+(nome!=null?nome.getText():null)+ + " super to "+((SimboloClasse)nome.simbolo).superClasse.nome); + } + else { + System.out.println("line "+nome.getLine()+": set "+(nome!=null?nome.getText():null)); + } + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "entraNaClasse" + + + + // $ANTLR start "declaracaoVariavel" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:1: declaracaoVariavel : ^( ( FIELD_DECL ) tipo ID ( . )? ) ; + public final void declaracaoVariavel() throws RecognitionException { + BytecodesAST ID1=null; + Ref.tipo_return tipo2 =null; + + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:5: ( ^( ( FIELD_DECL ) tipo ID ( . )? ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:9: ^( ( FIELD_DECL ) tipo ID ( . )? ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:11: ( FIELD_DECL ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:12: FIELD_DECL + { + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel139); if (state.failed) return ; + + } + + + match(input, Token.DOWN, null); if (state.failed) return ; + pushFollow(FOLLOW_tipo_in_declaracaoVariavel142); + tipo2=tipo(); + + state._fsp--; + if (state.failed) return ; + + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel144); if (state.failed) return ; + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:32: ( . )? + int alt4=2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0 >= EXTENDS && LA4_0 <= 9)) ) { + alt4=1; + } + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:32: . + { + matchAny(input); if (state.failed) return ; + + } + break; + + } + + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + ID1.simbolo.tipo = (tipo2!=null?tipo2.tsym:null); // set return type of variable + System.out.println("line "+ID1.getLine()+": set var type "+ID1.simbolo); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "declaracaoVariavel" + + + public static class tipo_return extends TreeRuleReturnScope { + public Tipo tsym; + }; + + + // $ANTLR start "tipo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:48:1: tipo returns [Tipo tsym] : ( 'int' | ID ); + public final Ref.tipo_return tipo() throws RecognitionException { + Ref.tipo_return retval = new Ref.tipo_return(); + retval.start = input.LT(1); + + + + // get scope from AST; use to resolve type name and save it in AST + ((BytecodesAST)retval.start).simbolo = ((BytecodesAST)retval.start).escopo.resolver(((BytecodesAST)retval.start).getText()); + retval.tsym = (Tipo)((BytecodesAST)retval.start).simbolo; // return Type from this rule + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:54:5: ( 'int' | ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g: + { + if ( input.LA(1)==ID||input.LA(1)==9 ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "tipo" + + // Delegated rules + + + + + public static final BitSet FOLLOW_entraNaClasse_in_topdown50 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown60 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_8_in_entraNaClasse80 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse84 = new BitSet(new long[]{0x0000000000000090L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse88 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse92 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_MEMBRO_CLASSE_in_entraNaClasse98 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel139 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_tipo_in_declaracaoVariavel142 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel144 = new BitSet(new long[]{0x00000000000003F8L}); + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens new file mode 100644 index 0000000..217b780 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens @@ -0,0 +1,8 @@ +T__8=8 +T__9=9 +EXTENDS=4 +FIELD_DECL=5 +ID=6 +MEMBRO_CLASSE=7 +'.class'=8 +'int'=9 diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g b/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g deleted file mode 100644 index c0b37a0..0000000 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/gramatica/Intermediario.g +++ /dev/null @@ -1,36 +0,0 @@ -grammar Intermediario; - -@members { - - protected void adicionarVariavel(Token op); - protected void traduzirLoad(Token opc, Token op) throws IOException; - protected void traduzirStore(Token opc, Token op) throws IOException; - protected void traduzirArimetica(Token opc) throws IOException; - -} - -programa : instrucao*; - -instrucao : (create | load | store | aritmetica); - -create : 'CREATE_INT' a = ID {adicionarVariavel($a);} - | 'DELETE_INT' a = ID - ; - -load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} - | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} - ; - -store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; - -aritmetica : a = 'ADD' {traduzirArimetica($a);} - | a = 'SUB' {traduzirArimetica($a);} - | a = 'MULT' {traduzirArimetica($a);} - | a = 'DIV' {traduzirArimetica($a);} - ; - -INT : '-'? '0'..'9'+ ; - -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; - -WS : (' ' | '\t' | '\r' | '\n') {skip();} ; From 8134c0e23b38d8fb88b9534e3e0e3734fa9e4050 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Thu, 21 Jun 2012 00:58:25 -0300 Subject: [PATCH 17/79] commit --- .../asm/BytecodeAssembler.class | Bin 6162 -> 6162 bytes .../bytecodeassembler/asm/Definicao.class | Bin 3571 -> 3553 bytes .../principal/Interpretador.class | Bin 8798 -> 11494 bytes .../ufpb/iged/interpretador/testes/Test.class | Bin 2403 -> 2197 bytes build.xml | 22 +- .../asm/BytecodeAssembler.java | 5 +- .../bytecodeassembler/asm/Definicao.java | 12 +- .../bytecodeassembler/parser/Assembler.tokens | 120 + ...ytecodesLexer.java => AssemblerLexer.java} | 1229 +++---- .../parser/AssemblerParser.java | 1616 +++++++++ .../bytecodeassembler/parser/Bytecodes.tokens | 131 - .../parser/BytecodesParser.java | 3211 ----------------- .../gramaticas/{Bytecodes.g => Assembler.g} | 27 +- .../iged/interpretador/gramaticas/Classe.g | 36 + .../ufpb/iged/interpretador/gramaticas/Def.g | 21 +- .../principal/Interpretador.java | 370 +- .../classes/BytecodesErrorNode.java | 13 + .../symboltable/classes/EscopoGlobal.java | 15 + .../symboltable/parser/Classe.tokens | 20 + .../symboltable/parser/ClasseLexer.java | 574 +++ .../symboltable/parser/ClasseParser.java | 840 +++++ .../interpretador/symboltable/parser/Def.java | 123 +- .../interpretador/symboltable/parser/Ref.java | 369 -- .../symboltable/parser/Ref.tokens | 8 - .../ufpb/iged/interpretador/testes/Test.java | 8 +- 25 files changed, 4069 insertions(+), 4701 deletions(-) create mode 100644 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens rename src/br/ufpb/iged/interpretador/bytecodeassembler/parser/{BytecodesLexer.java => AssemblerLexer.java} (62%) create mode 100644 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java delete mode 100644 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Bytecodes.tokens delete mode 100644 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesParser.java rename src/br/ufpb/iged/interpretador/gramaticas/{Bytecodes.g => Assembler.g} (79%) create mode 100644 src/br/ufpb/iged/interpretador/gramaticas/Classe.g create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Classe.tokens create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/ClasseLexer.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/ClasseParser.java delete mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java delete mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index fd4658babddb6d75961db332eaf082901ef4a909..0c7bb41eaeff49acccc0783f0ba1314073781ef2 100644 GIT binary patch delta 483 zcmW-dOGs2<7>1t{9&1WRk2B|-rYuM^2gI6+No)|Y$fzh$7ZD{^GDMMd8K~$&p+zJS zlV7Dsxrm5@NNj}KL>Hok-FB^J!=SF-nP3Nq|SF-cqVbutsYGD@d`DG<9sIo^I_2XecyC z8=cN|EM&c&ZPcSQt7)QrtJ z*-L?a_OjwxqK7EGvOgq%KIvzrc|=-A?PBGq*Duc#_?!}0PR?hn&N~*lpb(c>%w-$( zdfXDA)c$#y#2^c}Muh7m<=MoLxNeCfZ+ohy{5uMMPwXSCVvG&k7wNc#v8&||#qfwK zu~qZbp2PEb&^MH~PA_s=kxTdwG0N-j6mL&->FX;ghybJYg+&S delta 483 zcmW-dOGs5=6otPN9rKn~@9}!h>GT*RS(ik)J+#!!u)0ZzSV9DuNNPkxNe?QK2$85L zGB=hL3KE5buq6g6+d(0Z;pg}ZJRTO_Tfo~`U*8~fPKK~){>q?-)qY2cEWt2Ak9j5$ZT*Zz7nQ6CHFC&pz`Tw$~3)^da0+_a{`Dc=-&NZxO=in~g2pB;=?nCy>_$-@J! z<)Pw_+jz3ipCFf~(oahNOj)z)IBj)B_oC-wUTAGEg}zdk*P8K$UA(nlMFajjmM|ms zJ;i*WoR8YZC%faHb3R)^P~&{j>05iS*7<5)=-Wt;a=$6fcbf?^&JSU=?wsm*YY8*X S&;ObyVaok2?2pZcmHz||REOM$MzM#DKoF4U@9ECi!AxXo~WM-PC6=j)H ziW`bc+}O7&?pi8Dso=iV9rs5cefG@9x*zFIyA~p@=O-}$KZQY5>obvMLCr$K z$$Rclt+#TE!iWVmi#IE54T)+GhIFgK_K?;n>DRp*$j9tB%1JoP(Y2nG-H2Qq#*}s$G+z)9Hy&Eff|lda&iUQ)p3)C zhBqmkG^sLNR(Q#zf-|CU%A{(sqVTFoZn32Bx=A^g&V7>xJ6=`cZKJk&)j(m=M90l5 zOqtYQ98@^N$)(@W;8dgzTKcwWY1GoWLrbfc-ayYbC-~G|I;LA2*qzDhB#VbgED+Jc zB6vhElJP0#$8?9_WsHyOPQm$%`}AVL%Nd`dX}8NX&EgroPU>mKXZ0O|t&Gp>I|Z*` zd{M7&AfU^kuVg-;H%NH_;~~9Ku#NGE?h|ZhJf;hRS23Q@n*|p#PUy1WBF2}sFWABO zimnNEP9vbZ^4kBS7jyZIG)AR`D@a-f&)!)}IruGJZ)1T@n=N>ln8uu*W`)tbGPi{J=9nZw0+_@@}Auju!do$_9R%U4+oQ ege3Wt)NHLcXQ=RDm delta 1632 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 literal 8798 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 diff --git a/bin/br/ufpb/iged/interpretador/testes/Test.class b/bin/br/ufpb/iged/interpretador/testes/Test.class index 74036f02e6fce453ce5803f2f8b06a061dab13aa..b940d825a10e2677ff1e50c4ba683be82afb5591 100644 GIT binary patch delta 517 zcmY+AO-~bH6osF6Iy3LgI5AjkP$W>3MuSnRp;j#l^5HjVr6M3I3^0zZEj81|;L43V zSNevH{s7sENimxE1KjuvTp0ZqBfXTr~1ZQ6Yg-M z5!M!~Vf=Po^cq8dU@?drVeD(3EpQ&j^(YQ%fy;4DNb-WVO7JMiR)du&TYB7RhBcp) zoKh7tEe6yxvpaXjXOJO*y;NT=M|FWQH{vnOsAS}Sc{47rL_TAjQ(w%??gD!pE(%22 zqrhdKD~zj@HQ*Gu>T`{vnz1rHliZM$1nt{7%JpnfyEIG9I1F@@DfP;F@wc1G+pGVe zO?$tbmV|;X^;NX1&%#w(_93$(7<=BfPrZ~$wVLQqHR-GGa>3og!qz{VR})U(;Y8kg zO=g4K2MV(roK9K&?>M{3`Q(Kbms(7;xc<}1Kzv8vJd@ zO{O*Sm|})mbREXI#T*7*jB=YhBR;vjrunTdZY1+jjQ)Px#ygmd)}38Ut^IE8}Hr&11!CYtOz@| z9C&k$d9V5UrRWVMf5U?7H$6Y9c^N@?$!}DAx8@2;2YOZ9%8qOzCVw$zeJ{B0*BzTd zj!1?C?F;S$H@)cAE9v5LGw^Crj&e-38wqh-^&35z;V35=5m-7$wbBrTrgIT;UDlW_RIwqFBNm)IWhf<}sLGuO4RkCY1Q>&clGzZ=?`i8OC*%s$p zTxxOki77fw{ieRieUH-YB+G7!dd||r7VS0s(~%OB8bz33iW}$_7-yQBgy<&E47X^b zmm#eyV{n)hF1K}_Ij!m<^i3P<56(+GNtYxp=@XF9`if?RxJz}1USfJ(U_Xo4)aavu F{T-Gbl(PT; diff --git a/build.xml b/build.xml index c8bd00c..5a89115 100755 --- a/build.xml +++ b/build.xml @@ -3,36 +3,34 @@ - - + - - + - + - + - + - - + + @@ -56,7 +54,7 @@ - + @@ -71,8 +69,8 @@ + - diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index 1e12aab..02886e5 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -6,11 +6,12 @@ import org.antlr.runtime.TokenStream; import org.antlr.runtime.Token; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesParser; + +import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; -public class BytecodeAssembler extends BytecodesParser{ +public class BytecodeAssembler extends AssemblerParser{ public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; public static final int TAMANHO_INICIAL_MEMORIA_GLOBAL = 1024; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java index a85f7ec..d07c9a8 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java @@ -1,6 +1,6 @@ package br.ufpb.iged.interpretador.bytecodeassembler.asm; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesParser; +import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; public class Definicao { @@ -50,11 +50,11 @@ public class Definicao { public static final int IF_ICMPLE = 0xA4; public static final int GOTO = 0xA7; - public static final int ID = BytecodesParser.ID; - public static final int INT= BytecodesParser.INT; - public static final int NOVA_LINHA = BytecodesParser.NOVA_LINHA; - public static final int NULL = BytecodesParser.NULL; - public static final int WS = BytecodesParser.WS; + public static final int ID = AssemblerParser.ID; + public static final int INT= AssemblerParser.INT; + public static final int NOVA_LINHA = AssemblerParser.NOVA_LINHA; + public static final int NULL = AssemblerParser.NULL; + public static final int WS = AssemblerParser.WS; public static class Instrucao { diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens new file mode 100644 index 0000000..6b6fc84 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens @@ -0,0 +1,120 @@ +T__12=12 +T__13=13 +T__14=14 +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +ID=4 +INIT=5 +INT=6 +INTEIRO=7 +NOVA_LINHA=8 +NULL=9 +VOID=10 +WS=11 +'()'=12 +'/'=13 +':'=14 +'L'=15 +'aload'=16 +'aload_0'=17 +'aload_1'=18 +'aload_2'=19 +'aload_3'=20 +'getfield'=21 +'goto'=22 +'iadd'=23 +'iand'=24 +'iconst_0'=25 +'iconst_1'=26 +'iconst_2'=27 +'iconst_3'=28 +'iconst_4'=29 +'iconst_5'=30 +'iconst_m1'=31 +'idiv'=32 +'if_icmpeq'=33 +'if_icmpge'=34 +'if_icmpgt'=35 +'if_icmple'=36 +'if_icmplt'=37 +'if_icmpne'=38 +'ifeq'=39 +'ifge'=40 +'ifgt'=41 +'ifle'=42 +'iflt'=43 +'ifne'=44 +'iinc'=45 +'iload'=46 +'iload_0'=47 +'iload_1'=48 +'iload_2'=49 +'iload_3'=50 +'imul'=51 +'ineg'=52 +'invokespecial'=53 +'ior'=54 +'irem'=55 +'istore'=56 +'istore_0'=57 +'istore_1'=58 +'istore_2'=59 +'istore_3'=60 +'isub'=61 +'ixor'=62 +'ldc'=63 +'nop'=64 +'pop'=65 +'pop2'=66 +'putfield'=67 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java similarity index 62% rename from src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesLexer.java rename to src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index 2922d17..666eb4d 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g 2012-06-16 19:01:13 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-21 00:00:38 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -8,8 +8,11 @@ import java.util.ArrayList; @SuppressWarnings({"all", "warnings", "unchecked"}) -public class BytecodesLexer extends Lexer { +public class AssemblerLexer extends Lexer { public static final int EOF=-1; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; public static final int T__15=15; public static final int T__16=16; public static final int T__17=17; @@ -63,24 +66,14 @@ public class BytecodesLexer extends Lexer { public static final int T__65=65; public static final int T__66=66; public static final int T__67=67; - public static final int T__68=68; - public static final int T__69=69; - public static final int T__70=70; - public static final int T__71=71; - public static final int T__72=72; - public static final int T__73=73; - public static final int T__74=74; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int INTEIRO=9; - public static final int MEMBRO_CLASSE=10; - public static final int NOVA_LINHA=11; - public static final int NULL=12; - public static final int VOID=13; - public static final int WS=14; + public static final int ID=4; + public static final int INIT=5; + public static final int INT=6; + public static final int INTEIRO=7; + public static final int NOVA_LINHA=8; + public static final int NULL=9; + public static final int VOID=10; + public static final int WS=11; // delegates // delegators @@ -88,27 +81,90 @@ public Lexer[] getDelegates() { return new Lexer[] {}; } - public BytecodesLexer() {} - public BytecodesLexer(CharStream input) { + public AssemblerLexer() {} + public AssemblerLexer(CharStream input) { this(input, new RecognizerSharedState()); } - public BytecodesLexer(CharStream input, RecognizerSharedState state) { + public AssemblerLexer(CharStream input, RecognizerSharedState state) { super(input,state); } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g"; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__15" - public final void mT__15() throws RecognitionException { + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { try { - int _type = T__15; + int _type = T__12; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:2:7: ( '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:2:9: '()' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:7: ( '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:9: '()' { match("()"); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:7: ( '/' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:9: '/' + { + match('/'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:7: ( ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:9: ':' + { + match(':'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:7: ( 'L' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:9: 'L' + { + match('L'); + } state.type = _type; @@ -125,10 +181,10 @@ public final void mT__16() throws RecognitionException { try { int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:3:7: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:3:9: '.class' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( 'aload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: 'aload' { - match(".class"); + match("aload"); @@ -148,10 +204,10 @@ public final void mT__17() throws RecognitionException { try { int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:4:7: ( '.field' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:4:9: '.field' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: 'aload_0' { - match(".field"); + match("aload_0"); @@ -171,10 +227,10 @@ public final void mT__18() throws RecognitionException { try { int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:5:7: ( '.method' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:5:9: '.method' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: 'aload_1' { - match(".method"); + match("aload_1"); @@ -194,10 +250,10 @@ public final void mT__19() throws RecognitionException { try { int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:6:7: ( '.super' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:6:9: '.super' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: 'aload_2' { - match(".super"); + match("aload_2"); @@ -217,10 +273,12 @@ public final void mT__20() throws RecognitionException { try { int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:7:7: ( '/' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:7:9: '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: 'aload_3' { - match('/'); + match("aload_3"); + + } @@ -238,10 +296,12 @@ public final void mT__21() throws RecognitionException { try { int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:8:7: ( ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:8:9: ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: 'getfield' { - match(':'); + match("getfield"); + + } @@ -259,10 +319,12 @@ public final void mT__22() throws RecognitionException { try { int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:9:7: ( 'L' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:9:9: 'L' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: 'goto' { - match('L'); + match("goto"); + + } @@ -280,10 +342,10 @@ public final void mT__23() throws RecognitionException { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:10:7: ( 'aload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:10:9: 'aload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'iadd' { - match("aload"); + match("iadd"); @@ -303,10 +365,10 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:11:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:11:9: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'iand' { - match("aload_0"); + match("iand"); @@ -326,10 +388,10 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:12:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:12:9: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'iconst_0' { - match("aload_1"); + match("iconst_0"); @@ -349,10 +411,10 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:13:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:13:9: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'iconst_1' { - match("aload_2"); + match("iconst_1"); @@ -372,10 +434,10 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:14:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:14:9: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'iconst_2' { - match("aload_3"); + match("iconst_2"); @@ -395,10 +457,10 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:15:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:15:9: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'iconst_3' { - match("getfield"); + match("iconst_3"); @@ -418,10 +480,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:16:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:16:9: 'goto' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'iconst_4' { - match("goto"); + match("iconst_4"); @@ -441,10 +503,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:17:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:17:9: 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'iconst_5' { - match("iadd"); + match("iconst_5"); @@ -464,10 +526,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:18:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:18:9: 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'iconst_m1' { - match("iand"); + match("iconst_m1"); @@ -487,10 +549,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:19:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:19:9: 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'idiv' { - match("iconst_0"); + match("idiv"); @@ -510,10 +572,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:20:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:20:9: 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'if_icmpeq' { - match("iconst_1"); + match("if_icmpeq"); @@ -533,10 +595,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:21:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:21:9: 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'if_icmpge' { - match("iconst_2"); + match("if_icmpge"); @@ -556,10 +618,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:22:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:22:9: 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'if_icmpgt' { - match("iconst_3"); + match("if_icmpgt"); @@ -579,10 +641,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:23:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:23:9: 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'if_icmple' { - match("iconst_4"); + match("if_icmple"); @@ -602,10 +664,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:9: 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'if_icmplt' { - match("iconst_5"); + match("if_icmplt"); @@ -625,10 +687,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:25:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:25:9: 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'if_icmpne' { - match("iconst_m1"); + match("if_icmpne"); @@ -648,10 +710,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:26:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:26:9: 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'ifeq' { - match("idiv"); + match("ifeq"); @@ -671,10 +733,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:9: 'if_icmpeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'ifge' { - match("if_icmpeq"); + match("ifge"); @@ -694,10 +756,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:28:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:28:9: 'if_icmpge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'ifgt' { - match("if_icmpge"); + match("ifgt"); @@ -717,10 +779,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:9: 'if_icmpgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'ifle' { - match("if_icmpgt"); + match("ifle"); @@ -740,10 +802,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:30:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:30:9: 'if_icmple' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iflt' { - match("if_icmple"); + match("iflt"); @@ -763,10 +825,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:9: 'if_icmplt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'ifne' { - match("if_icmplt"); + match("ifne"); @@ -786,10 +848,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:32:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:32:9: 'if_icmpne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iinc' { - match("if_icmpne"); + match("iinc"); @@ -809,10 +871,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:33:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:33:9: 'ifeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iload' { - match("ifeq"); + match("iload"); @@ -832,10 +894,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:34:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:34:9: 'ifge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iload_0' { - match("ifge"); + match("iload_0"); @@ -855,10 +917,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:35:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:35:9: 'ifgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iload_1' { - match("ifgt"); + match("iload_1"); @@ -878,10 +940,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:36:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:36:9: 'ifle' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iload_2' { - match("ifle"); + match("iload_2"); @@ -901,10 +963,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:9: 'iflt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iload_3' { - match("iflt"); + match("iload_3"); @@ -924,10 +986,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:9: 'ifne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'imul' { - match("ifne"); + match("imul"); @@ -947,10 +1009,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:39:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:39:9: 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'ineg' { - match("iinc"); + match("ineg"); @@ -970,10 +1032,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:40:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:40:9: 'iload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'invokespecial' { - match("iload"); + match("invokespecial"); @@ -993,10 +1055,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:41:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:41:9: 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ior' { - match("iload_0"); + match("ior"); @@ -1016,10 +1078,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:42:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:42:9: 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'irem' { - match("iload_1"); + match("irem"); @@ -1039,10 +1101,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:9: 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'istore' { - match("iload_2"); + match("istore"); @@ -1062,10 +1124,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:44:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:44:9: 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'istore_0' { - match("iload_3"); + match("istore_0"); @@ -1085,10 +1147,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:9: 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'istore_1' { - match("imul"); + match("istore_1"); @@ -1108,10 +1170,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:46:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:46:9: 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'istore_2' { - match("ineg"); + match("istore_2"); @@ -1131,10 +1193,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:9: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'istore_3' { - match("invokespecial"); + match("istore_3"); @@ -1154,10 +1216,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:48:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:48:9: 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'isub' { - match("ior"); + match("isub"); @@ -1177,10 +1239,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:49:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:49:9: 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ixor' { - match("irem"); + match("ixor"); @@ -1200,10 +1262,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:50:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:50:9: 'istore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ldc' { - match("istore"); + match("ldc"); @@ -1223,10 +1285,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:51:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:51:9: 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'nop' { - match("istore_0"); + match("nop"); @@ -1246,10 +1308,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:9: 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'pop' { - match("istore_1"); + match("pop"); @@ -1269,10 +1331,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:53:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:53:9: 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'pop2' { - match("istore_2"); + match("pop2"); @@ -1292,169 +1354,8 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:9: 'istore_3' - { - match("istore_3"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__67" - - // $ANTLR start "T__68" - public final void mT__68() throws RecognitionException { - try { - int _type = T__68; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:55:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:55:9: 'isub' - { - match("isub"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__68" - - // $ANTLR start "T__69" - public final void mT__69() throws RecognitionException { - try { - int _type = T__69; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:9: 'ixor' - { - match("ixor"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__69" - - // $ANTLR start "T__70" - public final void mT__70() throws RecognitionException { - try { - int _type = T__70; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:57:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:57:9: 'ldc' - { - match("ldc"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__70" - - // $ANTLR start "T__71" - public final void mT__71() throws RecognitionException { - try { - int _type = T__71; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:58:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:58:9: 'nop' - { - match("nop"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__71" - - // $ANTLR start "T__72" - public final void mT__72() throws RecognitionException { - try { - int _type = T__72; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:59:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:59:9: 'pop' - { - match("pop"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__72" - - // $ANTLR start "T__73" - public final void mT__73() throws RecognitionException { - try { - int _type = T__73; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:60:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:60:9: 'pop2' - { - match("pop2"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__73" - - // $ANTLR start "T__74" - public final void mT__74() throws RecognitionException { - try { - int _type = T__74; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:61:7: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:61:9: 'putfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'putfield' { match("putfield"); @@ -1469,15 +1370,15 @@ public final void mT__74() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__74" + // $ANTLR end "T__67" // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:112:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:112:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: '' { match(""); @@ -1499,8 +1400,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:114:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:114:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:7: 'I' { match('I'); @@ -1520,8 +1421,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:116:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:116:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: 'V' { match('V'); @@ -1541,10 +1442,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1563,7 +1464,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: 'null' { match("null"); @@ -1572,7 +1473,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:118:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:18: 'NULL' { match("NULL"); @@ -1600,10 +1501,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1612,7 +1513,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:11: '-' { match('-'); @@ -1622,7 +1523,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:120:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1636,7 +1537,7 @@ public final void mINTEIRO() throws RecognitionException { switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -1677,8 +1578,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:122:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:122:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1690,7 +1591,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:122:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1703,7 +1604,7 @@ public final void mID() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1740,8 +1641,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:126:12: ( ';' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:126:14: ';' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:12: ( ';' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:14: ';' { match(';'); @@ -1761,8 +1662,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:128:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:128:6: ( ' ' | '\\t' | '\\r' | '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:6: ( ' ' | '\\t' | '\\r' | '\\n' ) { if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -1788,548 +1689,516 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) - int alt5=68; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + int alt5=64; alt5 = dfa5.predict(input); switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:10: T__15 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__12 { - mT__15(); + mT__12(); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:16: T__16 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__13 { - mT__16(); + mT__13(); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:22: T__17 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__14 { - mT__17(); + mT__14(); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:28: T__18 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__15 { - mT__18(); + mT__15(); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:34: T__19 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__16 { - mT__19(); + mT__16(); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:40: T__20 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__17 { - mT__20(); + mT__17(); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:46: T__21 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__18 { - mT__21(); + mT__18(); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:52: T__22 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__19 { - mT__22(); + mT__19(); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:58: T__23 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__20 { - mT__23(); + mT__20(); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:64: T__24 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__21 { - mT__24(); + mT__21(); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:70: T__25 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__22 { - mT__25(); + mT__22(); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:76: T__26 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__23 { - mT__26(); + mT__23(); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:82: T__27 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__24 { - mT__27(); + mT__24(); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:88: T__28 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__25 { - mT__28(); + mT__25(); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:94: T__29 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__26 { - mT__29(); + mT__26(); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:100: T__30 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__27 { - mT__30(); + mT__27(); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:106: T__31 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__28 { - mT__31(); + mT__28(); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:112: T__32 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__29 { - mT__32(); + mT__29(); } break; case 19 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:118: T__33 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__30 { - mT__33(); + mT__30(); } break; case 20 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:124: T__34 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__31 { - mT__34(); + mT__31(); } break; case 21 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:130: T__35 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__32 { - mT__35(); + mT__32(); } break; case 22 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:136: T__36 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__33 { - mT__36(); + mT__33(); } break; case 23 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:142: T__37 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__34 { - mT__37(); + mT__34(); } break; case 24 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:148: T__38 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__35 { - mT__38(); + mT__35(); } break; case 25 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:154: T__39 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__36 { - mT__39(); + mT__36(); } break; case 26 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:160: T__40 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__37 { - mT__40(); + mT__37(); } break; case 27 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:166: T__41 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__38 { - mT__41(); + mT__38(); } break; case 28 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:172: T__42 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__39 { - mT__42(); + mT__39(); } break; case 29 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:178: T__43 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__40 { - mT__43(); + mT__40(); } break; case 30 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:184: T__44 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__41 { - mT__44(); + mT__41(); } break; case 31 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:190: T__45 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__42 { - mT__45(); + mT__42(); } break; case 32 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:196: T__46 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__43 { - mT__46(); + mT__43(); } break; case 33 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:202: T__47 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__44 { - mT__47(); + mT__44(); } break; case 34 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:208: T__48 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__45 { - mT__48(); + mT__45(); } break; case 35 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:214: T__49 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__46 { - mT__49(); + mT__46(); } break; case 36 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:220: T__50 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__47 { - mT__50(); + mT__47(); } break; case 37 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:226: T__51 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__48 { - mT__51(); + mT__48(); } break; case 38 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:232: T__52 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__49 { - mT__52(); + mT__49(); } break; case 39 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:238: T__53 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__50 { - mT__53(); + mT__50(); } break; case 40 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:244: T__54 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__51 { - mT__54(); + mT__51(); } break; case 41 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:250: T__55 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__52 { - mT__55(); + mT__52(); } break; case 42 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:256: T__56 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__53 { - mT__56(); + mT__53(); } break; case 43 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:262: T__57 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__54 { - mT__57(); + mT__54(); } break; case 44 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:268: T__58 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__55 { - mT__58(); + mT__55(); } break; case 45 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:274: T__59 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__56 { - mT__59(); + mT__56(); } break; case 46 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:280: T__60 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__57 { - mT__60(); + mT__57(); } break; case 47 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:286: T__61 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__58 { - mT__61(); + mT__58(); } break; case 48 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:292: T__62 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__59 { - mT__62(); + mT__59(); } break; case 49 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:298: T__63 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__60 { - mT__63(); + mT__60(); } break; case 50 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:304: T__64 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__61 { - mT__64(); + mT__61(); } break; case 51 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:310: T__65 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__62 { - mT__65(); + mT__62(); } break; case 52 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:316: T__66 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__63 { - mT__66(); + mT__63(); } break; case 53 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:322: T__67 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__64 { - mT__67(); + mT__64(); } break; case 54 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:328: T__68 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__65 { - mT__68(); + mT__65(); } break; case 55 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:334: T__69 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__66 { - mT__69(); + mT__66(); } break; case 56 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:340: T__70 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__67 { - mT__70(); + mT__67(); } break; case 57 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:346: T__71 - { - mT__71(); - - - } - break; - case 58 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:352: T__72 - { - mT__72(); - - - } - break; - case 59 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:358: T__73 - { - mT__73(); - - - } - break; - case 60 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:364: T__74 - { - mT__74(); - - - } - break; - case 61 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:370: INIT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: INIT { mINIT(); } break; - case 62 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:375: INT + case 58 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:351: INT { mINT(); } break; - case 63 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:379: VOID + case 59 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:355: VOID { mVOID(); } break; - case 64 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:384: NULL + case 60 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:360: NULL { mNULL(); } break; - case 65 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:389: INTEIRO + case 61 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:365: INTEIRO { mINTEIRO(); } break; - case 66 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:397: ID + case 62 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:373: ID { mID(); } break; - case 67 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:400: NOVA_LINHA + case 63 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: NOVA_LINHA { mNOVA_LINHA(); } break; - case 68 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:1:411: WS + case 64 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:387: WS { mWS(); @@ -2344,225 +2213,218 @@ public void mTokens() throws RecognitionException { protected DFA5 dfa5 = new DFA5(this); static final String DFA5_eotS = - "\5\uffff\1\30\6\21\1\uffff\1\55\1\56\1\21\11\uffff\24\21\2\uffff"+ - "\10\21\1\uffff\11\21\1\137\4\21\1\144\1\145\1\21\1\150\4\21\1\155"+ - "\1\156\1\157\1\21\1\161\1\uffff\1\163\1\164\1\165\1\166\1\167\1"+ - "\170\1\171\1\21\1\173\1\174\1\21\1\uffff\1\176\1\21\1\u0080\1\u0081"+ - "\2\uffff\1\u0082\1\u0083\1\uffff\1\21\1\u0082\1\u0086\1\21\3\uffff"+ - "\1\21\11\uffff\1\u008b\2\uffff\1\21\1\uffff\1\21\4\uffff\1\21\2"+ - "\uffff\2\21\3\uffff\1\21\1\u009c\1\21\4\uffff\1\21\6\uffff\1\21"+ - "\2\uffff\1\21\1\u00b0\13\uffff\1\21\4\uffff\1\u00b6\5\uffff\1\21"+ - "\1\uffff\3\21\1\u00bb\1\uffff"; + "\4\uffff\1\23\6\20\1\uffff\1\50\1\51\1\20\5\uffff\24\20\2\uffff"+ + "\10\20\1\uffff\11\20\1\132\4\20\1\137\1\140\1\20\1\143\4\20\1\150"+ + "\1\151\1\152\1\20\1\154\1\uffff\1\156\1\157\1\160\1\161\1\162\1"+ + "\163\1\164\1\20\1\166\1\167\1\20\1\uffff\1\171\1\20\1\173\1\174"+ + "\2\uffff\1\175\1\176\1\uffff\1\20\1\175\1\u0081\1\20\3\uffff\1\20"+ + "\11\uffff\1\u0086\2\uffff\1\20\1\uffff\1\20\4\uffff\1\20\2\uffff"+ + "\2\20\3\uffff\1\20\1\u0097\1\20\4\uffff\1\20\6\uffff\1\20\2\uffff"+ + "\1\20\1\u00ab\13\uffff\1\20\4\uffff\1\u00b1\5\uffff\1\20\1\uffff"+ + "\3\20\1\u00b6\1\uffff"; static final String DFA5_eofS = - "\u00bc\uffff"; + "\u00b7\uffff"; static final String DFA5_minS = - "\1\11\1\uffff\1\143\2\uffff\1\56\1\154\1\145\1\141\1\144\2\157\1"+ - "\uffff\2\56\1\125\11\uffff\1\157\2\164\1\144\1\157\1\151\1\137\1"+ - "\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\160\1\154"+ - "\1\160\1\164\2\uffff\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1"+ - "\151\1\161\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157"+ - "\1\142\1\162\2\56\1\154\1\56\1\146\1\114\1\144\1\151\3\56\1\163"+ - "\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff\1\56\1\162\2\56\2\uffff"+ - "\2\56\1\uffff\1\151\2\56\1\145\3\uffff\1\164\1\uffff\1\155\7\uffff"+ - "\1\56\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1\60\1\uffff\1\154"+ - "\1\137\1\160\1\60\1\uffff\1\163\1\56\1\154\4\uffff\1\144\1\60\1"+ - "\145\4\uffff\1\160\1\60\1\uffff\1\144\1\56\10\uffff\2\145\1\uffff"+ - "\1\145\4\uffff\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56"+ - "\1\uffff"; + "\1\11\3\uffff\1\56\1\154\1\145\1\141\1\144\2\157\1\uffff\2\56\1"+ + "\125\5\uffff\1\157\2\164\1\144\1\157\1\151\1\137\1\156\1\157\1\165"+ + "\1\145\1\162\1\145\1\164\1\157\1\143\1\160\1\154\1\160\1\164\2\uffff"+ + "\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1\151\1\161\3\145\1\143"+ + "\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162\2\56\1\154"+ + "\1\56\1\146\1\114\1\144\1\151\3\56\1\163\1\56\1\143\7\56\1\144\2"+ + "\56\1\153\1\uffff\1\56\1\162\2\56\2\uffff\2\56\1\uffff\1\151\2\56"+ + "\1\145\3\uffff\1\164\1\uffff\1\155\7\uffff\1\56\2\uffff\1\145\1"+ + "\uffff\1\145\4\uffff\1\145\1\60\1\uffff\1\154\1\137\1\160\1\60\1"+ + "\uffff\1\163\1\56\1\154\4\uffff\1\144\1\60\1\145\4\uffff\1\160\1"+ + "\60\1\uffff\1\144\1\56\10\uffff\2\145\1\uffff\1\145\4\uffff\1\56"+ + "\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56\1\uffff"; static final String DFA5_maxS = - "\1\172\1\uffff\1\163\2\uffff\1\172\1\154\1\157\1\170\1\144\2\165"+ - "\1\uffff\2\172\1\125\11\uffff\1\157\2\164\1\156\1\157\1\151\2\156"+ - "\1\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143\1\160\1\154\1\160"+ - "\1\164\2\uffff\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1\151\1"+ - "\161\2\164\1\145\1\143\1\141\1\154\1\147\1\157\1\172\1\155\1\157"+ - "\1\142\1\162\2\172\1\154\1\172\1\146\1\114\1\144\1\151\3\172\1\163"+ - "\1\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1\172\1\162\2\172\2"+ - "\uffff\2\172\1\uffff\1\151\2\172\1\145\3\uffff\1\164\1\uffff\1\155"+ - "\7\uffff\1\172\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1\63\1"+ - "\uffff\1\154\1\137\1\160\1\63\1\uffff\1\163\1\172\1\154\4\uffff"+ - "\1\144\1\155\1\156\4\uffff\1\160\1\63\1\uffff\1\144\1\172\10\uffff"+ - "\2\164\1\uffff\1\145\4\uffff\1\172\5\uffff\1\143\1\uffff\1\151\1"+ - "\141\1\154\1\172\1\uffff"; + "\1\172\3\uffff\1\172\1\154\1\157\1\170\1\144\2\165\1\uffff\2\172"+ + "\1\125\5\uffff\1\157\2\164\1\156\1\157\1\151\2\156\1\157\1\165\1"+ + "\166\1\162\1\145\1\165\1\157\1\143\1\160\1\154\1\160\1\164\2\uffff"+ + "\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145"+ + "\1\143\1\141\1\154\1\147\1\157\1\172\1\155\1\157\1\142\1\162\2\172"+ + "\1\154\1\172\1\146\1\114\1\144\1\151\3\172\1\163\1\172\1\143\7\172"+ + "\1\144\2\172\1\153\1\uffff\1\172\1\162\2\172\2\uffff\2\172\1\uffff"+ + "\1\151\2\172\1\145\3\uffff\1\164\1\uffff\1\155\7\uffff\1\172\2\uffff"+ + "\1\145\1\uffff\1\145\4\uffff\1\145\1\63\1\uffff\1\154\1\137\1\160"+ + "\1\63\1\uffff\1\163\1\172\1\154\4\uffff\1\144\1\155\1\156\4\uffff"+ + "\1\160\1\63\1\uffff\1\144\1\172\10\uffff\2\164\1\uffff\1\145\4\uffff"+ + "\1\172\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; static final String DFA5_acceptS = - "\1\uffff\1\1\1\uffff\1\6\1\7\7\uffff\1\75\3\uffff\1\101\1\102\1"+ - "\103\1\104\1\2\1\3\1\4\1\5\1\10\24\uffff\1\76\1\77\60\uffff\1\57"+ - "\4\uffff\1\70\1\71\2\uffff\1\72\4\uffff\1\17\1\20\1\21\1\uffff\1"+ - "\31\1\uffff\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\uffff\1\54\1\55"+ - "\1\uffff\1\60\1\uffff\1\66\1\67\1\100\1\73\2\uffff\1\11\4\uffff"+ - "\1\47\3\uffff\1\12\1\13\1\14\1\15\3\uffff\1\50\1\51\1\52\1\53\2"+ - "\uffff\1\61\2\uffff\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\32\2\uffff"+ - "\1\37\1\uffff\1\62\1\63\1\64\1\65\1\uffff\1\16\1\33\1\34\1\35\1"+ - "\36\1\uffff\1\74\4\uffff\1\56"; + "\1\uffff\1\1\1\2\1\3\7\uffff\1\71\3\uffff\1\75\1\76\1\77\1\100\1"+ + "\4\24\uffff\1\72\1\73\60\uffff\1\53\4\uffff\1\64\1\65\2\uffff\1"+ + "\66\4\uffff\1\13\1\14\1\15\1\uffff\1\25\1\uffff\1\34\1\35\1\36\1"+ + "\37\1\40\1\41\1\42\1\uffff\1\50\1\51\1\uffff\1\54\1\uffff\1\62\1"+ + "\63\1\74\1\67\2\uffff\1\5\4\uffff\1\43\3\uffff\1\6\1\7\1\10\1\11"+ + "\3\uffff\1\44\1\45\1\46\1\47\2\uffff\1\55\2\uffff\1\16\1\17\1\20"+ + "\1\21\1\22\1\23\1\24\1\26\2\uffff\1\33\1\uffff\1\56\1\57\1\60\1"+ + "\61\1\uffff\1\12\1\27\1\30\1\31\1\32\1\uffff\1\70\4\uffff\1\52"; static final String DFA5_specialS = - "\u00bc\uffff}>"; + "\u00b7\uffff}>"; static final String[] DFA5_transitionS = { - "\2\23\2\uffff\1\23\22\uffff\1\23\7\uffff\1\1\4\uffff\1\20\1"+ - "\2\1\3\12\20\1\4\1\22\1\14\4\uffff\10\21\1\15\2\21\1\5\1\21"+ - "\1\17\7\21\1\16\4\21\6\uffff\1\6\5\21\1\7\1\21\1\10\2\21\1\11"+ - "\1\21\1\12\1\21\1\13\12\21", - "", - "\1\24\2\uffff\1\25\6\uffff\1\26\5\uffff\1\27", - "", - "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\31", - "\1\32\11\uffff\1\33", - "\1\34\1\uffff\1\35\1\36\1\uffff\1\37\2\uffff\1\40\2\uffff\1"+ - "\41\1\42\1\43\1\44\2\uffff\1\45\1\46\4\uffff\1\47", - "\1\50", - "\1\51\5\uffff\1\52", - "\1\53\5\uffff\1\54", - "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\57", + "\2\22\2\uffff\1\22\22\uffff\1\22\7\uffff\1\1\4\uffff\1\17\1"+ + "\uffff\1\2\12\17\1\3\1\21\1\13\4\uffff\10\20\1\14\2\20\1\4\1"+ + "\20\1\16\7\20\1\15\4\20\6\uffff\1\5\5\20\1\6\1\20\1\7\2\20\1"+ + "\10\1\20\1\11\1\20\1\12\12\20", "", "", "", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\24", + "\1\25\11\uffff\1\26", + "\1\27\1\uffff\1\30\1\31\1\uffff\1\32\2\uffff\1\33\2\uffff\1"+ + "\34\1\35\1\36\1\37\2\uffff\1\40\1\41\4\uffff\1\42", + "\1\43", + "\1\44\5\uffff\1\45", + "\1\46\5\uffff\1\47", "", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\52", "", "", "", "", "", + "\1\53", + "\1\54", + "\1\55", + "\1\56\11\uffff\1\57", "\1\60", "\1\61", - "\1\62", - "\1\63\11\uffff\1\64", - "\1\65", - "\1\66", - "\1\67\5\uffff\1\70\1\uffff\1\71\4\uffff\1\72\1\uffff\1\73", + "\1\62\5\uffff\1\63\1\uffff\1\64\4\uffff\1\65\1\uffff\1\66", + "\1\67", + "\1\70", + "\1\71", + "\1\72\20\uffff\1\73", "\1\74", "\1\75", - "\1\76", - "\1\77\20\uffff\1\100", + "\1\76\1\77", + "\1\100", "\1\101", "\1\102", - "\1\103\1\104", + "\1\103", + "\1\104", "\1\105", + "", + "", "\1\106", "\1\107", "\1\110", "\1\111", "\1\112", - "", - "", "\1\113", "\1\114", "\1\115", "\1\116", "\1\117", - "\1\120", - "\1\121", - "\1\122", - "\1\123", + "\1\120\16\uffff\1\121", + "\1\122\16\uffff\1\123", "\1\124", - "\1\125\16\uffff\1\126", - "\1\127\16\uffff\1\130", + "\1\125", + "\1\126", + "\1\127", + "\1\130", "\1\131", - "\1\132", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "\1\133", "\1\134", "\1\135", "\1\136", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\140", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "\1\141", - "\1\142", - "\1\143", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\20\1\uffff\2\20\1\142\7\20\7\uffff\32\20\6\uffff\32\20", + "\1\144", + "\1\145", "\1\146", - "\1\21\1\uffff\2\21\1\147\7\21\7\uffff\32\21\6\uffff\32\21", - "\1\151", - "\1\152", + "\1\147", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "\1\153", - "\1\154", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\160", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\162", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\155", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\165", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\170", + "", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "\1\172", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\175", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\177", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\177", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\20\1\uffff\12\20\7\uffff\32\20\4\uffff\1\u0080\1\uffff\32"+ + "\20", + "\1\u0082", "", - "\1\u0084", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u0085\1\uffff\32"+ - "\21", - "\1\u0087", "", "", + "\1\u0083", "", - "\1\u0088", + "\1\u0084", "", - "\1\u0089", "", "", "", "", "", "", + "\1\20\1\uffff\12\20\7\uffff\32\20\4\uffff\1\u0085\1\uffff\32"+ + "\20", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u008a\1\uffff\32"+ - "\21", "", + "\1\u0087", "", - "\1\u008c", + "\1\u0088", "", - "\1\u008d", "", "", "", + "\1\u0089", + "\1\u008a\1\u008b\1\u008c\1\u008d", "", "\1\u008e", - "\1\u008f\1\u0090\1\u0091\1\u0092", + "\1\u008f", + "\1\u0090", + "\1\u0091\1\u0092\1\u0093\1\u0094", "", - "\1\u0093", - "\1\u0094", "\1\u0095", - "\1\u0096\1\u0097\1\u0098\1\u0099", + "\1\20\1\uffff\12\20\7\uffff\32\20\4\uffff\1\u0096\1\uffff\32"+ + "\20", + "\1\u0098", "", - "\1\u009a", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u009b\1\uffff\32"+ - "\21", - "\1\u009d", "", "", "", + "\1\u0099", + "\1\u009a\1\u009b\1\u009c\1\u009d\1\u009e\1\u009f\67\uffff\1"+ + "\u00a0", + "\1\u00a1\1\uffff\1\u00a2\4\uffff\1\u00a3\1\uffff\1\u00a4", "", - "\1\u009e", - "\1\u009f\1\u00a0\1\u00a1\1\u00a2\1\u00a3\1\u00a4\67\uffff\1"+ - "\u00a5", - "\1\u00a6\1\uffff\1\u00a7\4\uffff\1\u00a8\1\uffff\1\u00a9", "", "", "", + "\1\u00a5", + "\1\u00a6\1\u00a7\1\u00a8\1\u00a9", "", "\1\u00aa", - "\1\u00ab\1\u00ac\1\u00ad\1\u00ae", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "", - "\1\u00af", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", "", "", @@ -2570,27 +2432,26 @@ public void mTokens() throws RecognitionException { "", "", "", + "\1\u00ac\16\uffff\1\u00ad", + "\1\u00ae\16\uffff\1\u00af", "", - "\1\u00b1\16\uffff\1\u00b2", - "\1\u00b3\16\uffff\1\u00b4", - "", - "\1\u00b5", + "\1\u00b0", "", "", "", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "", "", "", "", "", - "\1\u00b7", + "\1\u00b2", "", - "\1\u00b8", - "\1\u00b9", - "\1\u00ba", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\u00b3", + "\1\u00b4", + "\1\u00b5", + "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "" }; @@ -2624,7 +2485,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java new file mode 100644 index 0000000..52b247f --- /dev/null +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -0,0 +1,1616 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-21 00:00:37 + +package br.ufpb.iged.interpretador.bytecodeassembler.parser; + +import org.antlr.runtime.*; + +import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; +import br.ufpb.iged.interpretador.excecoes.LabelException; + +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public abstract class AssemblerParser extends Parser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "ID", "INIT", "INT", "INTEIRO", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + }; + + public static final int EOF=-1; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__19=19; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__50=50; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + public static final int T__54=54; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__59=59; + public static final int T__60=60; + public static final int T__61=61; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int T__66=66; + public static final int T__67=67; + public static final int ID=4; + public static final int INIT=5; + public static final int INT=6; + public static final int INTEIRO=7; + public static final int NOVA_LINHA=8; + public static final int NULL=9; + public static final int VOID=10; + public static final int WS=11; + + // delegates + public Parser[] getDelegates() { + return new Parser[] {}; + } + + // delegators + + + public AssemblerParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public AssemblerParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + } + + public String[] getTokenNames() { return AssemblerParser.tokenNames; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } + + + + protected abstract void escreverOpcode(Token opc); + protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; + protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + protected abstract void definirLabel(Token id) throws LabelException; + + + + + // $ANTLR start "programa" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:1: programa : ( comando )* ; + public final void programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:12: ( comando )* + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:12: ( comando )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||(LA1_0 >= 16 && LA1_0 <= 67)) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:12: comando + { + pushFollow(FOLLOW_comando_in_programa16); + comando(); + + state._fsp--; + + + } + break; + + default : + break loop1; + } + } while (true); + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "programa" + + + + // $ANTLR start "comando" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:1: comando : ( label instrucao | instrucao ) ; + public final void comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:11: ( label instrucao | instrucao ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:11: ( label instrucao | instrucao ) + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==ID) ) { + alt2=1; + } + else if ( (LA2_0==NOVA_LINHA||(LA2_0 >= 16 && LA2_0 <= 67)) ) { + alt2=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:12: label instrucao + { + pushFollow(FOLLOW_label_in_comando36); + label(); + + state._fsp--; + + + pushFollow(FOLLOW_instrucao_in_comando38); + instrucao(); + + state._fsp--; + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:30: instrucao + { + pushFollow(FOLLOW_instrucao_in_comando42); + instrucao(); + + state._fsp--; + + + } + break; + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "comando" + + + + // $ANTLR start "label" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:1: label : a= ID ':' ; + public final void label() throws RecognitionException, LabelException { + Token a=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: a= ID ':' + { + a=(Token)match(input,ID,FOLLOW_ID_in_label64); + + match(input,14,FOLLOW_14_in_label66); + + definirLabel(a); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "label" + + + + // $ANTLR start "instrucao" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:1: instrucao : ( manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + public final void instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + Token a=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:10: ( ( manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:12: ( manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:12: ( manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + int alt3=10; + switch ( input.LA(1) ) { + case 21: + case 53: + case 67: + { + alt3=1; + } + break; + case 23: + case 32: + case 45: + case 51: + case 52: + case 55: + case 61: + { + alt3=2; + } + break; + case 16: + case 17: + case 18: + case 19: + case 20: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 46: + case 47: + case 48: + case 49: + case 50: + case 63: + { + alt3=3; + } + break; + case 56: + case 57: + case 58: + case 59: + case 60: + { + alt3=4; + } + break; + case 22: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + { + alt3=5; + } + break; + case 24: + case 54: + case 62: + { + alt3=6; + } + break; + case 64: + { + alt3=7; + } + break; + case 65: + { + alt3=8; + } + break; + case 66: + { + alt3=9; + } + break; + } + + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:13: manipulacaoObjetos + { + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao76); + manipulacaoObjetos(); + + state._fsp--; + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:34: aritmetica + { + pushFollow(FOLLOW_aritmetica_in_instrucao80); + aritmetica(); + + state._fsp--; + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:47: load + { + pushFollow(FOLLOW_load_in_instrucao84); + load(); + + state._fsp--; + + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:54: store + { + pushFollow(FOLLOW_store_in_instrucao88); + store(); + + state._fsp--; + + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:62: desvio + { + pushFollow(FOLLOW_desvio_in_instrucao92); + desvio(); + + state._fsp--; + + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:71: logica + { + pushFollow(FOLLOW_logica_in_instrucao96); + logica(); + + state._fsp--; + + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:21: 'nop' + { + match(input,64,FOLLOW_64_in_instrucao119); + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:17: a= 'pop' + { + a=(Token)match(input,65,FOLLOW_65_in_instrucao141); + + escreverOpcode(a); + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:17: a= 'pop2' + { + a=(Token)match(input,66,FOLLOW_66_in_instrucao165); + + escreverOpcode(a); + + } + break; + + } + + + match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao185); + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "instrucao" + + + + // $ANTLR start "manipulacaoObjetos" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); + public final void manipulacaoObjetos() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) + int alt4=3; + switch ( input.LA(1) ) { + case 21: + { + alt4=1; + } + break; + case 67: + { + alt4=2; + } + break; + case 53: + { + alt4=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + + } + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:22: 'getfield' ID '/' ID tipo + { + match(input,21,FOLLOW_21_in_manipulacaoObjetos193); + + match(input,ID,FOLLOW_ID_in_manipulacaoObjetos195); + + match(input,13,FOLLOW_13_in_manipulacaoObjetos197); + + match(input,ID,FOLLOW_ID_in_manipulacaoObjetos199); + + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos201); + tipo(); + + state._fsp--; + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:22: 'putfield' ID '/' ID tipo + { + match(input,67,FOLLOW_67_in_manipulacaoObjetos224); + + match(input,ID,FOLLOW_ID_in_manipulacaoObjetos226); + + match(input,13,FOLLOW_13_in_manipulacaoObjetos228); + + match(input,ID,FOLLOW_ID_in_manipulacaoObjetos230); + + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos232); + tipo(); + + state._fsp--; + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:22: 'invokespecial' ID '/' INIT '()' VOID + { + match(input,53,FOLLOW_53_in_manipulacaoObjetos255); + + match(input,ID,FOLLOW_ID_in_manipulacaoObjetos257); + + match(input,13,FOLLOW_13_in_manipulacaoObjetos259); + + match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos261); + + match(input,12,FOLLOW_12_in_manipulacaoObjetos263); + + match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos265); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "manipulacaoObjetos" + + + + // $ANTLR start "tipo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:1: tipo : ( INT | VOID | 'L' ID ); + public final void tipo() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:6: ( INT | VOID | 'L' ID ) + int alt5=3; + switch ( input.LA(1) ) { + case INT: + { + alt5=1; + } + break; + case VOID: + { + alt5=2; + } + break; + case 15: + { + alt5=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + + } + + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:8: INT + { + match(input,INT,FOLLOW_INT_in_tipo296); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:14: VOID + { + match(input,VOID,FOLLOW_VOID_in_tipo300); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:21: 'L' ID + { + match(input,15,FOLLOW_15_in_tipo304); + + match(input,ID,FOLLOW_ID_in_tipo305); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "tipo" + + + + // $ANTLR start "aritmetica" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + public final void aritmetica() throws RecognitionException { + Token a=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + int alt6=7; + switch ( input.LA(1) ) { + case 23: + { + alt6=1; + } + break; + case 61: + { + alt6=2; + } + break; + case 51: + { + alt6=3; + } + break; + case 32: + { + alt6=4; + } + break; + case 55: + { + alt6=5; + } + break; + case 45: + { + alt6=6; + } + break; + case 52: + { + alt6=7; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + + } + + switch (alt6) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:14: a= 'iadd' + { + a=(Token)match(input,23,FOLLOW_23_in_aritmetica318); + + escreverOpcode(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:14: a= 'isub' + { + a=(Token)match(input,61,FOLLOW_61_in_aritmetica339); + + escreverOpcode(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:14: a= 'imul' + { + a=(Token)match(input,51,FOLLOW_51_in_aritmetica360); + + escreverOpcode(a); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:14: a= 'idiv' + { + a=(Token)match(input,32,FOLLOW_32_in_aritmetica381); + + escreverOpcode(a); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:14: a= 'irem' + { + a=(Token)match(input,55,FOLLOW_55_in_aritmetica402); + + escreverOpcode(a); + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:14: a= 'iinc' + { + a=(Token)match(input,45,FOLLOW_45_in_aritmetica423); + + escreverOpcode(a); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:14: a= 'ineg' + { + a=(Token)match(input,52,FOLLOW_52_in_aritmetica444); + + escreverOpcode(a); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "aritmetica" + + + + // $ANTLR start "load" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); + public final void load() throws RecognitionException, LabelException { + Token a=null; + Token INTEIRO1=null; + Token INTEIRO2=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt7=18; + switch ( input.LA(1) ) { + case 31: + { + alt7=1; + } + break; + case 25: + { + alt7=2; + } + break; + case 26: + { + alt7=3; + } + break; + case 27: + { + alt7=4; + } + break; + case 28: + { + alt7=5; + } + break; + case 29: + { + alt7=6; + } + break; + case 30: + { + alt7=7; + } + break; + case 47: + { + alt7=8; + } + break; + case 48: + { + alt7=9; + } + break; + case 49: + { + alt7=10; + } + break; + case 50: + { + alt7=11; + } + break; + case 46: + { + alt7=12; + } + break; + case 63: + { + alt7=13; + } + break; + case 16: + { + alt7=14; + } + break; + case 17: + { + alt7=15; + } + break; + case 18: + { + alt7=16; + } + break; + case 19: + { + alt7=17; + } + break; + case 20: + { + alt7=18; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + + } + + switch (alt7) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:8: a= 'iconst_m1' + { + a=(Token)match(input,31,FOLLOW_31_in_load481); + + escreverOpcode(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:8: a= 'iconst_0' + { + a=(Token)match(input,25,FOLLOW_25_in_load495); + + escreverOpcode(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:8: a= 'iconst_1' + { + a=(Token)match(input,26,FOLLOW_26_in_load510); + + escreverOpcode(a); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:8: a= 'iconst_2' + { + a=(Token)match(input,27,FOLLOW_27_in_load525); + + escreverOpcode(a); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:8: a= 'iconst_3' + { + a=(Token)match(input,28,FOLLOW_28_in_load540); + + escreverOpcode(a); + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:8: a= 'iconst_4' + { + a=(Token)match(input,29,FOLLOW_29_in_load554); + + escreverOpcode(a); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:8: a= 'iconst_5' + { + a=(Token)match(input,30,FOLLOW_30_in_load568); + + escreverOpcode(a); + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:8: a= 'iload_0' + { + a=(Token)match(input,47,FOLLOW_47_in_load582); + + escreverOpcode(a); + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:8: a= 'iload_1' + { + a=(Token)match(input,48,FOLLOW_48_in_load597); + + escreverOpcode(a); + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:8: a= 'iload_2' + { + a=(Token)match(input,49,FOLLOW_49_in_load612); + + escreverOpcode(a); + + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:8: a= 'iload_3' + { + a=(Token)match(input,50,FOLLOW_50_in_load627); + + escreverOpcode(a); + + } + break; + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:8: a= 'iload' INTEIRO + { + a=(Token)match(input,46,FOLLOW_46_in_load642); + + INTEIRO1=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load644); + + escreverOpcode(a, INTEIRO1); + + } + break; + case 13 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:8: a= 'ldc' INTEIRO + { + a=(Token)match(input,63,FOLLOW_63_in_load659); + + INTEIRO2=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load661); + + escreverOpcode(a, INTEIRO2); + + } + break; + case 14 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:8: a= 'aload' INTEIRO + { + a=(Token)match(input,16,FOLLOW_16_in_load676); + + match(input,INTEIRO,FOLLOW_INTEIRO_in_load678); + + } + break; + case 15 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:8: a= 'aload_0' + { + a=(Token)match(input,17,FOLLOW_17_in_load691); + + } + break; + case 16 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:8: a= 'aload_1' + { + a=(Token)match(input,18,FOLLOW_18_in_load704); + + } + break; + case 17 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:8: a= 'aload_2' + { + a=(Token)match(input,19,FOLLOW_19_in_load717); + + } + break; + case 18 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:8: a= 'aload_3' + { + a=(Token)match(input,20,FOLLOW_20_in_load730); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "load" + + + + // $ANTLR start "store" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); + public final void store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { + Token a=null; + Token INTEIRO3=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) + int alt8=5; + switch ( input.LA(1) ) { + case 57: + { + alt8=1; + } + break; + case 58: + { + alt8=2; + } + break; + case 59: + { + alt8=3; + } + break; + case 60: + { + alt8=4; + } + break; + case 56: + { + alt8=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); + + throw nvae; + + } + + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: a= 'istore_0' + { + a=(Token)match(input,57,FOLLOW_57_in_store753); + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: a= 'istore_1' + { + a=(Token)match(input,58,FOLLOW_58_in_store769); + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: a= 'istore_2' + { + a=(Token)match(input,59,FOLLOW_59_in_store785); + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: a= 'istore_3' + { + a=(Token)match(input,60,FOLLOW_60_in_store801); + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: a= 'istore' INTEIRO + { + a=(Token)match(input,56,FOLLOW_56_in_store817); + + INTEIRO3=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store819); + + verificarAumentoMemoriaGlobal(a, INTEIRO3); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "store" + + + + // $ANTLR start "logica" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + public final void logica() throws RecognitionException { + Token a=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt9=3; + switch ( input.LA(1) ) { + case 24: + { + alt9=1; + } + break; + case 54: + { + alt9=2; + } + break; + case 62: + { + alt9=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + + throw nvae; + + } + + switch (alt9) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:10: a= 'iand' + { + a=(Token)match(input,24,FOLLOW_24_in_logica840); + + escreverOpcode(a); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:10: a= 'ior' + { + a=(Token)match(input,54,FOLLOW_54_in_logica857); + + escreverOpcode(a); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:10: a= 'ixor' + { + a=(Token)match(input,62,FOLLOW_62_in_logica874); + + escreverOpcode(a); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "logica" + + + + // $ANTLR start "desvio" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + public final void desvio() throws RecognitionException, LabelException { + Token a=null; + Token b=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt10=13; + switch ( input.LA(1) ) { + case 39: + { + alt10=1; + } + break; + case 44: + { + alt10=2; + } + break; + case 43: + { + alt10=3; + } + break; + case 40: + { + alt10=4; + } + break; + case 41: + { + alt10=5; + } + break; + case 42: + { + alt10=6; + } + break; + case 33: + { + alt10=7; + } + break; + case 38: + { + alt10=8; + } + break; + case 37: + { + alt10=9; + } + break; + case 34: + { + alt10=10; + } + break; + case 35: + { + alt10=11; + } + break; + case 36: + { + alt10=12; + } + break; + case 22: + { + alt10=13; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 10, 0, input); + + throw nvae; + + } + + switch (alt10) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:10: a= 'ifeq' b= ID + { + a=(Token)match(input,39,FOLLOW_39_in_desvio896); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio902); + + escreverOpcode(a, b); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:10: a= 'ifne' b= ID + { + a=(Token)match(input,44,FOLLOW_44_in_desvio919); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio925); + + escreverOpcode(a, b); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:10: a= 'iflt' b= ID + { + a=(Token)match(input,43,FOLLOW_43_in_desvio942); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio948); + + escreverOpcode(a, b); + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:10: a= 'ifge' b= ID + { + a=(Token)match(input,40,FOLLOW_40_in_desvio965); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio971); + + escreverOpcode(a, b); + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:10: a= 'ifgt' b= ID + { + a=(Token)match(input,41,FOLLOW_41_in_desvio988); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio994); + + escreverOpcode(a, b); + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: a= 'ifle' b= ID + { + a=(Token)match(input,42,FOLLOW_42_in_desvio1011); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1017); + + escreverOpcode(a, b); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:10: a= 'if_icmpeq' b= ID + { + a=(Token)match(input,33,FOLLOW_33_in_desvio1034); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1040); + + escreverOpcode(a, b); + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:10: a= 'if_icmpne' b= ID + { + a=(Token)match(input,38,FOLLOW_38_in_desvio1057); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1063); + + escreverOpcode(a, b); + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:10: a= 'if_icmplt' b= ID + { + a=(Token)match(input,37,FOLLOW_37_in_desvio1080); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1086); + + escreverOpcode(a, b); + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:10: a= 'if_icmpge' b= ID + { + a=(Token)match(input,34,FOLLOW_34_in_desvio1103); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1109); + + escreverOpcode(a, b); + + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:10: a= 'if_icmpgt' b= ID + { + a=(Token)match(input,35,FOLLOW_35_in_desvio1126); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1132); + + escreverOpcode(a, b); + + } + break; + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:10: a= 'if_icmple' b= ID + { + a=(Token)match(input,36,FOLLOW_36_in_desvio1149); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1155); + + escreverOpcode(a, b); + + } + break; + case 13 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:10: a= 'goto' b= ID + { + a=(Token)match(input,22,FOLLOW_22_in_desvio1172); + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1178); + + escreverOpcode(a, b); + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "desvio" + + // Delegated rules + + + + + public static final BitSet FOLLOW_comando_in_programa16 = new BitSet(new long[]{0xFFFFFFFFFFFF0112L,0x000000000000000FL}); + public static final BitSet FOLLOW_label_in_comando36 = new BitSet(new long[]{0xFFFFFFFFFFFF0100L,0x000000000000000FL}); + public static final BitSet FOLLOW_instrucao_in_comando38 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando42 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label64 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_14_in_label66 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao76 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao80 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_load_in_instrucao84 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_store_in_instrucao88 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_desvio_in_instrucao92 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_logica_in_instrucao96 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_64_in_instrucao119 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_65_in_instrucao141 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_66_in_instrucao165 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao185 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_21_in_manipulacaoObjetos193 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos195 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_13_in_manipulacaoObjetos197 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos199 = new BitSet(new long[]{0x0000000000008440L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos201 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_manipulacaoObjetos224 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos226 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_13_in_manipulacaoObjetos228 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos230 = new BitSet(new long[]{0x0000000000008440L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos232 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_manipulacaoObjetos255 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos257 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_13_in_manipulacaoObjetos259 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos261 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_manipulacaoObjetos263 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos265 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo296 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo300 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_15_in_tipo304 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_tipo305 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_aritmetica318 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_aritmetica339 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_aritmetica360 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_aritmetica381 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_aritmetica402 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_aritmetica423 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_aritmetica444 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_load481 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load495 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load510 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load525 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_load540 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_load554 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_load568 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load582 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load612 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_load627 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load642 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_INTEIRO_in_load644 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load659 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_INTEIRO_in_load661 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_16_in_load676 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_INTEIRO_in_load678 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_load691 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_18_in_load704 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_19_in_load717 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_load730 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_store753 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_store769 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_store785 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_store801 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_store817 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_INTEIRO_in_store819 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_logica840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_logica857 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_logica874 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_desvio896 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio902 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_desvio919 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio925 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_desvio942 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio948 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_desvio965 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio971 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_desvio988 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio994 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_desvio1011 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio1017 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_desvio1034 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio1040 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_desvio1057 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio1063 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_desvio1080 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio1086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_desvio1103 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio1109 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_desvio1126 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio1132 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_desvio1149 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio1155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_22_in_desvio1172 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_desvio1178 = new BitSet(new long[]{0x0000000000000002L}); + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Bytecodes.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Bytecodes.tokens deleted file mode 100644 index bbc8897..0000000 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Bytecodes.tokens +++ /dev/null @@ -1,131 +0,0 @@ -T__15=15 -T__16=16 -T__17=17 -T__18=18 -T__19=19 -T__20=20 -T__21=21 -T__22=22 -T__23=23 -T__24=24 -T__25=25 -T__26=26 -T__27=27 -T__28=28 -T__29=29 -T__30=30 -T__31=31 -T__32=32 -T__33=33 -T__34=34 -T__35=35 -T__36=36 -T__37=37 -T__38=38 -T__39=39 -T__40=40 -T__41=41 -T__42=42 -T__43=43 -T__44=44 -T__45=45 -T__46=46 -T__47=47 -T__48=48 -T__49=49 -T__50=50 -T__51=51 -T__52=52 -T__53=53 -T__54=54 -T__55=55 -T__56=56 -T__57=57 -T__58=58 -T__59=59 -T__60=60 -T__61=61 -T__62=62 -T__63=63 -T__64=64 -T__65=65 -T__66=66 -T__67=67 -T__68=68 -T__69=69 -T__70=70 -T__71=71 -T__72=72 -T__73=73 -T__74=74 -EXTENDS=4 -FIELD_DECL=5 -ID=6 -INIT=7 -INT=8 -INTEIRO=9 -MEMBRO_CLASSE=10 -NOVA_LINHA=11 -NULL=12 -VOID=13 -WS=14 -'()'=15 -'.class'=16 -'.field'=17 -'.method'=18 -'.super'=19 -'/'=20 -':'=21 -'L'=22 -'aload'=23 -'aload_0'=24 -'aload_1'=25 -'aload_2'=26 -'aload_3'=27 -'getfield'=28 -'goto'=29 -'iadd'=30 -'iand'=31 -'iconst_0'=32 -'iconst_1'=33 -'iconst_2'=34 -'iconst_3'=35 -'iconst_4'=36 -'iconst_5'=37 -'iconst_m1'=38 -'idiv'=39 -'if_icmpeq'=40 -'if_icmpge'=41 -'if_icmpgt'=42 -'if_icmple'=43 -'if_icmplt'=44 -'if_icmpne'=45 -'ifeq'=46 -'ifge'=47 -'ifgt'=48 -'ifle'=49 -'iflt'=50 -'ifne'=51 -'iinc'=52 -'iload'=53 -'iload_0'=54 -'iload_1'=55 -'iload_2'=56 -'iload_3'=57 -'imul'=58 -'ineg'=59 -'invokespecial'=60 -'ior'=61 -'irem'=62 -'istore'=63 -'istore_0'=64 -'istore_1'=65 -'istore_2'=66 -'istore_3'=67 -'isub'=68 -'ixor'=69 -'ldc'=70 -'nop'=71 -'pop'=72 -'pop2'=73 -'putfield'=74 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesParser.java deleted file mode 100644 index 66d32d7..0000000 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/BytecodesParser.java +++ /dev/null @@ -1,3211 +0,0 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g 2012-06-16 19:01:12 - -package br.ufpb.iged.interpretador.bytecodeassembler.parser; - -import org.antlr.runtime.*; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; - -import org.antlr.runtime.tree.*; - -import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; -import br.ufpb.iged.interpretador.excecoes.LabelException; -import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; - - -@SuppressWarnings({"all", "warnings", "unchecked"}) -public abstract class BytecodesParser extends Parser { - public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" - }; - - public static final int EOF=-1; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__19=19; - public static final int T__20=20; - public static final int T__21=21; - public static final int T__22=22; - public static final int T__23=23; - public static final int T__24=24; - public static final int T__25=25; - public static final int T__26=26; - public static final int T__27=27; - public static final int T__28=28; - public static final int T__29=29; - public static final int T__30=30; - public static final int T__31=31; - public static final int T__32=32; - public static final int T__33=33; - public static final int T__34=34; - public static final int T__35=35; - public static final int T__36=36; - public static final int T__37=37; - public static final int T__38=38; - public static final int T__39=39; - public static final int T__40=40; - public static final int T__41=41; - public static final int T__42=42; - public static final int T__43=43; - public static final int T__44=44; - public static final int T__45=45; - public static final int T__46=46; - public static final int T__47=47; - public static final int T__48=48; - public static final int T__49=49; - public static final int T__50=50; - public static final int T__51=51; - public static final int T__52=52; - public static final int T__53=53; - public static final int T__54=54; - public static final int T__55=55; - public static final int T__56=56; - public static final int T__57=57; - public static final int T__58=58; - public static final int T__59=59; - public static final int T__60=60; - public static final int T__61=61; - public static final int T__62=62; - public static final int T__63=63; - public static final int T__64=64; - public static final int T__65=65; - public static final int T__66=66; - public static final int T__67=67; - public static final int T__68=68; - public static final int T__69=69; - public static final int T__70=70; - public static final int T__71=71; - public static final int T__72=72; - public static final int T__73=73; - public static final int T__74=74; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int INTEIRO=9; - public static final int MEMBRO_CLASSE=10; - public static final int NOVA_LINHA=11; - public static final int NULL=12; - public static final int VOID=13; - public static final int WS=14; - - // delegates - public Parser[] getDelegates() { - return new Parser[] {}; - } - - // delegators - - - public BytecodesParser(TokenStream input) { - this(input, new RecognizerSharedState()); - } - public BytecodesParser(TokenStream input, RecognizerSharedState state) { - super(input, state); - } - -protected TreeAdaptor adaptor = new CommonTreeAdaptor(); - -public void setTreeAdaptor(TreeAdaptor adaptor) { - this.adaptor = adaptor; -} -public TreeAdaptor getTreeAdaptor() { - return adaptor; -} - public String[] getTokenNames() { return BytecodesParser.tokenNames; } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g"; } - - - - protected abstract void escreverOpcode(Token opc); - protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - protected abstract void definirLabel(Token id) throws LabelException; - - - - public static class programa_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:1: programa : ( comando )* ; - public final BytecodesParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - BytecodesParser.programa_return retval = new BytecodesParser.programa_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - BytecodesParser.comando_return comando1 =null; - - - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:12: ( comando )* - { - root_0 = (BytecodesAST)adaptor.nil(); - - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:12: ( comando )* - loop1: - do { - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==16||LA1_0==18||(LA1_0 >= 23 && LA1_0 <= 74)) ) { - alt1=1; - } - - - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:24:12: comando - { - pushFollow(FOLLOW_comando_in_programa59); - comando1=comando(); - - state._fsp--; - - adaptor.addChild(root_0, comando1.getTree()); - - } - break; - - default : - break loop1; - } - } while (true); - - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "programa" - - - public static class comando_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:1: comando : ( label instrucao | instrucao ) ; - public final BytecodesParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - BytecodesParser.comando_return retval = new BytecodesParser.comando_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - BytecodesParser.label_return label2 =null; - - BytecodesParser.instrucao_return instrucao3 =null; - - BytecodesParser.instrucao_return instrucao4 =null; - - - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:11: ( label instrucao | instrucao ) - { - root_0 = (BytecodesAST)adaptor.nil(); - - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:11: ( label instrucao | instrucao ) - int alt2=2; - int LA2_0 = input.LA(1); - - if ( (LA2_0==ID) ) { - alt2=1; - } - else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 74)) ) { - alt2=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 2, 0, input); - - throw nvae; - - } - switch (alt2) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:12: label instrucao - { - pushFollow(FOLLOW_label_in_comando79); - label2=label(); - - state._fsp--; - - adaptor.addChild(root_0, label2.getTree()); - - pushFollow(FOLLOW_instrucao_in_comando81); - instrucao3=instrucao(); - - state._fsp--; - - adaptor.addChild(root_0, instrucao3.getTree()); - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:27:30: instrucao - { - pushFollow(FOLLOW_instrucao_in_comando85); - instrucao4=instrucao(); - - state._fsp--; - - adaptor.addChild(root_0, instrucao4.getTree()); - - } - break; - - } - - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "comando" - - - public static class label_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:1: label : a= ID ':' ; - public final BytecodesParser.label_return label() throws RecognitionException, LabelException { - BytecodesParser.label_return retval = new BytecodesParser.label_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token a=null; - Token char_literal5=null; - - BytecodesAST a_tree=null; - BytecodesAST char_literal5_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:29:9: a= ID ':' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,ID,FOLLOW_ID_in_label107); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - char_literal5=(Token)match(input,21,FOLLOW_21_in_label109); - char_literal5_tree = - (BytecodesAST)adaptor.create(char_literal5) - ; - adaptor.addChild(root_0, char_literal5_tree); - - - definirLabel(a); - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "label" - - - public static class instrucao_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; - public final BytecodesParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - BytecodesParser.instrucao_return retval = new BytecodesParser.instrucao_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token a=null; - Token string_literal13=null; - Token NOVA_LINHA14=null; - BytecodesParser.definicaoClasse_return definicaoClasse6 =null; - - BytecodesParser.manipulacaoObjetos_return manipulacaoObjetos7 =null; - - BytecodesParser.aritmetica_return aritmetica8 =null; - - BytecodesParser.load_return load9 =null; - - BytecodesParser.store_return store10 =null; - - BytecodesParser.desvio_return desvio11 =null; - - BytecodesParser.logica_return logica12 =null; - - - BytecodesAST a_tree=null; - BytecodesAST string_literal13_tree=null; - BytecodesAST NOVA_LINHA14_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA - { - root_0 = (BytecodesAST)adaptor.nil(); - - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? - int alt3=11; - switch ( input.LA(1) ) { - case 16: - case 18: - { - alt3=1; - } - break; - case 28: - case 60: - case 74: - { - alt3=2; - } - break; - case 30: - case 39: - case 52: - case 58: - case 59: - case 62: - case 68: - { - alt3=3; - } - break; - case 23: - case 24: - case 25: - case 26: - case 27: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 53: - case 54: - case 55: - case 56: - case 57: - case 70: - { - alt3=4; - } - break; - case 63: - case 64: - case 65: - case 66: - case 67: - { - alt3=5; - } - break; - case 29: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - { - alt3=6; - } - break; - case 31: - case 61: - case 69: - { - alt3=7; - } - break; - case 71: - { - alt3=8; - } - break; - case 72: - { - alt3=9; - } - break; - case 73: - { - alt3=10; - } - break; - } - - switch (alt3) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:13: definicaoClasse - { - pushFollow(FOLLOW_definicaoClasse_in_instrucao119); - definicaoClasse6=definicaoClasse(); - - state._fsp--; - - adaptor.addChild(root_0, definicaoClasse6.getTree()); - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:31: manipulacaoObjetos - { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao123); - manipulacaoObjetos7=manipulacaoObjetos(); - - state._fsp--; - - adaptor.addChild(root_0, manipulacaoObjetos7.getTree()); - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:52: aritmetica - { - pushFollow(FOLLOW_aritmetica_in_instrucao127); - aritmetica8=aritmetica(); - - state._fsp--; - - adaptor.addChild(root_0, aritmetica8.getTree()); - - } - break; - case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:65: load - { - pushFollow(FOLLOW_load_in_instrucao131); - load9=load(); - - state._fsp--; - - adaptor.addChild(root_0, load9.getTree()); - - } - break; - case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:72: store - { - pushFollow(FOLLOW_store_in_instrucao135); - store10=store(); - - state._fsp--; - - adaptor.addChild(root_0, store10.getTree()); - - } - break; - case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:80: desvio - { - pushFollow(FOLLOW_desvio_in_instrucao139); - desvio11=desvio(); - - state._fsp--; - - adaptor.addChild(root_0, desvio11.getTree()); - - } - break; - case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:31:89: logica - { - pushFollow(FOLLOW_logica_in_instrucao143); - logica12=logica(); - - state._fsp--; - - adaptor.addChild(root_0, logica12.getTree()); - - } - break; - case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:32:21: 'nop' - { - string_literal13=(Token)match(input,71,FOLLOW_71_in_instrucao166); - string_literal13_tree = - (BytecodesAST)adaptor.create(string_literal13) - ; - adaptor.addChild(root_0, string_literal13_tree); - - - } - break; - case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:33:17: a= 'pop' - { - a=(Token)match(input,72,FOLLOW_72_in_instrucao188); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:34:17: a= 'pop2' - { - a=(Token)match(input,73,FOLLOW_73_in_instrucao212); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - - } - - - NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao232); - NOVA_LINHA14_tree = - (BytecodesAST)adaptor.create(NOVA_LINHA14) - ; - adaptor.addChild(root_0, NOVA_LINHA14_tree); - - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "instrucao" - - - public static class definicaoClasse_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:1: definicaoClasse : ( '.class' ID ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); - public final BytecodesParser.definicaoClasse_return definicaoClasse() throws RecognitionException { - BytecodesParser.definicaoClasse_return retval = new BytecodesParser.definicaoClasse_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal15=null; - Token ID16=null; - Token string_literal18=null; - Token ID19=null; - Token NOVA_LINHA20=null; - Token string_literal23=null; - BytecodesParser.membroClasse_return membroClasse17 =null; - - BytecodesParser.superClasse_return superClasse21 =null; - - BytecodesParser.membroClasse_return membroClasse22 =null; - - BytecodesParser.construtorDefault_return construtorDefault24 =null; - - - BytecodesAST string_literal15_tree=null; - BytecodesAST ID16_tree=null; - BytecodesAST string_literal18_tree=null; - BytecodesAST ID19_tree=null; - BytecodesAST NOVA_LINHA20_tree=null; - BytecodesAST string_literal23_tree=null; - RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); - RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); - RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:17: ( '.class' ID ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) - int alt6=3; - int LA6_0 = input.LA(1); - - if ( (LA6_0==16) ) { - int LA6_1 = input.LA(2); - - if ( (LA6_1==ID) ) { - int LA6_3 = input.LA(3); - - if ( (LA6_3==NOVA_LINHA) ) { - alt6=2; - } - else if ( (LA6_3==17) ) { - alt6=1; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 6, 3, input); - - throw nvae; - - } - } - else { - NoViableAltException nvae = - new NoViableAltException("", 6, 1, input); - - throw nvae; - - } - } - else if ( (LA6_0==18) ) { - alt6=3; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); - - throw nvae; - - } - switch (alt6) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:19: '.class' ID ( membroClasse )+ - { - string_literal15=(Token)match(input,16,FOLLOW_16_in_definicaoClasse268); - stream_16.add(string_literal15); - - - ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse270); - stream_ID.add(ID16); - - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:31: ( membroClasse )+ - int cnt4=0; - loop4: - do { - int alt4=2; - int LA4_0 = input.LA(1); - - if ( (LA4_0==17) ) { - alt4=1; - } - - - switch (alt4) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:31: membroClasse - { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse272); - membroClasse17=membroClasse(); - - state._fsp--; - - stream_membroClasse.add(membroClasse17.getTree()); - - } - break; - - default : - if ( cnt4 >= 1 ) break loop4; - EarlyExitException eee = - new EarlyExitException(4, input); - throw eee; - } - cnt4++; - } while (true); - - - // AST REWRITE - // elements: 16, membroClasse, ID - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 37:46: -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:49: ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_16.nextNode() - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:37:63: ^( MEMBRO_CLASSE ( membroClasse )+ ) - { - BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); - root_2 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") - , root_2); - - if ( !(stream_membroClasse.hasNext()) ) { - throw new RewriteEarlyExitException(); - } - while ( stream_membroClasse.hasNext() ) { - adaptor.addChild(root_2, stream_membroClasse.nextTree()); - - } - stream_membroClasse.reset(); - - adaptor.addChild(root_1, root_2); - } - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:19: '.class' ID NOVA_LINHA superClasse ( membroClasse )+ - { - string_literal18=(Token)match(input,16,FOLLOW_16_in_definicaoClasse309); - stream_16.add(string_literal18); - - - ID19=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse311); - stream_ID.add(ID19); - - - NOVA_LINHA20=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse313); - stream_NOVA_LINHA.add(NOVA_LINHA20); - - - pushFollow(FOLLOW_superClasse_in_definicaoClasse315); - superClasse21=superClasse(); - - state._fsp--; - - stream_superClasse.add(superClasse21.getTree()); - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:54: ( membroClasse )+ - int cnt5=0; - loop5: - do { - int alt5=2; - int LA5_0 = input.LA(1); - - if ( (LA5_0==17) ) { - alt5=1; - } - - - switch (alt5) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:38:54: membroClasse - { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse317); - membroClasse22=membroClasse(); - - state._fsp--; - - stream_membroClasse.add(membroClasse22.getTree()); - - } - break; - - default : - if ( cnt5 >= 1 ) break loop5; - EarlyExitException eee = - new EarlyExitException(5, input); - throw eee; - } - cnt5++; - } while (true); - - - // AST REWRITE - // elements: superClasse, ID, membroClasse, 16 - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 39:19: -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:39:22: ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_16.nextNode() - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - adaptor.addChild(root_1, stream_superClasse.nextTree()); - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:39:48: ^( MEMBRO_CLASSE ( membroClasse )+ ) - { - BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); - root_2 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") - , root_2); - - if ( !(stream_membroClasse.hasNext()) ) { - throw new RewriteEarlyExitException(); - } - while ( stream_membroClasse.hasNext() ) { - adaptor.addChild(root_2, stream_membroClasse.nextTree()); - - } - stream_membroClasse.reset(); - - adaptor.addChild(root_1, root_2); - } - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:40:19: '.method' construtorDefault - { - root_0 = (BytecodesAST)adaptor.nil(); - - - string_literal23=(Token)match(input,18,FOLLOW_18_in_definicaoClasse375); - string_literal23_tree = - (BytecodesAST)adaptor.create(string_literal23) - ; - adaptor.addChild(root_0, string_literal23_tree); - - - pushFollow(FOLLOW_construtorDefault_in_definicaoClasse377); - construtorDefault24=construtorDefault(); - - state._fsp--; - - adaptor.addChild(root_0, construtorDefault24.getTree()); - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "definicaoClasse" - - - public static class superClasse_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; - public final BytecodesParser.superClasse_return superClasse() throws RecognitionException { - BytecodesParser.superClasse_return retval = new BytecodesParser.superClasse_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal25=null; - Token ID26=null; - - BytecodesAST string_literal25_tree=null; - BytecodesAST ID26_tree=null; - RewriteRuleTokenStream stream_19=new RewriteRuleTokenStream(adaptor,"token 19"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:15: '.super' ID - { - string_literal25=(Token)match(input,19,FOLLOW_19_in_superClasse406); - stream_19.add(string_literal25); - - - ID26=(Token)match(input,ID,FOLLOW_ID_in_superClasse408); - stream_ID.add(ID26); - - - // AST REWRITE - // elements: ID - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 43:27: -> ^( EXTENDS ID ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:43:30: ^( EXTENDS ID ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(EXTENDS, "EXTENDS") - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "superClasse" - - - public static class membroClasse_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:1: membroClasse : '.field' ID tipo NOVA_LINHA -> ^( FIELD_DECL ID tipo ) ; - public final BytecodesParser.membroClasse_return membroClasse() throws RecognitionException { - BytecodesParser.membroClasse_return retval = new BytecodesParser.membroClasse_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal27=null; - Token ID28=null; - Token NOVA_LINHA30=null; - BytecodesParser.tipo_return tipo29 =null; - - - BytecodesAST string_literal27_tree=null; - BytecodesAST ID28_tree=null; - BytecodesAST NOVA_LINHA30_tree=null; - RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); - RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:14: ( '.field' ID tipo NOVA_LINHA -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:16: '.field' ID tipo NOVA_LINHA - { - string_literal27=(Token)match(input,17,FOLLOW_17_in_membroClasse425); - stream_17.add(string_literal27); - - - ID28=(Token)match(input,ID,FOLLOW_ID_in_membroClasse427); - stream_ID.add(ID28); - - - pushFollow(FOLLOW_tipo_in_membroClasse429); - tipo29=tipo(); - - state._fsp--; - - stream_tipo.add(tipo29.getTree()); - - NOVA_LINHA30=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_membroClasse431); - stream_NOVA_LINHA.add(NOVA_LINHA30); - - - // AST REWRITE - // elements: tipo, ID - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 45:44: -> ^( FIELD_DECL ID tipo ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:45:47: ^( FIELD_DECL ID tipo ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(FIELD_DECL, "FIELD_DECL") - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - adaptor.addChild(root_1, stream_tipo.nextTree()); - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "membroClasse" - - - public static class manipulacaoObjetos_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); - public final BytecodesParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { - BytecodesParser.manipulacaoObjetos_return retval = new BytecodesParser.manipulacaoObjetos_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal31=null; - Token ID32=null; - Token char_literal33=null; - Token ID34=null; - Token string_literal36=null; - Token ID37=null; - Token char_literal38=null; - Token ID39=null; - Token string_literal41=null; - Token ID42=null; - Token char_literal43=null; - Token INIT44=null; - Token string_literal45=null; - Token VOID46=null; - BytecodesParser.tipo_return tipo35 =null; - - BytecodesParser.tipo_return tipo40 =null; - - - BytecodesAST string_literal31_tree=null; - BytecodesAST ID32_tree=null; - BytecodesAST char_literal33_tree=null; - BytecodesAST ID34_tree=null; - BytecodesAST string_literal36_tree=null; - BytecodesAST ID37_tree=null; - BytecodesAST char_literal38_tree=null; - BytecodesAST ID39_tree=null; - BytecodesAST string_literal41_tree=null; - BytecodesAST ID42_tree=null; - BytecodesAST char_literal43_tree=null; - BytecodesAST INIT44_tree=null; - BytecodesAST string_literal45_tree=null; - BytecodesAST VOID46_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) - int alt7=3; - switch ( input.LA(1) ) { - case 28: - { - alt7=1; - } - break; - case 74: - { - alt7=2; - } - break; - case 60: - { - alt7=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 7, 0, input); - - throw nvae; - - } - - switch (alt7) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:47:22: 'getfield' ID '/' ID tipo - { - root_0 = (BytecodesAST)adaptor.nil(); - - - string_literal31=(Token)match(input,28,FOLLOW_28_in_manipulacaoObjetos450); - string_literal31_tree = - (BytecodesAST)adaptor.create(string_literal31) - ; - adaptor.addChild(root_0, string_literal31_tree); - - - ID32=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos452); - ID32_tree = - (BytecodesAST)adaptor.create(ID32) - ; - adaptor.addChild(root_0, ID32_tree); - - - char_literal33=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos454); - char_literal33_tree = - (BytecodesAST)adaptor.create(char_literal33) - ; - adaptor.addChild(root_0, char_literal33_tree); - - - ID34=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos456); - ID34_tree = - (BytecodesAST)adaptor.create(ID34) - ; - adaptor.addChild(root_0, ID34_tree); - - - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos458); - tipo35=tipo(); - - state._fsp--; - - adaptor.addChild(root_0, tipo35.getTree()); - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:48:22: 'putfield' ID '/' ID tipo - { - root_0 = (BytecodesAST)adaptor.nil(); - - - string_literal36=(Token)match(input,74,FOLLOW_74_in_manipulacaoObjetos481); - string_literal36_tree = - (BytecodesAST)adaptor.create(string_literal36) - ; - adaptor.addChild(root_0, string_literal36_tree); - - - ID37=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos483); - ID37_tree = - (BytecodesAST)adaptor.create(ID37) - ; - adaptor.addChild(root_0, ID37_tree); - - - char_literal38=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos485); - char_literal38_tree = - (BytecodesAST)adaptor.create(char_literal38) - ; - adaptor.addChild(root_0, char_literal38_tree); - - - ID39=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos487); - ID39_tree = - (BytecodesAST)adaptor.create(ID39) - ; - adaptor.addChild(root_0, ID39_tree); - - - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos489); - tipo40=tipo(); - - state._fsp--; - - adaptor.addChild(root_0, tipo40.getTree()); - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:49:22: 'invokespecial' ID '/' INIT '()' VOID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - string_literal41=(Token)match(input,60,FOLLOW_60_in_manipulacaoObjetos512); - string_literal41_tree = - (BytecodesAST)adaptor.create(string_literal41) - ; - adaptor.addChild(root_0, string_literal41_tree); - - - ID42=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos514); - ID42_tree = - (BytecodesAST)adaptor.create(ID42) - ; - adaptor.addChild(root_0, ID42_tree); - - - char_literal43=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos516); - char_literal43_tree = - (BytecodesAST)adaptor.create(char_literal43) - ; - adaptor.addChild(root_0, char_literal43_tree); - - - INIT44=(Token)match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos518); - INIT44_tree = - (BytecodesAST)adaptor.create(INIT44) - ; - adaptor.addChild(root_0, INIT44_tree); - - - string_literal45=(Token)match(input,15,FOLLOW_15_in_manipulacaoObjetos520); - string_literal45_tree = - (BytecodesAST)adaptor.create(string_literal45) - ; - adaptor.addChild(root_0, string_literal45_tree); - - - VOID46=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos522); - VOID46_tree = - (BytecodesAST)adaptor.create(VOID46) - ; - adaptor.addChild(root_0, VOID46_tree); - - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "manipulacaoObjetos" - - - public static class construtorDefault_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:1: construtorDefault : INIT '()' VOID ; - public final BytecodesParser.construtorDefault_return construtorDefault() throws RecognitionException { - BytecodesParser.construtorDefault_return retval = new BytecodesParser.construtorDefault_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token INIT47=null; - Token string_literal48=null; - Token VOID49=null; - - BytecodesAST INIT47_tree=null; - BytecodesAST string_literal48_tree=null; - BytecodesAST VOID49_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:19: ( INIT '()' VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:52:21: INIT '()' VOID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - INIT47=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault570); - INIT47_tree = - (BytecodesAST)adaptor.create(INIT47) - ; - adaptor.addChild(root_0, INIT47_tree); - - - string_literal48=(Token)match(input,15,FOLLOW_15_in_construtorDefault572); - string_literal48_tree = - (BytecodesAST)adaptor.create(string_literal48) - ; - adaptor.addChild(root_0, string_literal48_tree); - - - VOID49=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault574); - VOID49_tree = - (BytecodesAST)adaptor.create(VOID49) - ; - adaptor.addChild(root_0, VOID49_tree); - - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "construtorDefault" - - - public static class tipo_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:1: tipo : ( INT | VOID | 'L' ID ); - public final BytecodesParser.tipo_return tipo() throws RecognitionException { - BytecodesParser.tipo_return retval = new BytecodesParser.tipo_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token INT50=null; - Token VOID51=null; - Token char_literal52=null; - Token ID53=null; - - BytecodesAST INT50_tree=null; - BytecodesAST VOID51_tree=null; - BytecodesAST char_literal52_tree=null; - BytecodesAST ID53_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:6: ( INT | VOID | 'L' ID ) - int alt8=3; - switch ( input.LA(1) ) { - case INT: - { - alt8=1; - } - break; - case VOID: - { - alt8=2; - } - break; - case 22: - { - alt8=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); - - throw nvae; - - } - - switch (alt8) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:8: INT - { - root_0 = (BytecodesAST)adaptor.nil(); - - - INT50=(Token)match(input,INT,FOLLOW_INT_in_tipo586); - INT50_tree = - (BytecodesAST)adaptor.create(INT50) - ; - adaptor.addChild(root_0, INT50_tree); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:14: VOID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - VOID51=(Token)match(input,VOID,FOLLOW_VOID_in_tipo590); - VOID51_tree = - (BytecodesAST)adaptor.create(VOID51) - ; - adaptor.addChild(root_0, VOID51_tree); - - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:54:21: 'L' ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - char_literal52=(Token)match(input,22,FOLLOW_22_in_tipo594); - char_literal52_tree = - (BytecodesAST)adaptor.create(char_literal52) - ; - adaptor.addChild(root_0, char_literal52_tree); - - - ID53=(Token)match(input,ID,FOLLOW_ID_in_tipo595); - ID53_tree = - (BytecodesAST)adaptor.create(ID53) - ; - adaptor.addChild(root_0, ID53_tree); - - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "tipo" - - - public static class aritmetica_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); - public final BytecodesParser.aritmetica_return aritmetica() throws RecognitionException { - BytecodesParser.aritmetica_return retval = new BytecodesParser.aritmetica_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token a=null; - - BytecodesAST a_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt9=7; - switch ( input.LA(1) ) { - case 30: - { - alt9=1; - } - break; - case 68: - { - alt9=2; - } - break; - case 58: - { - alt9=3; - } - break; - case 39: - { - alt9=4; - } - break; - case 62: - { - alt9=5; - } - break; - case 52: - { - alt9=6; - } - break; - case 59: - { - alt9=7; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); - - throw nvae; - - } - - switch (alt9) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:56:14: a= 'iadd' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,30,FOLLOW_30_in_aritmetica608); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:57:14: a= 'isub' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,68,FOLLOW_68_in_aritmetica629); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:58:14: a= 'imul' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,58,FOLLOW_58_in_aritmetica650); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:59:14: a= 'idiv' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,39,FOLLOW_39_in_aritmetica671); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:60:14: a= 'irem' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,62,FOLLOW_62_in_aritmetica692); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:61:14: a= 'iinc' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,52,FOLLOW_52_in_aritmetica713); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:62:14: a= 'ineg' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,59,FOLLOW_59_in_aritmetica734); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "aritmetica" - - - public static class load_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:65:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); - public final BytecodesParser.load_return load() throws RecognitionException, LabelException { - BytecodesParser.load_return retval = new BytecodesParser.load_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token a=null; - Token INTEIRO54=null; - Token INTEIRO55=null; - Token INTEIRO56=null; - - BytecodesAST a_tree=null; - BytecodesAST INTEIRO54_tree=null; - BytecodesAST INTEIRO55_tree=null; - BytecodesAST INTEIRO56_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:65:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt10=18; - switch ( input.LA(1) ) { - case 38: - { - alt10=1; - } - break; - case 32: - { - alt10=2; - } - break; - case 33: - { - alt10=3; - } - break; - case 34: - { - alt10=4; - } - break; - case 35: - { - alt10=5; - } - break; - case 36: - { - alt10=6; - } - break; - case 37: - { - alt10=7; - } - break; - case 54: - { - alt10=8; - } - break; - case 55: - { - alt10=9; - } - break; - case 56: - { - alt10=10; - } - break; - case 57: - { - alt10=11; - } - break; - case 53: - { - alt10=12; - } - break; - case 70: - { - alt10=13; - } - break; - case 23: - { - alt10=14; - } - break; - case 24: - { - alt10=15; - } - break; - case 25: - { - alt10=16; - } - break; - case 26: - { - alt10=17; - } - break; - case 27: - { - alt10=18; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 10, 0, input); - - throw nvae; - - } - - switch (alt10) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:65:8: a= 'iconst_m1' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,38,FOLLOW_38_in_load771); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:66:8: a= 'iconst_0' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,32,FOLLOW_32_in_load785); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:67:8: a= 'iconst_1' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,33,FOLLOW_33_in_load800); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:68:8: a= 'iconst_2' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,34,FOLLOW_34_in_load815); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:69:8: a= 'iconst_3' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,35,FOLLOW_35_in_load830); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:70:8: a= 'iconst_4' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,36,FOLLOW_36_in_load844); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:71:8: a= 'iconst_5' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,37,FOLLOW_37_in_load858); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:72:8: a= 'iload_0' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,54,FOLLOW_54_in_load872); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:73:8: a= 'iload_1' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,55,FOLLOW_55_in_load887); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:74:8: a= 'iload_2' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,56,FOLLOW_56_in_load902); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:75:8: a= 'iload_3' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,57,FOLLOW_57_in_load917); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:76:8: a= 'iload' INTEIRO - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,53,FOLLOW_53_in_load932); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - INTEIRO54=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load934); - INTEIRO54_tree = - (BytecodesAST)adaptor.create(INTEIRO54) - ; - adaptor.addChild(root_0, INTEIRO54_tree); - - - escreverOpcode(a, INTEIRO54); - - } - break; - case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:77:8: a= 'ldc' INTEIRO - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,70,FOLLOW_70_in_load949); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - INTEIRO55=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load951); - INTEIRO55_tree = - (BytecodesAST)adaptor.create(INTEIRO55) - ; - adaptor.addChild(root_0, INTEIRO55_tree); - - - escreverOpcode(a, INTEIRO55); - - } - break; - case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:78:8: a= 'aload' INTEIRO - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,23,FOLLOW_23_in_load966); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - INTEIRO56=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load968); - INTEIRO56_tree = - (BytecodesAST)adaptor.create(INTEIRO56) - ; - adaptor.addChild(root_0, INTEIRO56_tree); - - - } - break; - case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:79:8: a= 'aload_0' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,24,FOLLOW_24_in_load981); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - } - break; - case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:80:8: a= 'aload_1' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,25,FOLLOW_25_in_load994); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - } - break; - case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:81:8: a= 'aload_2' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,26,FOLLOW_26_in_load1007); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - } - break; - case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:82:8: a= 'aload_3' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,27,FOLLOW_27_in_load1020); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "load" - - - public static class store_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:85:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); - public final BytecodesParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { - BytecodesParser.store_return retval = new BytecodesParser.store_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token a=null; - Token INTEIRO57=null; - - BytecodesAST a_tree=null; - BytecodesAST INTEIRO57_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:85:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) - int alt11=5; - switch ( input.LA(1) ) { - case 64: - { - alt11=1; - } - break; - case 65: - { - alt11=2; - } - break; - case 66: - { - alt11=3; - } - break; - case 67: - { - alt11=4; - } - break; - case 63: - { - alt11=5; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 11, 0, input); - - throw nvae; - - } - - switch (alt11) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:85:9: a= 'istore_0' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,64,FOLLOW_64_in_store1043); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - verificarAumentoMemoriaGlobal(a); - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:86:9: a= 'istore_1' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,65,FOLLOW_65_in_store1059); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - verificarAumentoMemoriaGlobal(a); - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:87:9: a= 'istore_2' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,66,FOLLOW_66_in_store1075); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - verificarAumentoMemoriaGlobal(a); - - } - break; - case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:88:9: a= 'istore_3' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,67,FOLLOW_67_in_store1091); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - verificarAumentoMemoriaGlobal(a); - - } - break; - case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:89:9: a= 'istore' INTEIRO - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,63,FOLLOW_63_in_store1107); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - INTEIRO57=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1109); - INTEIRO57_tree = - (BytecodesAST)adaptor.create(INTEIRO57) - ; - adaptor.addChild(root_0, INTEIRO57_tree); - - - verificarAumentoMemoriaGlobal(a, INTEIRO57); - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "store" - - - public static class logica_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:92:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); - public final BytecodesParser.logica_return logica() throws RecognitionException { - BytecodesParser.logica_return retval = new BytecodesParser.logica_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token a=null; - - BytecodesAST a_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:92:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt12=3; - switch ( input.LA(1) ) { - case 31: - { - alt12=1; - } - break; - case 61: - { - alt12=2; - } - break; - case 69: - { - alt12=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); - - throw nvae; - - } - - switch (alt12) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:92:10: a= 'iand' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,31,FOLLOW_31_in_logica1130); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:93:10: a= 'ior' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,61,FOLLOW_61_in_logica1147); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:94:10: a= 'ixor' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,69,FOLLOW_69_in_logica1164); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode(a); - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "logica" - - - public static class desvio_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:97:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); - public final BytecodesParser.desvio_return desvio() throws RecognitionException, LabelException { - BytecodesParser.desvio_return retval = new BytecodesParser.desvio_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token a=null; - Token b=null; - - BytecodesAST a_tree=null; - BytecodesAST b_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:97:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt13=13; - switch ( input.LA(1) ) { - case 46: - { - alt13=1; - } - break; - case 51: - { - alt13=2; - } - break; - case 50: - { - alt13=3; - } - break; - case 47: - { - alt13=4; - } - break; - case 48: - { - alt13=5; - } - break; - case 49: - { - alt13=6; - } - break; - case 40: - { - alt13=7; - } - break; - case 45: - { - alt13=8; - } - break; - case 44: - { - alt13=9; - } - break; - case 41: - { - alt13=10; - } - break; - case 42: - { - alt13=11; - } - break; - case 43: - { - alt13=12; - } - break; - case 29: - { - alt13=13; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); - - throw nvae; - - } - - switch (alt13) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:97:10: a= 'ifeq' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,46,FOLLOW_46_in_desvio1186); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1192); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:98:10: a= 'ifne' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,51,FOLLOW_51_in_desvio1209); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1215); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:99:10: a= 'iflt' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,50,FOLLOW_50_in_desvio1232); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1238); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:100:10: a= 'ifge' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,47,FOLLOW_47_in_desvio1255); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1261); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:101:10: a= 'ifgt' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,48,FOLLOW_48_in_desvio1278); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1284); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:102:10: a= 'ifle' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,49,FOLLOW_49_in_desvio1301); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1307); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:103:10: a= 'if_icmpeq' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,40,FOLLOW_40_in_desvio1324); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1330); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:104:10: a= 'if_icmpne' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,45,FOLLOW_45_in_desvio1347); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1353); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:105:10: a= 'if_icmplt' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,44,FOLLOW_44_in_desvio1370); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1376); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:106:10: a= 'if_icmpge' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,41,FOLLOW_41_in_desvio1393); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1399); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:107:10: a= 'if_icmpgt' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,42,FOLLOW_42_in_desvio1416); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1422); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:108:10: a= 'if_icmple' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,43,FOLLOW_43_in_desvio1439); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1445); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\bytecodeassembler\\gramaticas\\Bytecodes.g:109:10: a= 'goto' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,29,FOLLOW_29_in_desvio1462); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1468); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); - - - escreverOpcode(a, b); - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "desvio" - - // Delegated rules - - - - - public static final BitSet FOLLOW_comando_in_programa59 = new BitSet(new long[]{0xFFFFFFFFFF850842L,0x00000000000007FFL}); - public static final BitSet FOLLOW_label_in_comando79 = new BitSet(new long[]{0xFFFFFFFFFF850800L,0x00000000000007FFL}); - public static final BitSet FOLLOW_instrucao_in_comando81 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando85 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label107 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_label109 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao119 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao123 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao127 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_load_in_instrucao131 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_store_in_instrucao135 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_desvio_in_instrucao139 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_logica_in_instrucao143 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_71_in_instrucao166 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_72_in_instrucao188 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_73_in_instrucao212 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao232 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_definicaoClasse268 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse270 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse272 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_16_in_definicaoClasse309 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse311 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse313 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse315 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse317 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_18_in_definicaoClasse375 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse377 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_19_in_superClasse406 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_superClasse408 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_membroClasse425 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_membroClasse427 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_membroClasse429 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_membroClasse431 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_manipulacaoObjetos450 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos452 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos454 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos456 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos458 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_manipulacaoObjetos481 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos483 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos485 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos487 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos489 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_manipulacaoObjetos512 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos514 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos516 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos518 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_15_in_manipulacaoObjetos520 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos522 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault570 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_15_in_construtorDefault572 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_VOID_in_construtorDefault574 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo586 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo590 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_22_in_tipo594 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_tipo595 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_aritmetica608 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_aritmetica629 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_aritmetica650 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_aritmetica671 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_aritmetica692 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_aritmetica713 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_aritmetica734 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load771 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_load785 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load800 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load815 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load830 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load844 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load858 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load872 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load887 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load902 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load917 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_load932 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load934 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_load949 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load951 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_load966 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load968 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load981 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load994 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load1007 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load1020 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_store1043 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_store1059 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_store1075 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_store1091 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_store1107 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_store1109 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_logica1130 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_logica1147 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_logica1164 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1186 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1192 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1209 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1215 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1232 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1238 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1255 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1261 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1278 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1284 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1301 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1307 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_desvio1324 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1330 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_desvio1347 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1353 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_desvio1370 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1376 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_desvio1393 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1399 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_desvio1416 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1422 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_desvio1439 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1445 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_desvio1462 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1468 = new BitSet(new long[]{0x0000000000000002L}); - -} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Bytecodes.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g similarity index 79% rename from src/br/ufpb/iged/interpretador/gramaticas/Bytecodes.g rename to src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index bb28b42..7581270 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Bytecodes.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -1,15 +1,4 @@ -grammar Bytecodes; - -options { - output = AST; - ASTLabelType = BytecodesAST; -} - -tokens { - MEMBRO_CLASSE; - FIELD_DECL; - EXTENDS; -} +grammar Assembler; @members { @@ -28,28 +17,16 @@ comando : (label instrucao | instrucao); label : a = ID ':' {definirLabel($a);}; -instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica +instrucao: (manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' | a = 'pop' {escreverOpcode($a);} | a = 'pop2'{escreverOpcode($a);} )? NOVA_LINHA; - -definicaoClasse : '.class' ID membroClasse+ -> ^('.class' ID ^(MEMBRO_CLASSE membroClasse+)) - | '.class' ID NOVA_LINHA superClasse membroClasse+ - -> ^('.class' ID superClasse ^(MEMBRO_CLASSE membroClasse+)) - | '.method' construtorDefault - ; - -superClasse : '.super' ID -> ^(EXTENDS ID) ; - -membroClasse : '.field' ID tipo NOVA_LINHA -> ^(FIELD_DECL ID tipo) ; manipulacaoObjetos : 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ; - -construtorDefault : INIT '()' VOID ; tipo : INT | VOID | 'L'ID ; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Classe.g b/src/br/ufpb/iged/interpretador/gramaticas/Classe.g new file mode 100644 index 0000000..edb35e6 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/gramaticas/Classe.g @@ -0,0 +1,36 @@ +grammar Classe; + +options { + output = AST; + ASTLabelType = BytecodesAST; +} + +tokens { + MEMBRO_CLASSE; + FIELD_DECL; + EXTENDS; +} + +definicaoClasse : '.class' ID membroClasse+ -> ^('.class' ID ^(MEMBRO_CLASSE membroClasse+)) + | '.class' ID NOVA_LINHA superClasse membroClasse+ + -> ^('.class' ID superClasse ^(MEMBRO_CLASSE membroClasse+)) + | '.method' construtorDefault + ; + +superClasse : '.super' ID -> ^(EXTENDS ID) ; + +membroClasse : '.field' ID tipo NOVA_LINHA -> ^(FIELD_DECL ID tipo) ; + +construtorDefault : INIT '()' VOID ; + +tipo : INT | VOID | 'L'ID ; + +INIT : ''; + +INT : 'I'; + +VOID : 'V'; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +NOVA_LINHA : ';'; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 1b6c423..51dd016 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -20,9 +20,6 @@ options { topdown : entraNaClasse | declaracaoVariavel ; - -bottomup : saiDaClasse - ; // START: class entraNaClasse @@ -34,8 +31,8 @@ entraNaClasse if ( $sup!=null ) $sup.escopo = escopoAtual; SimboloClasse classe = new SimboloClasse($nome.text,escopoAtual,null); - classe.def = $nome; // point from symbol table into AST - $nome.simbolo = classe; // point from AST into symbol table + //classe.def = $nome; // point from symbol table into AST + //$nome.simbolo = classe; // point from AST into symbol table escopoAtual.definir(classe); // def class in current scope escopoAtual = classe; // set current scope to class scope } @@ -47,18 +44,10 @@ declaracaoVariavel // global, parameter, or local variable : ^((FIELD_DECL) var=. ID .?) { System.out.println("line "+$ID.getLine()+": def "+$ID.text); - $var.escopo = escopoAtual; + //$var.escopo = escopoAtual; SimboloVariavel variavel = new SimboloVariavel($ID.text,null); - variavel.def = $ID; // track AST location of def's ID - $ID.simbolo = variavel; // track in AST + //variavel.def = $ID; // track AST location of def's ID + //$ID.simbolo = variavel; // track in AST escopoAtual.definir(variavel); } ; - -saiDaClasse - : '.class' - { - System.out.println("members: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope - } - ; diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 4731b0e..af99152 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -1,33 +1,79 @@ package br.ufpb.iged.interpretador.principal; +import java.io.File; import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; import java.util.Scanner; +import org.antlr.runtime.ANTLRFileStream; import org.antlr.runtime.ANTLRInputStream; +import org.antlr.runtime.CharStream; import org.antlr.runtime.CommonTokenStream; +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.RuleReturnScope; +import org.antlr.runtime.Token; +import org.antlr.runtime.TokenStream; +import org.antlr.runtime.tree.CommonTree; +import org.antlr.runtime.tree.CommonTreeNodeStream; +import org.antlr.runtime.tree.TreeAdaptor; +import org.antlr.runtime.tree.CommonTreeAdaptor; import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesLexer; +import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerLexer; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesErrorNode; +import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; +import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +import br.ufpb.iged.interpretador.symboltable.parser.ClasseLexer; +import br.ufpb.iged.interpretador.symboltable.parser.ClasseParser; +import br.ufpb.iged.interpretador.symboltable.parser.Def; public class Interpretador { public static final String NOME_ARQUIVO_ENTRADA = "entrada.txt"; + + static TabelaSimbolos tabelaSimbolos; + + static EscopoGlobal global; - public static final int TAMANHO_INICIAL_PILHA_OPERANDOS = 100; + /*public static final int TAMANHO_INICIAL_PILHA_OPERANDOS = 100; - int ip = 0; + int global.ip = 0; - byte[] codigo; + byte[] global.codigo; int tamanhoCodigo; - Object[] memoriaGlobal; + Object[] global.memoriaGlobal; - Object[] pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA_OPERANDOS]; + Object[] global.pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA_OPERANDOS]; - int sp = -1; + int global.sp = -1;*/ + + public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { + + public Object create(Token token) { + return new BytecodesAST(token); + } + + public Object dupNode(Object t) { + if ( t==null ) { + return null; + } + return create(((BytecodesAST)t).token); + } + + public Object errorNode(TokenStream input, Token start, Token stop, + RecognitionException e) + { + BytecodesErrorNode t = new BytecodesErrorNode(input, start, stop, e); + //System.out.println("returning error node '"+t+"' @index="+input.index()); + return t; + } + + }; public static void main(String[] args) throws Exception { @@ -43,17 +89,28 @@ public static boolean carregar(Interpretador interp, InputStream input) throws Exception { try { - BytecodesLexer assemblerLexer = new BytecodesLexer( + AssemblerLexer assemblerLexer = new AssemblerLexer( new ANTLRInputStream(input)); CommonTokenStream tokens = new CommonTokenStream(assemblerLexer); BytecodeAssembler assembler = new BytecodeAssembler(tokens, Definicao.instrucoes); + //assembler.setTreeAdaptor(bytecodesAdaptor); + //RuleReturnScope r = assembler.programa(); assembler.programa(); + //assembler.programa(); if (assembler.getNumberOfSyntaxErrors() > 0) return false; - interp.codigo = assembler.obterCodigoMaquina(); - interp.tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); - interp.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; + //CommonTree tree = (CommonTree)r.getTree(); + //CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); + //nos.setTokenStream(tokens); + tabelaSimbolos = new TabelaSimbolos(); // init symbol table + //Def def = new Def(nos, tabelaSimbolos); // create Def phase + //def.downup(tree); // Do pass 1 + //nos.reset(); // rewind AST node stream to root + global = tabelaSimbolos.global; + global.codigo = assembler.obterCodigoMaquina(); + global.tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); + global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; } finally { input.close(); @@ -61,6 +118,39 @@ public static boolean carregar(Interpretador interp, InputStream input) return true; } + + public static void carregarClasses() throws IOException, RecognitionException { + + File file = new File(".\\"); + + String[] arquivos = file.list(); + + int i; + + for (i = 0; i < arquivos.length; i++) { + + if (arquivos[i].endsWith(".class")) { + + CharStream input = new ANTLRFileStream(arquivos[i]); + + ClasseLexer lexer = new ClasseLexer(input); + CommonTokenStream tokens = new CommonTokenStream(lexer); + ClasseParser parser = new ClasseParser(tokens); + parser.setTreeAdaptor(bytecodesAdaptor); + RuleReturnScope r = parser.definicaoClasse(); // launch parser by calling start rule + CommonTree tree = (CommonTree)r.getTree(); // get tree result + + CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); + nos.setTokenStream(tokens); + Def def = new Def(nos, tabelaSimbolos); // create Def phase + def.downup(tree); // Do pass 1 + nos.reset(); // rewind AST node stream to root + + } + + } + + } protected void cpu() { @@ -70,11 +160,11 @@ protected void cpu() { boolean desvio; - while (ip < tamanhoCodigo) { + while (global.ip < global.tamanhoCodigo) { desvio = false; - opcode = codigo[ip]; + opcode = global.codigo[global.ip]; if (opcode < 0) @@ -89,33 +179,33 @@ protected void cpu() { break; case Definicao.POP: - sp-- ; + global.sp-- ; break; case Definicao.POP2: - sp -= 2 ; + global.sp -= 2 ; break; // operaçőes aritméticas case Definicao.INEG: { - op1 = (Integer) pilhaOperandos[sp]; + op1 = (Integer) global.pilhaOperandos[global.sp]; - pilhaOperandos[sp] = 0 - op1; + global.pilhaOperandos[global.sp] = 0 - op1; }; break; case Definicao.IADD: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; - pilhaOperandos[sp] = op1 + op2; + global.pilhaOperandos[global.sp] = op1 + op2; } ; @@ -123,13 +213,13 @@ protected void cpu() { case Definicao.ISUB: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; - pilhaOperandos[sp] = op1 - op2; + global.pilhaOperandos[global.sp] = op1 - op2; } ; @@ -137,13 +227,13 @@ protected void cpu() { case Definicao.IMUL: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; - pilhaOperandos[sp] = op1 * op2; + global.pilhaOperandos[global.sp] = op1 * op2; } ; @@ -151,13 +241,13 @@ protected void cpu() { case Definicao.IDIV: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; - pilhaOperandos[sp] = op1 / op2; + global.pilhaOperandos[global.sp] = op1 / op2; } ; @@ -165,13 +255,13 @@ protected void cpu() { case Definicao.IREM: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; - pilhaOperandos[sp] = op1 % op2; + global.pilhaOperandos[global.sp] = op1 % op2; } ; @@ -179,9 +269,9 @@ protected void cpu() { case Definicao.IINC: { - op1 = (Integer) pilhaOperandos[sp]; + op1 = (Integer) global.pilhaOperandos[global.sp]; - pilhaOperandos[sp] = ++op1; + global.pilhaOperandos[global.sp] = ++op1; } ; @@ -191,9 +281,9 @@ protected void cpu() { case Definicao.ICONST0: { - sp++; + global.sp++; - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; } ; @@ -201,9 +291,9 @@ protected void cpu() { case Definicao.ICONST1: { - sp++; + global.sp++; - pilhaOperandos[sp] = 1; + global.pilhaOperandos[global.sp] = 1; } ; @@ -211,9 +301,9 @@ protected void cpu() { case Definicao.ICONST2: { - sp++; + global.sp++; - pilhaOperandos[sp] = 2; + global.pilhaOperandos[global.sp] = 2; } ; @@ -221,9 +311,9 @@ protected void cpu() { case Definicao.ICONST3: { - sp++; + global.sp++; - pilhaOperandos[sp] = 3; + global.pilhaOperandos[global.sp] = 3; } ; @@ -231,9 +321,9 @@ protected void cpu() { case Definicao.ICONST4: { - sp++; + global.sp++; - pilhaOperandos[sp] = 4; + global.pilhaOperandos[global.sp] = 4; } ; @@ -241,9 +331,9 @@ protected void cpu() { case Definicao.ICONST5: { - sp++; + global.sp++; - pilhaOperandos[sp] = 5; + global.pilhaOperandos[global.sp] = 5; } ; @@ -251,9 +341,9 @@ protected void cpu() { case Definicao.ICONSTM1: { - sp++; + global.sp++; - pilhaOperandos[sp] = -1; + global.pilhaOperandos[global.sp] = -1; } ; @@ -261,11 +351,11 @@ protected void cpu() { case Definicao.LDC: { - sp++; + global.sp++; op1 = obterOperandoInteiro(); - pilhaOperandos[sp] = op1; + global.pilhaOperandos[global.sp] = op1; } ; @@ -275,9 +365,9 @@ protected void cpu() { case Definicao.ILOAD0: { - sp++; + global.sp++; - pilhaOperandos[sp] = memoriaGlobal[0]; + global.pilhaOperandos[global.sp] = global.memoriaGlobal[0]; } ; @@ -285,9 +375,9 @@ protected void cpu() { case Definicao.ILOAD1: { - sp++; + global.sp++; - pilhaOperandos[sp] = memoriaGlobal[1]; + global.pilhaOperandos[global.sp] = global.memoriaGlobal[1]; } ; @@ -295,9 +385,9 @@ protected void cpu() { case Definicao.ILOAD2: { - sp++; + global.sp++; - pilhaOperandos[sp] = memoriaGlobal[2]; + global.pilhaOperandos[global.sp] = global.memoriaGlobal[2]; } ; @@ -305,9 +395,9 @@ protected void cpu() { case Definicao.ILOAD3: { - sp++; + global.sp++; - pilhaOperandos[sp] = memoriaGlobal[3]; + global.pilhaOperandos[global.sp] = global.memoriaGlobal[3]; } ; @@ -315,11 +405,11 @@ protected void cpu() { case Definicao.ILOAD: { - sp++; + global.sp++; op1 = obterOperandoInteiro(); - pilhaOperandos[sp] = memoriaGlobal[op1]; + global.pilhaOperandos[global.sp] = global.memoriaGlobal[op1]; } ; @@ -329,9 +419,9 @@ protected void cpu() { case Definicao.ISTORE0: { - memoriaGlobal[0] = pilhaOperandos[sp]; + global.memoriaGlobal[0] = global.pilhaOperandos[global.sp]; - sp--; + global.sp--; } ; @@ -339,9 +429,9 @@ protected void cpu() { case Definicao.ISTORE1: { - memoriaGlobal[1] = pilhaOperandos[sp]; + global.memoriaGlobal[1] = global.pilhaOperandos[global.sp]; - sp--; + global.sp--; } ; @@ -349,9 +439,9 @@ protected void cpu() { case Definicao.ISTORE2: { - memoriaGlobal[2] = pilhaOperandos[sp]; + global.memoriaGlobal[2] = global.pilhaOperandos[global.sp]; - sp--; + global.sp--; } ; @@ -359,9 +449,9 @@ protected void cpu() { case Definicao.ISTORE3: { - memoriaGlobal[3] = pilhaOperandos[sp]; + global.memoriaGlobal[3] = global.pilhaOperandos[global.sp]; - sp--; + global.sp--; } ; @@ -371,9 +461,9 @@ protected void cpu() { op1 = obterOperandoInteiro(); - memoriaGlobal[op1] = pilhaOperandos[sp]; + global.memoriaGlobal[op1] = global.pilhaOperandos[global.sp]; - sp--; + global.sp--; } ; @@ -383,13 +473,13 @@ protected void cpu() { case Definicao.IAND: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; op1 = op1 & op2; - sp--; + global.sp--; } ; @@ -397,13 +487,13 @@ protected void cpu() { case Definicao.IOR: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; op1 = op1 | op2; - sp--; + global.sp--; } ; @@ -411,13 +501,13 @@ protected void cpu() { case Definicao.IXOR: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; op1 = op1 ^ op2; - sp--; + global.sp--; } ; @@ -427,7 +517,7 @@ protected void cpu() { case Definicao.IFEQ: { - op1 = (Integer) pilhaOperandos[sp]; + op1 = (Integer) global.pilhaOperandos[global.sp]; if (op1 == 0) { @@ -437,7 +527,7 @@ protected void cpu() { } else - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; } ; @@ -445,7 +535,7 @@ protected void cpu() { case Definicao.IFNE: { - op1 = (Integer) pilhaOperandos[sp]; + op1 = (Integer) global.pilhaOperandos[global.sp]; if (op1 != 0) { @@ -455,7 +545,7 @@ protected void cpu() { } else - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; } ; @@ -463,7 +553,7 @@ protected void cpu() { case Definicao.IFLT: { - op1 = (Integer) pilhaOperandos[sp]; + op1 = (Integer) global.pilhaOperandos[global.sp]; if (op1 > 0) { @@ -473,7 +563,7 @@ protected void cpu() { } else - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; } ; @@ -481,7 +571,7 @@ protected void cpu() { case Definicao.IFGE: { - op1 = (Integer) pilhaOperandos[sp]; + op1 = (Integer) global.pilhaOperandos[global.sp]; if (op1 >= 0) { @@ -491,7 +581,7 @@ protected void cpu() { } else - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; } ; @@ -499,7 +589,7 @@ protected void cpu() { case Definicao.IFGT: { - op1 = (Integer) pilhaOperandos[sp]; + op1 = (Integer) global.pilhaOperandos[global.sp]; if (op1 > 0) { @@ -509,7 +599,7 @@ protected void cpu() { } else - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; } ; @@ -517,7 +607,7 @@ protected void cpu() { case Definicao.IFLE: { - op1 = (Integer) pilhaOperandos[sp]; + op1 = (Integer) global.pilhaOperandos[global.sp]; if (op1 <= 0) { @@ -527,7 +617,7 @@ protected void cpu() { } else - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; } ; @@ -535,11 +625,11 @@ protected void cpu() { case Definicao.IF_ICMPEQ: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; if (op1 == op2) { @@ -549,9 +639,9 @@ protected void cpu() { } else { - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; - ip += 4; + global.ip += 4; } @@ -561,11 +651,11 @@ protected void cpu() { case Definicao.IF_ICMPNE: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; if (op1 != op2) { @@ -575,9 +665,9 @@ protected void cpu() { } else { - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; - ip += 4; + global.ip += 4; } @@ -587,11 +677,11 @@ protected void cpu() { case Definicao.IF_ICMPLT: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; if (op1 < op2) { @@ -601,9 +691,9 @@ protected void cpu() { } else { - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; - ip += 4; + global.ip += 4; } @@ -613,11 +703,11 @@ protected void cpu() { case Definicao.IF_ICMPGE: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; if (op1 >= op2) { @@ -627,9 +717,9 @@ protected void cpu() { } else { - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; - ip += 4; + global.ip += 4; } @@ -639,11 +729,11 @@ protected void cpu() { case Definicao.IF_ICMPGT: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; if (op1 > op2) { @@ -653,9 +743,9 @@ protected void cpu() { } else { - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; - ip += 4; + global.ip += 4; } @@ -665,11 +755,11 @@ protected void cpu() { case Definicao.IF_ICMPLE: { - op1 = (Integer) pilhaOperandos[sp - 1]; + op1 = (Integer) global.pilhaOperandos[global.sp - 1]; - op2 = (Integer) pilhaOperandos[sp]; + op2 = (Integer) global.pilhaOperandos[global.sp]; - sp--; + global.sp--; if (op1 <= op2) { @@ -679,9 +769,9 @@ protected void cpu() { } else { - pilhaOperandos[sp] = 0; + global.pilhaOperandos[global.sp] = 0; - ip += 4; + global.ip += 4; } @@ -694,7 +784,7 @@ protected void cpu() { op1 = obterOperandoInteiro(); - ip = op1; + global.ip = op1; desvio = true; @@ -706,7 +796,7 @@ protected void cpu() { if (!desvio) - ip++; + global.ip++; // Para testes exibirTela(); @@ -717,19 +807,19 @@ protected void cpu() { protected void desviar() { - pilhaOperandos[sp] = 1; + global.pilhaOperandos[global.sp] = 1; int op = obterOperandoInteiro(); - ip = op; + global.ip = op; } protected int obterOperandoInteiro() { - int op = BytecodeAssembler.obterInteiro(codigo, ip + 1); + int op = BytecodeAssembler.obterInteiro(global.codigo, global.ip + 1); - ip += 4; + global.ip += 4; return op; @@ -746,31 +836,31 @@ protected void exibirTela() { int i; - System.out.println("IP: " + ip); + System.out.println("IP: " + global.ip); - System.out.println("SP: " + sp); + System.out.println("SP: " + global.sp); System.out.print("Memória do código: "); - for (i = 0; i < codigo.length; i++) + for (i = 0; i < global.codigo.length; i++) - System.out.print(codigo[i] + " "); + System.out.print(global.codigo[i] + " "); System.out.print("\n"); System.out.print("Memória global das variáveis: "); - for (i = 0; i < memoriaGlobal.length; i++) + for (i = 0; i < global.memoriaGlobal.length; i++) - System.out.print(memoriaGlobal[i] + " "); + System.out.print(global.memoriaGlobal[i] + " "); System.out.print("\n"); System.out.print("Pilha: "); - for (i = 0; i < pilhaOperandos.length; i++) + for (i = 0; i < global.pilhaOperandos.length; i++) - System.out.print(pilhaOperandos[i] + " "); + System.out.print(global.pilhaOperandos[i] + " "); System.out.print("\n\n"); diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.java b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.java new file mode 100644 index 0000000..277e948 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.java @@ -0,0 +1,13 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.Token; +import org.antlr.runtime.TokenStream; + +public class BytecodesErrorNode extends BytecodesAST { + public BytecodesErrorNode(TokenStream input, Token start, Token stop, + RecognitionException e) + { + super(start); // no need to record anything for this example + } +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java index 4e80b2a..3dadb2e 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java @@ -2,6 +2,20 @@ public class EscopoGlobal extends EscopoBase { + public static final int TAMANHO_INICIAL_PILHA_OPERANDOS = 100; + + public int ip = 0; + + public byte[] codigo; + + public int tamanhoCodigo; + + public Object[] memoriaGlobal; + + public Object[] pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA_OPERANDOS]; + + public int sp = -1; + public EscopoGlobal() { super(null); } @@ -10,4 +24,5 @@ public String obterNomeEscopo() { return "global"; } + } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Classe.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Classe.tokens new file mode 100644 index 0000000..dc36f00 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Classe.tokens @@ -0,0 +1,20 @@ +T__12=12 +T__13=13 +T__14=14 +T__15=15 +T__16=16 +T__17=17 +EXTENDS=4 +FIELD_DECL=5 +ID=6 +INIT=7 +INT=8 +MEMBRO_CLASSE=9 +NOVA_LINHA=10 +VOID=11 +'()'=12 +'.class'=13 +'.field'=14 +'.method'=15 +'.super'=16 +'L'=17 diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseLexer.java b/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseLexer.java new file mode 100644 index 0000000..610010f --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseLexer.java @@ -0,0 +1,574 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g 2012-06-21 00:00:41 + +package br.ufpb.iged.interpretador.symboltable.parser; + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public class ClasseLexer extends Lexer { + public static final int EOF=-1; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int MEMBRO_CLASSE=9; + public static final int NOVA_LINHA=10; + public static final int VOID=11; + + // delegates + // delegators + public Lexer[] getDelegates() { + return new Lexer[] {}; + } + + public ClasseLexer() {} + public ClasseLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public ClasseLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g"; } + + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { + try { + int _type = T__12; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:2:7: ( '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:2:9: '()' + { + match("()"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:3:7: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:3:9: '.class' + { + match(".class"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:4:7: ( '.field' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:4:9: '.field' + { + match(".field"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:5:7: ( '.method' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:5:9: '.method' + { + match(".method"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__15" + + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { + try { + int _type = T__16; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:6:7: ( '.super' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:6:9: '.super' + { + match(".super"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__16" + + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { + try { + int _type = T__17; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:7:7: ( 'L' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:7:9: 'L' + { + match('L'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__17" + + // $ANTLR start "INIT" + public final void mINIT() throws RecognitionException { + try { + int _type = INIT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:28:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:28:8: '' + { + match(""); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INIT" + + // $ANTLR start "INT" + public final void mINT() throws RecognitionException { + try { + int _type = INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:30:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:30:7: 'I' + { + match('I'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INT" + + // $ANTLR start "VOID" + public final void mVOID() throws RecognitionException { + try { + int _type = VOID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:32:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:32:8: 'V' + { + match('V'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "VOID" + + // $ANTLR start "ID" + public final void mID() throws RecognitionException { + try { + int _type = ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:34:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:34:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + { + if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:34:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='.'||(LA1_0 >= '0' && LA1_0 <= '9')||(LA1_0 >= 'A' && LA1_0 <= 'Z')||(LA1_0 >= 'a' && LA1_0 <= 'z')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g: + { + if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + + + } + break; + + default : + break loop1; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ID" + + // $ANTLR start "NOVA_LINHA" + public final void mNOVA_LINHA() throws RecognitionException { + try { + int _type = NOVA_LINHA; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:36:12: ( ';' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:36:14: ';' + { + match(';'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NOVA_LINHA" + + public void mTokens() throws RecognitionException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | INIT | INT | VOID | ID | NOVA_LINHA ) + int alt2=11; + switch ( input.LA(1) ) { + case '(': + { + alt2=1; + } + break; + case '.': + { + switch ( input.LA(2) ) { + case 'c': + { + alt2=2; + } + break; + case 'f': + { + alt2=3; + } + break; + case 'm': + { + alt2=4; + } + break; + case 's': + { + alt2=5; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 2, 2, input); + + throw nvae; + + } + + } + break; + case 'L': + { + int LA2_3 = input.LA(2); + + if ( (LA2_3=='.'||(LA2_3 >= '0' && LA2_3 <= '9')||(LA2_3 >= 'A' && LA2_3 <= 'Z')||(LA2_3 >= 'a' && LA2_3 <= 'z')) ) { + alt2=10; + } + else { + alt2=6; + } + } + break; + case '<': + { + alt2=7; + } + break; + case 'I': + { + int LA2_5 = input.LA(2); + + if ( (LA2_5=='.'||(LA2_5 >= '0' && LA2_5 <= '9')||(LA2_5 >= 'A' && LA2_5 <= 'Z')||(LA2_5 >= 'a' && LA2_5 <= 'z')) ) { + alt2=10; + } + else { + alt2=8; + } + } + break; + case 'V': + { + int LA2_6 = input.LA(2); + + if ( (LA2_6=='.'||(LA2_6 >= '0' && LA2_6 <= '9')||(LA2_6 >= 'A' && LA2_6 <= 'Z')||(LA2_6 >= 'a' && LA2_6 <= 'z')) ) { + alt2=10; + } + else { + alt2=9; + } + } + break; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'J': + case 'K': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': + { + alt2=10; + } + break; + case ';': + { + alt2=11; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + + } + + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:10: T__12 + { + mT__12(); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:16: T__13 + { + mT__13(); + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:22: T__14 + { + mT__14(); + + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:28: T__15 + { + mT__15(); + + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:34: T__16 + { + mT__16(); + + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:40: T__17 + { + mT__17(); + + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:46: INIT + { + mINIT(); + + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:51: INT + { + mINT(); + + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:55: VOID + { + mVOID(); + + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:60: ID + { + mID(); + + + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:63: NOVA_LINHA + { + mNOVA_LINHA(); + + + } + break; + + } + + } + + + + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseParser.java b/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseParser.java new file mode 100644 index 0000000..c9f4f58 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseParser.java @@ -0,0 +1,840 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g 2012-06-21 00:00:41 + +package br.ufpb.iged.interpretador.symboltable.parser; + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +import org.antlr.runtime.tree.*; + +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public class ClasseParser extends Parser { + public static final String[] tokenNames = new String[] { + "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "MEMBRO_CLASSE", "NOVA_LINHA", "VOID", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'L'" + }; + + public static final int EOF=-1; + public static final int T__12=12; + public static final int T__13=13; + public static final int T__14=14; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int MEMBRO_CLASSE=9; + public static final int NOVA_LINHA=10; + public static final int VOID=11; + + // delegates + public Parser[] getDelegates() { + return new Parser[] {}; + } + + // delegators + + + public ClasseParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public ClasseParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + } + +protected TreeAdaptor adaptor = new CommonTreeAdaptor(); + +public void setTreeAdaptor(TreeAdaptor adaptor) { + this.adaptor = adaptor; +} +public TreeAdaptor getTreeAdaptor() { + return adaptor; +} + public String[] getTokenNames() { return ClasseParser.tokenNames; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g"; } + + + public static class definicaoClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "definicaoClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:1: definicaoClasse : ( '.class' ID ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); + public final ClasseParser.definicaoClasse_return definicaoClasse() throws RecognitionException { + ClasseParser.definicaoClasse_return retval = new ClasseParser.definicaoClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal1=null; + Token ID2=null; + Token string_literal4=null; + Token ID5=null; + Token NOVA_LINHA6=null; + Token string_literal9=null; + ClasseParser.membroClasse_return membroClasse3 =null; + + ClasseParser.superClasse_return superClasse7 =null; + + ClasseParser.membroClasse_return membroClasse8 =null; + + ClasseParser.construtorDefault_return construtorDefault10 =null; + + + BytecodesAST string_literal1_tree=null; + BytecodesAST ID2_tree=null; + BytecodesAST string_literal4_tree=null; + BytecodesAST ID5_tree=null; + BytecodesAST NOVA_LINHA6_tree=null; + BytecodesAST string_literal9_tree=null; + RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_13=new RewriteRuleTokenStream(adaptor,"token 13"); + RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); + RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:17: ( '.class' ID ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) + int alt3=3; + int LA3_0 = input.LA(1); + + if ( (LA3_0==13) ) { + int LA3_1 = input.LA(2); + + if ( (LA3_1==ID) ) { + int LA3_3 = input.LA(3); + + if ( (LA3_3==NOVA_LINHA) ) { + alt3=2; + } + else if ( (LA3_3==14) ) { + alt3=1; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 3, 3, input); + + throw nvae; + + } + } + else { + NoViableAltException nvae = + new NoViableAltException("", 3, 1, input); + + throw nvae; + + } + } + else if ( (LA3_0==15) ) { + alt3=3; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + + } + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:19: '.class' ID ( membroClasse )+ + { + string_literal1=(Token)match(input,13,FOLLOW_13_in_definicaoClasse53); + stream_13.add(string_literal1); + + + ID2=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse55); + stream_ID.add(ID2); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:31: ( membroClasse )+ + int cnt1=0; + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==14) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:31: membroClasse + { + pushFollow(FOLLOW_membroClasse_in_definicaoClasse57); + membroClasse3=membroClasse(); + + state._fsp--; + + stream_membroClasse.add(membroClasse3.getTree()); + + } + break; + + default : + if ( cnt1 >= 1 ) break loop1; + EarlyExitException eee = + new EarlyExitException(1, input); + throw eee; + } + cnt1++; + } while (true); + + + // AST REWRITE + // elements: membroClasse, ID, 13 + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 14:46: -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:49: ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_13.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:63: ^( MEMBRO_CLASSE ( membroClasse )+ ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") + , root_2); + + if ( !(stream_membroClasse.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_membroClasse.hasNext() ) { + adaptor.addChild(root_2, stream_membroClasse.nextTree()); + + } + stream_membroClasse.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:15:19: '.class' ID NOVA_LINHA superClasse ( membroClasse )+ + { + string_literal4=(Token)match(input,13,FOLLOW_13_in_definicaoClasse94); + stream_13.add(string_literal4); + + + ID5=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse96); + stream_ID.add(ID5); + + + NOVA_LINHA6=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse98); + stream_NOVA_LINHA.add(NOVA_LINHA6); + + + pushFollow(FOLLOW_superClasse_in_definicaoClasse100); + superClasse7=superClasse(); + + state._fsp--; + + stream_superClasse.add(superClasse7.getTree()); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:15:54: ( membroClasse )+ + int cnt2=0; + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==14) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:15:54: membroClasse + { + pushFollow(FOLLOW_membroClasse_in_definicaoClasse102); + membroClasse8=membroClasse(); + + state._fsp--; + + stream_membroClasse.add(membroClasse8.getTree()); + + } + break; + + default : + if ( cnt2 >= 1 ) break loop2; + EarlyExitException eee = + new EarlyExitException(2, input); + throw eee; + } + cnt2++; + } while (true); + + + // AST REWRITE + // elements: ID, membroClasse, superClasse, 13 + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 16:19: -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:16:22: ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_13.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_1, stream_superClasse.nextTree()); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:16:48: ^( MEMBRO_CLASSE ( membroClasse )+ ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") + , root_2); + + if ( !(stream_membroClasse.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_membroClasse.hasNext() ) { + adaptor.addChild(root_2, stream_membroClasse.nextTree()); + + } + stream_membroClasse.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:17:19: '.method' construtorDefault + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal9=(Token)match(input,15,FOLLOW_15_in_definicaoClasse160); + string_literal9_tree = + (BytecodesAST)adaptor.create(string_literal9) + ; + adaptor.addChild(root_0, string_literal9_tree); + + + pushFollow(FOLLOW_construtorDefault_in_definicaoClasse162); + construtorDefault10=construtorDefault(); + + state._fsp--; + + adaptor.addChild(root_0, construtorDefault10.getTree()); + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "definicaoClasse" + + + public static class superClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "superClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:20:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + public final ClasseParser.superClasse_return superClasse() throws RecognitionException { + ClasseParser.superClasse_return retval = new ClasseParser.superClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal11=null; + Token ID12=null; + + BytecodesAST string_literal11_tree=null; + BytecodesAST ID12_tree=null; + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:20:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:20:15: '.super' ID + { + string_literal11=(Token)match(input,16,FOLLOW_16_in_superClasse203); + stream_16.add(string_literal11); + + + ID12=(Token)match(input,ID,FOLLOW_ID_in_superClasse205); + stream_ID.add(ID12); + + + // AST REWRITE + // elements: ID + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 20:27: -> ^( EXTENDS ID ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:20:30: ^( EXTENDS ID ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(EXTENDS, "EXTENDS") + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "superClasse" + + + public static class membroClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "membroClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:22:1: membroClasse : '.field' ID tipo NOVA_LINHA -> ^( FIELD_DECL ID tipo ) ; + public final ClasseParser.membroClasse_return membroClasse() throws RecognitionException { + ClasseParser.membroClasse_return retval = new ClasseParser.membroClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal13=null; + Token ID14=null; + Token NOVA_LINHA16=null; + ClasseParser.tipo_return tipo15 =null; + + + BytecodesAST string_literal13_tree=null; + BytecodesAST ID14_tree=null; + BytecodesAST NOVA_LINHA16_tree=null; + RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_14=new RewriteRuleTokenStream(adaptor,"token 14"); + RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:22:14: ( '.field' ID tipo NOVA_LINHA -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:22:16: '.field' ID tipo NOVA_LINHA + { + string_literal13=(Token)match(input,14,FOLLOW_14_in_membroClasse222); + stream_14.add(string_literal13); + + + ID14=(Token)match(input,ID,FOLLOW_ID_in_membroClasse224); + stream_ID.add(ID14); + + + pushFollow(FOLLOW_tipo_in_membroClasse226); + tipo15=tipo(); + + state._fsp--; + + stream_tipo.add(tipo15.getTree()); + + NOVA_LINHA16=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_membroClasse228); + stream_NOVA_LINHA.add(NOVA_LINHA16); + + + // AST REWRITE + // elements: ID, tipo + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 22:44: -> ^( FIELD_DECL ID tipo ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:22:47: ^( FIELD_DECL ID tipo ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(FIELD_DECL, "FIELD_DECL") + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_1, stream_tipo.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "membroClasse" + + + public static class construtorDefault_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "construtorDefault" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:24:1: construtorDefault : INIT '()' VOID ; + public final ClasseParser.construtorDefault_return construtorDefault() throws RecognitionException { + ClasseParser.construtorDefault_return retval = new ClasseParser.construtorDefault_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token INIT17=null; + Token string_literal18=null; + Token VOID19=null; + + BytecodesAST INIT17_tree=null; + BytecodesAST string_literal18_tree=null; + BytecodesAST VOID19_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:24:19: ( INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:24:21: INIT '()' VOID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + INIT17=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault247); + INIT17_tree = + (BytecodesAST)adaptor.create(INIT17) + ; + adaptor.addChild(root_0, INIT17_tree); + + + string_literal18=(Token)match(input,12,FOLLOW_12_in_construtorDefault249); + string_literal18_tree = + (BytecodesAST)adaptor.create(string_literal18) + ; + adaptor.addChild(root_0, string_literal18_tree); + + + VOID19=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault251); + VOID19_tree = + (BytecodesAST)adaptor.create(VOID19) + ; + adaptor.addChild(root_0, VOID19_tree); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "construtorDefault" + + + public static class tipo_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "tipo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:1: tipo : ( INT | VOID | 'L' ID ); + public final ClasseParser.tipo_return tipo() throws RecognitionException { + ClasseParser.tipo_return retval = new ClasseParser.tipo_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token INT20=null; + Token VOID21=null; + Token char_literal22=null; + Token ID23=null; + + BytecodesAST INT20_tree=null; + BytecodesAST VOID21_tree=null; + BytecodesAST char_literal22_tree=null; + BytecodesAST ID23_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:6: ( INT | VOID | 'L' ID ) + int alt4=3; + switch ( input.LA(1) ) { + case INT: + { + alt4=1; + } + break; + case VOID: + { + alt4=2; + } + break; + case 17: + { + alt4=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; + + } + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:8: INT + { + root_0 = (BytecodesAST)adaptor.nil(); + + + INT20=(Token)match(input,INT,FOLLOW_INT_in_tipo261); + INT20_tree = + (BytecodesAST)adaptor.create(INT20) + ; + adaptor.addChild(root_0, INT20_tree); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:14: VOID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + VOID21=(Token)match(input,VOID,FOLLOW_VOID_in_tipo265); + VOID21_tree = + (BytecodesAST)adaptor.create(VOID21) + ; + adaptor.addChild(root_0, VOID21_tree); + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:21: 'L' ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + char_literal22=(Token)match(input,17,FOLLOW_17_in_tipo269); + char_literal22_tree = + (BytecodesAST)adaptor.create(char_literal22) + ; + adaptor.addChild(root_0, char_literal22_tree); + + + ID23=(Token)match(input,ID,FOLLOW_ID_in_tipo270); + ID23_tree = + (BytecodesAST)adaptor.create(ID23) + ; + adaptor.addChild(root_0, ID23_tree); + + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "tipo" + + // Delegated rules + + + + + public static final BitSet FOLLOW_13_in_definicaoClasse53 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse55 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse57 = new BitSet(new long[]{0x0000000000004002L}); + public static final BitSet FOLLOW_13_in_definicaoClasse94 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse96 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse98 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse100 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse102 = new BitSet(new long[]{0x0000000000004002L}); + public static final BitSet FOLLOW_15_in_definicaoClasse160 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse162 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_16_in_superClasse203 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_superClasse205 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_14_in_membroClasse222 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_membroClasse224 = new BitSet(new long[]{0x0000000000020900L}); + public static final BitSet FOLLOW_tipo_in_membroClasse226 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_membroClasse228 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault247 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_construtorDefault249 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_VOID_in_construtorDefault251 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo261 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo265 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_tipo269 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_tipo270 = new BitSet(new long[]{0x0000000000000002L}); + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index 3457022..41fc2e7 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-17 00:17:36 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-21 00:00:40 package br.ufpb.iged.interpretador.symboltable.parser; @@ -120,52 +120,22 @@ else if ( (LA1_0==FIELD_DECL) ) { - // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:1: bottomup : saiDaClasse ; - public final void bottomup() throws RecognitionException { - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:10: ( saiDaClasse ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:12: saiDaClasse - { - pushFollow(FOLLOW_saiDaClasse_in_bottomup80); - saiDaClasse(); - - state._fsp--; - if (state.failed) return ; - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "bottomup" - - - // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:25:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,7,FOLLOW_7_in_entraNaClasse115); if (state.failed) return ; + match(input,7,FOLLOW_7_in_entraNaClasse89); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse119); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse93); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:28: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:28: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -190,12 +160,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:29: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse123); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse97); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse127); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse101); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -218,8 +188,8 @@ public final void entraNaClasse() throws RecognitionException { if ( sup!=null ) sup.escopo = escopoAtual; SimboloClasse classe = new SimboloClasse((nome!=null?nome.getText():null),escopoAtual,null); - classe.def = nome; // point from symbol table into AST - nome.simbolo = classe; // point from AST into symbol table + //classe.def = nome; // point from symbol table into AST + //nome.simbolo = classe; // point from AST into symbol table escopoAtual.definir(classe); // def class in current scope escopoAtual = classe; // set current scope to class scope } @@ -242,19 +212,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:1: declaracaoVariavel : ^( ( FIELD_DECL ) var= . ID ( . )? ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:43:1: declaracaoVariavel : ^( ( FIELD_DECL ) var= . ID ( . )? ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST var=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:5: ( ^( ( FIELD_DECL ) var= . ID ( . )? ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:9: ^( ( FIELD_DECL ) var= . ID ( . )? ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:5: ( ^( ( FIELD_DECL ) var= . ID ( . )? ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:9: ^( ( FIELD_DECL ) var= . ID ( . )? ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:11: ( FIELD_DECL ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:12: FIELD_DECL + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:11: ( FIELD_DECL ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:12: FIELD_DECL { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel167); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel141); if (state.failed) return ; } @@ -264,9 +234,9 @@ public final void declaracaoVariavel() throws RecognitionException { matchAny(input); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel174); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel148); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:33: ( . )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:33: ( . )? int alt3=2; int LA3_0 = input.LA(1); @@ -275,7 +245,7 @@ public final void declaracaoVariavel() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:33: . + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:33: . { matchAny(input); if (state.failed) return ; @@ -290,10 +260,10 @@ public final void declaracaoVariavel() throws RecognitionException { if ( state.backtracking==1 ) { System.out.println("line "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); - var.escopo = escopoAtual; + //var.escopo = escopoAtual; SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),null); - variavel.def = ID1; // track AST location of def's ID - ID1.simbolo = variavel; // track in AST + //variavel.def = ID1; // track AST location of def's ID + //ID1.simbolo = variavel; // track in AST escopoAtual.definir(variavel); } @@ -312,37 +282,6 @@ public final void declaracaoVariavel() throws RecognitionException { } // $ANTLR end "declaracaoVariavel" - - - // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:58:1: saiDaClasse : '.class' ; - public final void saiDaClasse() throws RecognitionException { - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:59:5: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:59:9: '.class' - { - match(input,7,FOLLOW_7_in_saiDaClasse207); if (state.failed) return ; - - if ( state.backtracking==1 ) { - System.out.println("members: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "saiDaClasse" - // Delegated rules @@ -350,13 +289,11 @@ public final void saiDaClasse() throws RecognitionException { public static final BitSet FOLLOW_entraNaClasse_in_topdown43 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declaracaoVariavel_in_topdown55 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDaClasse_in_bottomup80 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_7_in_entraNaClasse115 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse119 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse123 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse127 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel167 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel174 = new BitSet(new long[]{0x00000000000000F8L}); - public static final BitSet FOLLOW_7_in_saiDaClasse207 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_7_in_entraNaClasse89 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse93 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse97 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse101 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel141 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel148 = new BitSet(new long[]{0x00000000000000F8L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java deleted file mode 100644 index e37e3dd..0000000 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java +++ /dev/null @@ -1,369 +0,0 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-06-17 00:17:37 - -package br.ufpb.iged.interpretador.symboltable.parser; - -import org.antlr.runtime.*; -import org.antlr.runtime.tree.*; - -import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; -import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; -import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; -import br.ufpb.iged.interpretador.symboltable.classes.Tipo; - -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; - -@SuppressWarnings({"all", "warnings", "unchecked"}) -public class Ref extends TreeFilter { - public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "MEMBRO_CLASSE", "'.class'", "'int'" - }; - - public static final int EOF=-1; - public static final int T__8=8; - public static final int T__9=9; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int MEMBRO_CLASSE=7; - - // delegates - public TreeFilter[] getDelegates() { - return new TreeFilter[] {}; - } - - // delegators - - - public Ref(TreeNodeStream input) { - this(input, new RecognizerSharedState()); - } - public Ref(TreeNodeStream input, RecognizerSharedState state) { - super(input, state); - } - - public String[] getTokenNames() { return Ref.tokenNames; } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g"; } - - - TabelaSimbolos tabelaSimbolos; - public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { - this(input); - this.tabelaSimbolos = tabelaSimbolos; - } - - - - - // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:18:1: topdown : ( entraNaClasse | declaracaoVariavel ); - public final void topdown() throws RecognitionException { - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:19:5: ( entraNaClasse | declaracaoVariavel ) - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0==8) ) { - alt1=1; - } - else if ( (LA1_0==FIELD_DECL) ) { - alt1=2; - } - else { - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - - throw nvae; - - } - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:19:9: entraNaClasse - { - pushFollow(FOLLOW_entraNaClasse_in_topdown50); - entraNaClasse(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:20:9: declaracaoVariavel - { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown60); - declaracaoVariavel(); - - state._fsp--; - if (state.failed) return ; - - } - break; - - } - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "topdown" - - - - // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:23:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE ( . )* ) ) ; - public final void entraNaClasse() throws RecognitionException { - BytecodesAST nome=null; - BytecodesAST sup=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE ( . )* ) ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE ( . )* ) ) - { - match(input,8,FOLLOW_8_in_entraNaClasse80); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse84); if (state.failed) return ; - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:28: ( ^( EXTENDS sup= ID ) )? - int alt2=2; - int LA2_0 = input.LA(1); - - if ( (LA2_0==EXTENDS) ) { - alt2=1; - } - switch (alt2) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:29: ^( EXTENDS sup= ID ) - { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse88); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse92); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - } - break; - - } - - - match(input,MEMBRO_CLASSE,FOLLOW_MEMBRO_CLASSE_in_entraNaClasse98); if (state.failed) return ; - - if ( input.LA(1)==Token.DOWN ) { - match(input, Token.DOWN, null); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:65: ( . )* - loop3: - do { - int alt3=2; - int LA3_0 = input.LA(1); - - if ( ((LA3_0 >= EXTENDS && LA3_0 <= 9)) ) { - alt3=1; - } - else if ( (LA3_0==UP) ) { - alt3=2; - } - - - switch (alt3) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:65: . - { - matchAny(input); if (state.failed) return ; - - } - break; - - default : - break loop3; - } - } while (true); - - - match(input, Token.UP, null); if (state.failed) return ; - } - - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - if ( sup!=null ) { - // look up superclass (if any) - sup.simbolo = sup.escopo.resolver((sup!=null?sup.getText():null)); - ((SimboloClasse)nome.simbolo).superClasse = - (SimboloClasse)sup.simbolo; // set superclass - System.out.println("line "+nome.getLine()+": set "+(nome!=null?nome.getText():null)+ - " super to "+((SimboloClasse)nome.simbolo).superClasse.nome); - } - else { - System.out.println("line "+nome.getLine()+": set "+(nome!=null?nome.getText():null)); - } - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "entraNaClasse" - - - - // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:1: declaracaoVariavel : ^( ( FIELD_DECL ) tipo ID ( . )? ) ; - public final void declaracaoVariavel() throws RecognitionException { - BytecodesAST ID1=null; - Ref.tipo_return tipo2 =null; - - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:5: ( ^( ( FIELD_DECL ) tipo ID ( . )? ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:9: ^( ( FIELD_DECL ) tipo ID ( . )? ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:11: ( FIELD_DECL ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:12: FIELD_DECL - { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel139); if (state.failed) return ; - - } - - - match(input, Token.DOWN, null); if (state.failed) return ; - pushFollow(FOLLOW_tipo_in_declaracaoVariavel142); - tipo2=tipo(); - - state._fsp--; - if (state.failed) return ; - - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel144); if (state.failed) return ; - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:32: ( . )? - int alt4=2; - int LA4_0 = input.LA(1); - - if ( ((LA4_0 >= EXTENDS && LA4_0 <= 9)) ) { - alt4=1; - } - switch (alt4) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:32: . - { - matchAny(input); if (state.failed) return ; - - } - break; - - } - - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - ID1.simbolo.tipo = (tipo2!=null?tipo2.tsym:null); // set return type of variable - System.out.println("line "+ID1.getLine()+": set var type "+ID1.simbolo); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "declaracaoVariavel" - - - public static class tipo_return extends TreeRuleReturnScope { - public Tipo tsym; - }; - - - // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:48:1: tipo returns [Tipo tsym] : ( 'int' | ID ); - public final Ref.tipo_return tipo() throws RecognitionException { - Ref.tipo_return retval = new Ref.tipo_return(); - retval.start = input.LT(1); - - - - // get scope from AST; use to resolve type name and save it in AST - ((BytecodesAST)retval.start).simbolo = ((BytecodesAST)retval.start).escopo.resolver(((BytecodesAST)retval.start).getText()); - retval.tsym = (Tipo)((BytecodesAST)retval.start).simbolo; // return Type from this rule - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:54:5: ( 'int' | ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g: - { - if ( input.LA(1)==ID||input.LA(1)==9 ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "tipo" - - // Delegated rules - - - - - public static final BitSet FOLLOW_entraNaClasse_in_topdown50 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown60 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_8_in_entraNaClasse80 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse84 = new BitSet(new long[]{0x0000000000000090L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse88 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse92 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_MEMBRO_CLASSE_in_entraNaClasse98 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel139 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_tipo_in_declaracaoVariavel142 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel144 = new BitSet(new long[]{0x00000000000003F8L}); - -} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens deleted file mode 100644 index 217b780..0000000 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens +++ /dev/null @@ -1,8 +0,0 @@ -T__8=8 -T__9=9 -EXTENDS=4 -FIELD_DECL=5 -ID=6 -MEMBRO_CLASSE=7 -'.class'=8 -'int'=9 diff --git a/src/br/ufpb/iged/interpretador/testes/Test.java b/src/br/ufpb/iged/interpretador/testes/Test.java index 7014126..22a8aac 100755 --- a/src/br/ufpb/iged/interpretador/testes/Test.java +++ b/src/br/ufpb/iged/interpretador/testes/Test.java @@ -4,8 +4,8 @@ import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesLexer; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.BytecodesParser; +import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerLexer; +import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; public class Test { @@ -13,11 +13,11 @@ public static void main(String[] args) throws Exception { CharStream entrada = new ANTLRFileStream("entrada.txt"); - BytecodesLexer lexer = new BytecodesLexer(entrada); + AssemblerLexer lexer = new AssemblerLexer(entrada); CommonTokenStream tokens = new CommonTokenStream(lexer); - BytecodesParser parser = new BytecodeAssembler(tokens, Definicao.instrucoes); + AssemblerParser parser = new BytecodeAssembler(tokens, Definicao.instrucoes); parser.programa(); for (int i = 0; i < BytecodeAssembler.codigo.length ; i++) { From 45c17d6f0755250773b440f00e52c12468a8beeb Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Fri, 22 Jun 2012 00:54:13 -0300 Subject: [PATCH 18/79] commit --- Main.class | 52 + Teste.class | 6 + .../asm/BytecodeAssembler.class | Bin 6162 -> 6166 bytes .../bytecodeassembler/asm/Definicao.class | Bin 3553 -> 3571 bytes .../principal/Interpretador.class | Bin 11494 -> 11835 bytes .../ufpb/iged/interpretador/testes/Test.class | Bin 2197 -> 2403 bytes build.xml | 3 - entrada.txt | 53 - .../asm/BytecodeAssembler.java | 2 +- .../bytecodeassembler/parser/Assembler.tokens | 145 +- .../parser/AssemblerLexer.java | 1215 ++++---- .../parser/AssemblerParser.java | 2721 +++++++++++++---- .../iged/interpretador/gramaticas/Assembler.g | 39 +- .../iged/interpretador/gramaticas/Classe.g | 36 - .../principal/Interpretador.java | 129 +- .../symboltable/parser/Classe.tokens | 20 - .../symboltable/parser/ClasseLexer.java | 574 ---- .../symboltable/parser/ClasseParser.java | 840 ----- .../interpretador/symboltable/parser/Def.java | 2 +- 19 files changed, 3094 insertions(+), 2743 deletions(-) create mode 100755 Main.class create mode 100644 Teste.class delete mode 100755 entrada.txt delete mode 100644 src/br/ufpb/iged/interpretador/gramaticas/Classe.g delete mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Classe.tokens delete mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/ClasseLexer.java delete mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/ClasseParser.java diff --git a/Main.class b/Main.class new file mode 100755 index 0000000..32ffc57 --- /dev/null +++ b/Main.class @@ -0,0 +1,52 @@ + ldc 3 + ldc 6 + iadd + istore_0 + iconst_2 + iconst_3 + imul + istore_1 + iconst_2 + iconst_1 + isub + istore_2 + ldc 25 + ldc 5 + idiv + istore_3 + ldc 7 + iconst_2 + irem + istore 4 +L1: iload_1 + iload_2 + iadd + istore 5 + iload 4 + iload 5 + pop + iinc + istore 6 + ldc 14 + ineg + istore 7 + ldc 25 + ldc 34 + if_icmpgt L1 + pop + iconst_2 + ldc 10 + imul +L2: ineg + ldc 4 + pop2 + ldc 20 + ldc 44 + isub + ldc -26 + if_icmplt L2 + ldc 23 + ldc -23 + iadd + ifeq L1 + \ No newline at end of file diff --git a/Teste.class b/Teste.class new file mode 100644 index 0000000..46dd33a --- /dev/null +++ b/Teste.class @@ -0,0 +1,6 @@ +.class Teste +.field abc I +.field xyz I +.method ()V +aload_0 +invokespecial Teste/()V diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 0c7bb41eaeff49acccc0783f0ba1314073781ef2..dd80e0bfd1a16f2829e4fb2921948ce45682376b 100644 GIT binary patch delta 145 zcmbPaFwJ1YRYB9e49pBH3=9lD%(mJ)8KM{&{D9O1Mut^DF(V*m17c1f)`9XtVzQIj zge<*u7&;lO8M+u88TuH!8745u17)-zW-)jHML@uZVKzfC10w?yP-G6!EGD2?&J1%I Wtbn!#0_C|GnEx{9Z0;25WCZ}2YZa3K delta 141 zcmbPcFv(!URYAj@49pBH3=9k&%(mJ)8KM{&{D9O1Mut^DF+Cs#$*}>k29z&3nM=sh zOM{`4!JMIs!Iq(q!JT0OgFH}H3t|p~7lSvD2Q-mkHbXH3BLfqI8^au+8B7eE4E79j X8LWUd1_I@|8JPbvXl(8k>SP4~Ps|l0 diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index d2878e517a944bd374990aa123b7c6c54f809f72..36526598a79ae0b145b8aa1394313334276ac896 100644 GIT binary patch delta 1632 zcmYk5Npw?H7{~wbrAco>tT$DtG@z)c6!d_gE}T|uJodQh5y+~9Bu!IaleA4Mmf@9B zoWKF&1cfpW&eW<=DuW;nIL~(J)~zeg@p$}(+Sf(%{=eV%-S6JM;g95B$=Kz8PoD*_ z3RB~;DK{CSJjX%ZLl3vMa*jK2*S2wLsQ&Ht)O9;pz1!YhJsFB8N)AHBQaJ_>J#qA+ zuX-u8*zb1`Eo4f?zDj%d?FNrJFw?lg;IV+Hwke>M23rDJW#9*Nhrzah?ljm=8++Ld zZ@hyye%wLRlGd*DKzg}XoeIVM2U^w`Jn0}@@Ji{d!P5@vCAQNUcFh1C;n^9W6Fffy zbbuEeL<)VCQg6=SMc!UA4|q8sn(%5sG-5B4udOs>ADy&ZDjST^J*7Y$2PqZOSvu8W zPJR6w432W@?)MCibIKM53{Gd)8Im>*WeVZjhx=)R48WX z-o3}MBiCc_futh+4r?D8Sq1=`V3sk}c zep@OcG!T(ey}-tL0V6PI1g!RLw%Ta5bF0->tGz>Zx;ZLKhpn-VHH@^SY)r%xB<8A^ zBf@{mHtYDf@J^dlyh899yFjr)@Hx9s@k+tnH0>^(W<^x(Jz7r)zGUxJY!rOO-luq# z;2wK_4L;otd$sVWU907}g8S_{#d(4U?0Ur}!9zByc#Yr@+o?ET@R;=!n*~qUvSL#3 zHCs_!FbSWY${YWWUMS_a5*X6@wZiWtFsyu?@OT0v%8P_2Y$Sm_dK<16^FEusYHkoy zV>7DeMlm0;*;n)B;Vc$4$!fng-6ZA=n=v&vi#f;UfSOyxe8T3Snk8Z`vN@!tMa(5O zht(_<^EsO%HLT!wW0|NgSsm4;Tg80E<^-Dwd^0Yu_;=Ow@tyvk7~PN^||REOM$MzM#DKoF4U@9ECi!AxXo~WM-PC6=j)H ziW`bc+}O7&?pi8Dso=iV9rs5cefG@9x*zFIyA~p@=O-}$KZQY5>obvMLCr$K z$$Rclt+#TE!iWVmi#IE54T)+GhIFgK_K?;n>DRp*$j9tB%1JoP(Y2nG-H2Qq#*}s$G+z)9Hy&Eff|lda&iUQ)p3)C zhBqmkG^sLNR(Q#zf-|CU%A{(sqVTFoZn32Bx=A^g&V7>xJ6=`cZKJk&)j(m=M90l5 zOqtYQ98@^N$)(@W;8dgzTKcwWY1GoWLrbfc-ayYbC-~G|I;LA2*qzDhB#VbgED+Jc zB6vhElJP0#$8?9_WsHyOPQm$%`}AVL%Nd`dX}8NX&EgroPU>mKXZ0O|t&Gp>I|Z*` zd{M7&AfU^kuVg-;H%NH_;~~9Ku#NGE?h|ZhJf;hRS23Q@n*|p#PUy1WBF2}sFWABO zimnNEP9vbZ^4kBS7jyZIG)AR`D@a-f&)!)}IruGJZ)1T@n=N>ln8uu*W`)tbGPi{J=9nZw0+_@@}Auju!do$_9R%U4+oQ ege3Wt)NHLcXQ=RDm diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 0a3525a3741700d53566762b40f506d45e7ad5b9..a7bc7435fa6128f6fc88873ae4f1693230e05209 100644 GIT binary patch literal 11835 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 Nl2@UboQwDP`4=6=7{~ws literal 11494 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 diff --git a/bin/br/ufpb/iged/interpretador/testes/Test.class b/bin/br/ufpb/iged/interpretador/testes/Test.class index b940d825a10e2677ff1e50c4ba683be82afb5591..8b9d87045b22546dd3090df37acbc664226cefff 100644 GIT binary patch delta 531 zcmZ9IO-~bH6osF+otd{YP9hZXgAm$igJMz(@}-WTK>b7%9i<>D9ifgz+9Bg;;>v|C z+`sV$xNGjBr9SDrj2`o(840pc$6@XOELw!{sEWRGX0( zr`3SbGc@jUhO+`|Ia;ZQks!4==`cxIGW9<_iR;bK{VUate=%&nF?vbXCQO&DjaGW9m_qCs8&FUicOAG5nE0UU|OOliH3&?AJs4r4H Uq`p@-S>3L3m^Ew~^b=wK23>)2yZ`_I delta 456 zcmY+9O-~b16o#MM&di;T69dHtL;_tj7zk1grDze94?&PGsn{Ya3{b~bN=xwD|#Wi>5(J_H3jdz7hm(%{djugT_sm^xy>C_FruPYZ5hppK9_#(39OaUYThpi z0tT^=!^B4)3hV#;Nj8I?6-Ewen4 zqy=^79{EyyMyFKLm2%G0Dsx|V%|0PBlANGPorpShBtq)cYBvgk;q97hYDb3EhhV)b zN>}}nOQBOtEdBPPnzTDRf=P3a*glCLq~`az8!@{Mxc`lj@Mx8>Dw96qJ)HC(j zZr$vpo&;B!)%7LKT+&hf7lAw_qdSK=vdp8Mncx`<1ZZN2=e!_D8%fPAVsMKaEa7RL oWlc2_IMczFWJR(nX_T}`ZVHHM{*~Sc;Pd+O`2j(m>%1ZK5B$bk - - @@ -69,7 +67,6 @@ - diff --git a/entrada.txt b/entrada.txt deleted file mode 100755 index 9a7871f..0000000 --- a/entrada.txt +++ /dev/null @@ -1,53 +0,0 @@ - ldc 3; - ldc 6; - iadd; - istore_0; - iconst_2; - iconst_3; - imul; - istore_1; - iconst_2; - iconst_1; - isub; - istore_2; - ldc 25; - ldc 5; - idiv; - istore_3; - ldc 7; - iconst_2; - irem; - istore 4; -L1: iload_1; - iload_2; - iadd; - istore 5; - iload 4; - iload 5; - pop; - iinc; - istore 6; - ldc 14; - ineg; - istore 7; - ldc 25; - ldc 34; - if_icmpgt L1; - pop; - iconst_2; - ldc 10; - imul; -L2: ineg; - ldc 4; - pop2; - ldc 20; - ldc 44; - isub; - ldc -26; - if_icmplt L2; - ldc 23; - ldc -23; - iadd; - ifeq L1; - - \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index 02886e5..cad42df 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -134,7 +134,7 @@ protected void escreverOperando(Token token) throws LabelException { switch(token.getType()) { - case INT: valor = new Integer(operandoTxt);break; + case INTEIRO: valor = new Integer(operandoTxt);break; case ID: valor = obterEndereco(operandoTxt);break; } diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens index 6b6fc84..bbc8897 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens @@ -1,6 +1,3 @@ -T__12=12 -T__13=13 -T__14=14 T__15=15 T__16=16 T__17=17 @@ -54,67 +51,81 @@ T__64=64 T__65=65 T__66=66 T__67=67 -ID=4 -INIT=5 -INT=6 -INTEIRO=7 -NOVA_LINHA=8 -NULL=9 -VOID=10 -WS=11 -'()'=12 -'/'=13 -':'=14 -'L'=15 -'aload'=16 -'aload_0'=17 -'aload_1'=18 -'aload_2'=19 -'aload_3'=20 -'getfield'=21 -'goto'=22 -'iadd'=23 -'iand'=24 -'iconst_0'=25 -'iconst_1'=26 -'iconst_2'=27 -'iconst_3'=28 -'iconst_4'=29 -'iconst_5'=30 -'iconst_m1'=31 -'idiv'=32 -'if_icmpeq'=33 -'if_icmpge'=34 -'if_icmpgt'=35 -'if_icmple'=36 -'if_icmplt'=37 -'if_icmpne'=38 -'ifeq'=39 -'ifge'=40 -'ifgt'=41 -'ifle'=42 -'iflt'=43 -'ifne'=44 -'iinc'=45 -'iload'=46 -'iload_0'=47 -'iload_1'=48 -'iload_2'=49 -'iload_3'=50 -'imul'=51 -'ineg'=52 -'invokespecial'=53 -'ior'=54 -'irem'=55 -'istore'=56 -'istore_0'=57 -'istore_1'=58 -'istore_2'=59 -'istore_3'=60 -'isub'=61 -'ixor'=62 -'ldc'=63 -'nop'=64 -'pop'=65 -'pop2'=66 -'putfield'=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +EXTENDS=4 +FIELD_DECL=5 +ID=6 +INIT=7 +INT=8 +INTEIRO=9 +MEMBRO_CLASSE=10 +NOVA_LINHA=11 +NULL=12 +VOID=13 +WS=14 +'()'=15 +'.class'=16 +'.field'=17 +'.method'=18 +'.super'=19 +'/'=20 +':'=21 +'L'=22 +'aload'=23 +'aload_0'=24 +'aload_1'=25 +'aload_2'=26 +'aload_3'=27 +'getfield'=28 +'goto'=29 +'iadd'=30 +'iand'=31 +'iconst_0'=32 +'iconst_1'=33 +'iconst_2'=34 +'iconst_3'=35 +'iconst_4'=36 +'iconst_5'=37 +'iconst_m1'=38 +'idiv'=39 +'if_icmpeq'=40 +'if_icmpge'=41 +'if_icmpgt'=42 +'if_icmple'=43 +'if_icmplt'=44 +'if_icmpne'=45 +'ifeq'=46 +'ifge'=47 +'ifgt'=48 +'ifle'=49 +'iflt'=50 +'ifne'=51 +'iinc'=52 +'iload'=53 +'iload_0'=54 +'iload_1'=55 +'iload_2'=56 +'iload_3'=57 +'imul'=58 +'ineg'=59 +'invokespecial'=60 +'ior'=61 +'irem'=62 +'istore'=63 +'istore_0'=64 +'istore_1'=65 +'istore_2'=66 +'istore_3'=67 +'isub'=68 +'ixor'=69 +'ldc'=70 +'nop'=71 +'pop'=72 +'pop2'=73 +'putfield'=74 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index 666eb4d..aa71b39 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-21 00:00:38 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-21 23:43:38 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -10,9 +10,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; public static final int T__15=15; public static final int T__16=16; public static final int T__17=17; @@ -66,14 +63,24 @@ public class AssemblerLexer extends Lexer { public static final int T__65=65; public static final int T__66=66; public static final int T__67=67; - public static final int ID=4; - public static final int INIT=5; - public static final int INT=6; - public static final int INTEIRO=7; - public static final int NOVA_LINHA=8; - public static final int NULL=9; - public static final int VOID=10; - public static final int WS=11; + public static final int T__68=68; + public static final int T__69=69; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int T__73=73; + public static final int T__74=74; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int INTEIRO=9; + public static final int MEMBRO_CLASSE=10; + public static final int NOVA_LINHA=11; + public static final int NULL=12; + public static final int VOID=13; + public static final int WS=14; // delegates // delegators @@ -90,10 +97,10 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__12" - public final void mT__12() throws RecognitionException { + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { try { - int _type = T__12; + int _type = T__15; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:7: ( '()' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:9: '()' @@ -102,69 +109,6 @@ public final void mT__12() throws RecognitionException { - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__12" - - // $ANTLR start "T__13" - public final void mT__13() throws RecognitionException { - try { - int _type = T__13; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:7: ( '/' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:9: '/' - { - match('/'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__13" - - // $ANTLR start "T__14" - public final void mT__14() throws RecognitionException { - try { - int _type = T__14; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:7: ( ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:9: ':' - { - match(':'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__14" - - // $ANTLR start "T__15" - public final void mT__15() throws RecognitionException { - try { - int _type = T__15; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:7: ( 'L' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:9: 'L' - { - match('L'); - } state.type = _type; @@ -181,10 +125,10 @@ public final void mT__16() throws RecognitionException { try { int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( 'aload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: 'aload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:7: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:9: '.class' { - match("aload"); + match(".class"); @@ -204,10 +148,10 @@ public final void mT__17() throws RecognitionException { try { int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:7: ( '.field' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:9: '.field' { - match("aload_0"); + match(".field"); @@ -227,10 +171,10 @@ public final void mT__18() throws RecognitionException { try { int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:7: ( '.method' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:9: '.method' { - match("aload_1"); + match(".method"); @@ -250,10 +194,10 @@ public final void mT__19() throws RecognitionException { try { int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '.super' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '.super' { - match("aload_2"); + match(".super"); @@ -273,12 +217,10 @@ public final void mT__20() throws RecognitionException { try { int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '/' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '/' { - match("aload_3"); - - + match('/'); } @@ -296,12 +238,10 @@ public final void mT__21() throws RecognitionException { try { int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ':' { - match("getfield"); - - + match(':'); } @@ -319,12 +259,10 @@ public final void mT__22() throws RecognitionException { try { int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: 'goto' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( 'L' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: 'L' { - match("goto"); - - + match('L'); } @@ -342,10 +280,10 @@ public final void mT__23() throws RecognitionException { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( 'aload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: 'aload' { - match("iadd"); + match("aload"); @@ -365,10 +303,10 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: 'aload_0' { - match("iand"); + match("aload_0"); @@ -388,10 +326,10 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: 'aload_1' { - match("iconst_0"); + match("aload_1"); @@ -411,10 +349,10 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'aload_2' { - match("iconst_1"); + match("aload_2"); @@ -434,10 +372,10 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload_3' { - match("iconst_2"); + match("aload_3"); @@ -457,10 +395,10 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'getfield' { - match("iconst_3"); + match("getfield"); @@ -480,10 +418,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'goto' { - match("iconst_4"); + match("goto"); @@ -503,10 +441,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'iadd' { - match("iconst_5"); + match("iadd"); @@ -526,10 +464,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'iand' { - match("iconst_m1"); + match("iand"); @@ -549,10 +487,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'iconst_0' { - match("idiv"); + match("iconst_0"); @@ -572,10 +510,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'if_icmpeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'iconst_1' { - match("if_icmpeq"); + match("iconst_1"); @@ -595,10 +533,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'if_icmpge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'iconst_2' { - match("if_icmpge"); + match("iconst_2"); @@ -618,10 +556,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'if_icmpgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'iconst_3' { - match("if_icmpgt"); + match("iconst_3"); @@ -641,10 +579,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'if_icmple' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'iconst_4' { - match("if_icmple"); + match("iconst_4"); @@ -664,10 +602,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'if_icmplt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'iconst_5' { - match("if_icmplt"); + match("iconst_5"); @@ -687,10 +625,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'if_icmpne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'iconst_m1' { - match("if_icmpne"); + match("iconst_m1"); @@ -710,10 +648,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'ifeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'idiv' { - match("ifeq"); + match("idiv"); @@ -733,10 +671,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'ifge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'if_icmpeq' { - match("ifge"); + match("if_icmpeq"); @@ -756,10 +694,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'ifgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'if_icmpge' { - match("ifgt"); + match("if_icmpge"); @@ -779,10 +717,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'ifle' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'if_icmpgt' { - match("ifle"); + match("if_icmpgt"); @@ -802,10 +740,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iflt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'if_icmple' { - match("iflt"); + match("if_icmple"); @@ -825,10 +763,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'ifne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'if_icmplt' { - match("ifne"); + match("if_icmplt"); @@ -848,10 +786,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'if_icmpne' { - match("iinc"); + match("if_icmpne"); @@ -871,10 +809,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'ifeq' { - match("iload"); + match("ifeq"); @@ -894,10 +832,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'ifge' { - match("iload_0"); + match("ifge"); @@ -917,10 +855,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'ifgt' { - match("iload_1"); + match("ifgt"); @@ -940,10 +878,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'ifle' { - match("iload_2"); + match("ifle"); @@ -963,10 +901,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iflt' { - match("iload_3"); + match("iflt"); @@ -986,10 +924,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'ifne' { - match("imul"); + match("ifne"); @@ -1009,10 +947,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iinc' { - match("ineg"); + match("iinc"); @@ -1032,10 +970,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iload' { - match("invokespecial"); + match("iload"); @@ -1055,10 +993,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iload_0' { - match("ior"); + match("iload_0"); @@ -1078,10 +1016,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iload_1' { - match("irem"); + match("iload_1"); @@ -1101,10 +1039,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'istore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'iload_2' { - match("istore"); + match("iload_2"); @@ -1124,10 +1062,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'iload_3' { - match("istore_0"); + match("iload_3"); @@ -1147,10 +1085,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'imul' { - match("istore_1"); + match("imul"); @@ -1170,10 +1108,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ineg' { - match("istore_2"); + match("ineg"); @@ -1193,10 +1131,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'invokespecial' { - match("istore_3"); + match("invokespecial"); @@ -1216,10 +1154,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ior' { - match("isub"); + match("ior"); @@ -1239,10 +1177,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'irem' { - match("ixor"); + match("irem"); @@ -1262,10 +1200,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ldc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'istore' { - match("ldc"); + match("istore"); @@ -1285,10 +1223,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'istore_0' { - match("nop"); + match("istore_0"); @@ -1308,10 +1246,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'istore_1' { - match("pop"); + match("istore_1"); @@ -1331,10 +1269,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'istore_2' { - match("pop2"); + match("istore_2"); @@ -1354,10 +1292,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'putfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'istore_3' { - match("putfield"); + match("istore_3"); @@ -1372,13 +1310,174 @@ public final void mT__67() throws RecognitionException { } // $ANTLR end "T__67" + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { + try { + int _type = T__68; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'isub' + { + match("isub"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__68" + + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { + try { + int _type = T__69; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'ixor' + { + match("ixor"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__69" + + // $ANTLR start "T__70" + public final void mT__70() throws RecognitionException { + try { + int _type = T__70; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ldc' + { + match("ldc"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__70" + + // $ANTLR start "T__71" + public final void mT__71() throws RecognitionException { + try { + int _type = T__71; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'nop' + { + match("nop"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__71" + + // $ANTLR start "T__72" + public final void mT__72() throws RecognitionException { + try { + int _type = T__72; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'pop' + { + match("pop"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__72" + + // $ANTLR start "T__73" + public final void mT__73() throws RecognitionException { + try { + int _type = T__73; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'pop2' + { + match("pop2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__73" + + // $ANTLR start "T__74" + public final void mT__74() throws RecognitionException { + try { + int _type = T__74; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'putfield' + { + match("putfield"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__74" + // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: '' { match(""); @@ -1400,8 +1499,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:7: 'I' { match('I'); @@ -1421,8 +1520,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:8: 'V' { match('V'); @@ -1442,10 +1541,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1464,7 +1563,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: 'null' { match("null"); @@ -1473,7 +1572,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:18: 'NULL' { match("NULL"); @@ -1501,10 +1600,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1513,7 +1612,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: '-' { match('-'); @@ -1523,7 +1622,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1578,8 +1677,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1591,7 +1690,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1641,10 +1740,10 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:12: ( ';' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:14: ';' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:14: '\\n' { - match(';'); + match('\n'); } @@ -1662,10 +1761,10 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:6: ( ' ' | '\\t' | '\\r' | '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:6: ( ' ' | '\\t' | '\\r' ) { - if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { + if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); } else { @@ -1689,516 +1788,548 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) - int alt5=64; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + int alt5=68; alt5 = dfa5.predict(input); switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__12 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__15 { - mT__12(); + mT__15(); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__13 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__16 { - mT__13(); + mT__16(); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__14 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__17 { - mT__14(); + mT__17(); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__15 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__18 { - mT__15(); + mT__18(); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__16 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__19 { - mT__16(); + mT__19(); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__17 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__20 { - mT__17(); + mT__20(); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__18 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__21 { - mT__18(); + mT__21(); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__19 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__22 { - mT__19(); + mT__22(); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__20 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__23 { - mT__20(); + mT__23(); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__21 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__24 { - mT__21(); + mT__24(); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__22 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__25 { - mT__22(); + mT__25(); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__23 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__26 { - mT__23(); + mT__26(); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__24 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__27 { - mT__24(); + mT__27(); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__25 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__28 { - mT__25(); + mT__28(); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__26 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__29 { - mT__26(); + mT__29(); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__27 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__30 { - mT__27(); + mT__30(); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__28 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__31 { - mT__28(); + mT__31(); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__29 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__32 { - mT__29(); + mT__32(); } break; case 19 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__30 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__33 { - mT__30(); + mT__33(); } break; case 20 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__31 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__34 { - mT__31(); + mT__34(); } break; case 21 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__32 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__35 { - mT__32(); + mT__35(); } break; case 22 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__33 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__36 { - mT__33(); + mT__36(); } break; case 23 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__34 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__37 { - mT__34(); + mT__37(); } break; case 24 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__35 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__38 { - mT__35(); + mT__38(); } break; case 25 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__36 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__39 { - mT__36(); + mT__39(); } break; case 26 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__37 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__40 { - mT__37(); + mT__40(); } break; case 27 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__38 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__41 { - mT__38(); + mT__41(); } break; case 28 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__39 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__42 { - mT__39(); + mT__42(); } break; case 29 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__40 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__43 { - mT__40(); + mT__43(); } break; case 30 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__41 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__44 { - mT__41(); + mT__44(); } break; case 31 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__42 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__45 { - mT__42(); + mT__45(); } break; case 32 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__43 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__46 { - mT__43(); + mT__46(); } break; case 33 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__44 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__47 { - mT__44(); + mT__47(); } break; case 34 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__45 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__48 { - mT__45(); + mT__48(); } break; case 35 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__46 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__49 { - mT__46(); + mT__49(); } break; case 36 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__47 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__50 { - mT__47(); + mT__50(); } break; case 37 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__48 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__51 { - mT__48(); + mT__51(); } break; case 38 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__49 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__52 { - mT__49(); + mT__52(); } break; case 39 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__50 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__53 { - mT__50(); + mT__53(); } break; case 40 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__51 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__54 { - mT__51(); + mT__54(); } break; case 41 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__52 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__55 { - mT__52(); + mT__55(); } break; case 42 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__53 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__56 { - mT__53(); + mT__56(); } break; case 43 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__54 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__57 { - mT__54(); + mT__57(); } break; case 44 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__55 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__58 { - mT__55(); + mT__58(); } break; case 45 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__56 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__59 { - mT__56(); + mT__59(); } break; case 46 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__57 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__60 { - mT__57(); + mT__60(); } break; case 47 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__58 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__61 { - mT__58(); + mT__61(); } break; case 48 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__59 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__62 { - mT__59(); + mT__62(); } break; case 49 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__60 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__63 { - mT__60(); + mT__63(); } break; case 50 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__61 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__64 { - mT__61(); + mT__64(); } break; case 51 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__62 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__65 { - mT__62(); + mT__65(); } break; case 52 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__63 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__66 { - mT__63(); + mT__66(); } break; case 53 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__64 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__67 { - mT__64(); + mT__67(); } break; case 54 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__65 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__68 { - mT__65(); + mT__68(); } break; case 55 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__66 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__69 { - mT__66(); + mT__69(); } break; case 56 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__67 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__70 { - mT__67(); + mT__70(); } break; case 57 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: INIT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__71 { - mINIT(); + mT__71(); } break; case 58 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:351: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__72 { - mINT(); + mT__72(); } break; case 59 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:355: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__73 { - mVOID(); + mT__73(); } break; case 60 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:360: NULL + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__74 { - mNULL(); + mT__74(); } break; case 61 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:365: INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: INIT { - mINTEIRO(); + mINIT(); } break; case 62 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:373: ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:375: INT { - mID(); + mINT(); } break; case 63 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:379: VOID { - mNOVA_LINHA(); + mVOID(); } break; case 64 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:387: WS + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:384: NULL + { + mNULL(); + + + } + break; + case 65 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:389: INTEIRO + { + mINTEIRO(); + + + } + break; + case 66 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:397: ID + { + mID(); + + + } + break; + case 67 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: NOVA_LINHA + { + mNOVA_LINHA(); + + + } + break; + case 68 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:411: WS { mWS(); @@ -2213,218 +2344,225 @@ public void mTokens() throws RecognitionException { protected DFA5 dfa5 = new DFA5(this); static final String DFA5_eotS = - "\4\uffff\1\23\6\20\1\uffff\1\50\1\51\1\20\5\uffff\24\20\2\uffff"+ - "\10\20\1\uffff\11\20\1\132\4\20\1\137\1\140\1\20\1\143\4\20\1\150"+ - "\1\151\1\152\1\20\1\154\1\uffff\1\156\1\157\1\160\1\161\1\162\1"+ - "\163\1\164\1\20\1\166\1\167\1\20\1\uffff\1\171\1\20\1\173\1\174"+ - "\2\uffff\1\175\1\176\1\uffff\1\20\1\175\1\u0081\1\20\3\uffff\1\20"+ - "\11\uffff\1\u0086\2\uffff\1\20\1\uffff\1\20\4\uffff\1\20\2\uffff"+ - "\2\20\3\uffff\1\20\1\u0097\1\20\4\uffff\1\20\6\uffff\1\20\2\uffff"+ - "\1\20\1\u00ab\13\uffff\1\20\4\uffff\1\u00b1\5\uffff\1\20\1\uffff"+ - "\3\20\1\u00b6\1\uffff"; + "\5\uffff\1\30\6\21\1\uffff\1\55\1\56\1\21\11\uffff\24\21\2\uffff"+ + "\10\21\1\uffff\11\21\1\137\4\21\1\144\1\145\1\21\1\150\4\21\1\155"+ + "\1\156\1\157\1\21\1\161\1\uffff\1\163\1\164\1\165\1\166\1\167\1"+ + "\170\1\171\1\21\1\173\1\174\1\21\1\uffff\1\176\1\21\1\u0080\1\u0081"+ + "\2\uffff\1\u0082\1\u0083\1\uffff\1\21\1\u0082\1\u0086\1\21\3\uffff"+ + "\1\21\11\uffff\1\u008b\2\uffff\1\21\1\uffff\1\21\4\uffff\1\21\2"+ + "\uffff\2\21\3\uffff\1\21\1\u009c\1\21\4\uffff\1\21\6\uffff\1\21"+ + "\2\uffff\1\21\1\u00b0\13\uffff\1\21\4\uffff\1\u00b6\5\uffff\1\21"+ + "\1\uffff\3\21\1\u00bb\1\uffff"; static final String DFA5_eofS = - "\u00b7\uffff"; + "\u00bc\uffff"; static final String DFA5_minS = - "\1\11\3\uffff\1\56\1\154\1\145\1\141\1\144\2\157\1\uffff\2\56\1"+ - "\125\5\uffff\1\157\2\164\1\144\1\157\1\151\1\137\1\156\1\157\1\165"+ - "\1\145\1\162\1\145\1\164\1\157\1\143\1\160\1\154\1\160\1\164\2\uffff"+ - "\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1\151\1\161\3\145\1\143"+ - "\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162\2\56\1\154"+ - "\1\56\1\146\1\114\1\144\1\151\3\56\1\163\1\56\1\143\7\56\1\144\2"+ - "\56\1\153\1\uffff\1\56\1\162\2\56\2\uffff\2\56\1\uffff\1\151\2\56"+ - "\1\145\3\uffff\1\164\1\uffff\1\155\7\uffff\1\56\2\uffff\1\145\1"+ - "\uffff\1\145\4\uffff\1\145\1\60\1\uffff\1\154\1\137\1\160\1\60\1"+ - "\uffff\1\163\1\56\1\154\4\uffff\1\144\1\60\1\145\4\uffff\1\160\1"+ - "\60\1\uffff\1\144\1\56\10\uffff\2\145\1\uffff\1\145\4\uffff\1\56"+ - "\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56\1\uffff"; + "\1\11\1\uffff\1\143\2\uffff\1\56\1\154\1\145\1\141\1\144\2\157\1"+ + "\uffff\2\56\1\125\11\uffff\1\157\2\164\1\144\1\157\1\151\1\137\1"+ + "\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\160\1\154"+ + "\1\160\1\164\2\uffff\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1"+ + "\151\1\161\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157"+ + "\1\142\1\162\2\56\1\154\1\56\1\146\1\114\1\144\1\151\3\56\1\163"+ + "\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff\1\56\1\162\2\56\2\uffff"+ + "\2\56\1\uffff\1\151\2\56\1\145\3\uffff\1\164\1\uffff\1\155\7\uffff"+ + "\1\56\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1\60\1\uffff\1\154"+ + "\1\137\1\160\1\60\1\uffff\1\163\1\56\1\154\4\uffff\1\144\1\60\1"+ + "\145\4\uffff\1\160\1\60\1\uffff\1\144\1\56\10\uffff\2\145\1\uffff"+ + "\1\145\4\uffff\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56"+ + "\1\uffff"; static final String DFA5_maxS = - "\1\172\3\uffff\1\172\1\154\1\157\1\170\1\144\2\165\1\uffff\2\172"+ - "\1\125\5\uffff\1\157\2\164\1\156\1\157\1\151\2\156\1\157\1\165\1"+ - "\166\1\162\1\145\1\165\1\157\1\143\1\160\1\154\1\160\1\164\2\uffff"+ - "\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145"+ - "\1\143\1\141\1\154\1\147\1\157\1\172\1\155\1\157\1\142\1\162\2\172"+ - "\1\154\1\172\1\146\1\114\1\144\1\151\3\172\1\163\1\172\1\143\7\172"+ - "\1\144\2\172\1\153\1\uffff\1\172\1\162\2\172\2\uffff\2\172\1\uffff"+ - "\1\151\2\172\1\145\3\uffff\1\164\1\uffff\1\155\7\uffff\1\172\2\uffff"+ - "\1\145\1\uffff\1\145\4\uffff\1\145\1\63\1\uffff\1\154\1\137\1\160"+ - "\1\63\1\uffff\1\163\1\172\1\154\4\uffff\1\144\1\155\1\156\4\uffff"+ - "\1\160\1\63\1\uffff\1\144\1\172\10\uffff\2\164\1\uffff\1\145\4\uffff"+ - "\1\172\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; + "\1\172\1\uffff\1\163\2\uffff\1\172\1\154\1\157\1\170\1\144\2\165"+ + "\1\uffff\2\172\1\125\11\uffff\1\157\2\164\1\156\1\157\1\151\2\156"+ + "\1\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143\1\160\1\154\1\160"+ + "\1\164\2\uffff\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1\151\1"+ + "\161\2\164\1\145\1\143\1\141\1\154\1\147\1\157\1\172\1\155\1\157"+ + "\1\142\1\162\2\172\1\154\1\172\1\146\1\114\1\144\1\151\3\172\1\163"+ + "\1\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1\172\1\162\2\172\2"+ + "\uffff\2\172\1\uffff\1\151\2\172\1\145\3\uffff\1\164\1\uffff\1\155"+ + "\7\uffff\1\172\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1\63\1"+ + "\uffff\1\154\1\137\1\160\1\63\1\uffff\1\163\1\172\1\154\4\uffff"+ + "\1\144\1\155\1\156\4\uffff\1\160\1\63\1\uffff\1\144\1\172\10\uffff"+ + "\2\164\1\uffff\1\145\4\uffff\1\172\5\uffff\1\143\1\uffff\1\151\1"+ + "\141\1\154\1\172\1\uffff"; static final String DFA5_acceptS = - "\1\uffff\1\1\1\2\1\3\7\uffff\1\71\3\uffff\1\75\1\76\1\77\1\100\1"+ - "\4\24\uffff\1\72\1\73\60\uffff\1\53\4\uffff\1\64\1\65\2\uffff\1"+ - "\66\4\uffff\1\13\1\14\1\15\1\uffff\1\25\1\uffff\1\34\1\35\1\36\1"+ - "\37\1\40\1\41\1\42\1\uffff\1\50\1\51\1\uffff\1\54\1\uffff\1\62\1"+ - "\63\1\74\1\67\2\uffff\1\5\4\uffff\1\43\3\uffff\1\6\1\7\1\10\1\11"+ - "\3\uffff\1\44\1\45\1\46\1\47\2\uffff\1\55\2\uffff\1\16\1\17\1\20"+ - "\1\21\1\22\1\23\1\24\1\26\2\uffff\1\33\1\uffff\1\56\1\57\1\60\1"+ - "\61\1\uffff\1\12\1\27\1\30\1\31\1\32\1\uffff\1\70\4\uffff\1\52"; + "\1\uffff\1\1\1\uffff\1\6\1\7\7\uffff\1\75\3\uffff\1\101\1\102\1"+ + "\103\1\104\1\2\1\3\1\4\1\5\1\10\24\uffff\1\76\1\77\60\uffff\1\57"+ + "\4\uffff\1\70\1\71\2\uffff\1\72\4\uffff\1\17\1\20\1\21\1\uffff\1"+ + "\31\1\uffff\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\uffff\1\54\1\55"+ + "\1\uffff\1\60\1\uffff\1\66\1\67\1\100\1\73\2\uffff\1\11\4\uffff"+ + "\1\47\3\uffff\1\12\1\13\1\14\1\15\3\uffff\1\50\1\51\1\52\1\53\2"+ + "\uffff\1\61\2\uffff\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\32\2\uffff"+ + "\1\37\1\uffff\1\62\1\63\1\64\1\65\1\uffff\1\16\1\33\1\34\1\35\1"+ + "\36\1\uffff\1\74\4\uffff\1\56"; static final String DFA5_specialS = - "\u00b7\uffff}>"; + "\u00bc\uffff}>"; static final String[] DFA5_transitionS = { - "\2\22\2\uffff\1\22\22\uffff\1\22\7\uffff\1\1\4\uffff\1\17\1"+ - "\uffff\1\2\12\17\1\3\1\21\1\13\4\uffff\10\20\1\14\2\20\1\4\1"+ - "\20\1\16\7\20\1\15\4\20\6\uffff\1\5\5\20\1\6\1\20\1\7\2\20\1"+ - "\10\1\20\1\11\1\20\1\12\12\20", + "\1\23\1\22\2\uffff\1\23\22\uffff\1\23\7\uffff\1\1\4\uffff\1"+ + "\20\1\2\1\3\12\20\1\4\1\uffff\1\14\4\uffff\10\21\1\15\2\21\1"+ + "\5\1\21\1\17\7\21\1\16\4\21\6\uffff\1\6\5\21\1\7\1\21\1\10\2"+ + "\21\1\11\1\21\1\12\1\21\1\13\12\21", + "", + "\1\24\2\uffff\1\25\6\uffff\1\26\5\uffff\1\27", + "", + "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\31", + "\1\32\11\uffff\1\33", + "\1\34\1\uffff\1\35\1\36\1\uffff\1\37\2\uffff\1\40\2\uffff\1"+ + "\41\1\42\1\43\1\44\2\uffff\1\45\1\46\4\uffff\1\47", + "\1\50", + "\1\51\5\uffff\1\52", + "\1\53\5\uffff\1\54", + "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\57", "", "", "", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\24", - "\1\25\11\uffff\1\26", - "\1\27\1\uffff\1\30\1\31\1\uffff\1\32\2\uffff\1\33\2\uffff\1"+ - "\34\1\35\1\36\1\37\2\uffff\1\40\1\41\4\uffff\1\42", - "\1\43", - "\1\44\5\uffff\1\45", - "\1\46\5\uffff\1\47", "", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\52", "", "", "", "", "", - "\1\53", - "\1\54", - "\1\55", - "\1\56\11\uffff\1\57", "\1\60", "\1\61", - "\1\62\5\uffff\1\63\1\uffff\1\64\4\uffff\1\65\1\uffff\1\66", - "\1\67", - "\1\70", - "\1\71", - "\1\72\20\uffff\1\73", + "\1\62", + "\1\63\11\uffff\1\64", + "\1\65", + "\1\66", + "\1\67\5\uffff\1\70\1\uffff\1\71\4\uffff\1\72\1\uffff\1\73", "\1\74", "\1\75", - "\1\76\1\77", - "\1\100", + "\1\76", + "\1\77\20\uffff\1\100", "\1\101", "\1\102", - "\1\103", - "\1\104", + "\1\103\1\104", "\1\105", - "", - "", "\1\106", "\1\107", "\1\110", "\1\111", "\1\112", + "", + "", "\1\113", "\1\114", "\1\115", "\1\116", "\1\117", - "\1\120\16\uffff\1\121", - "\1\122\16\uffff\1\123", + "\1\120", + "\1\121", + "\1\122", + "\1\123", "\1\124", - "\1\125", - "\1\126", - "\1\127", - "\1\130", + "\1\125\16\uffff\1\126", + "\1\127\16\uffff\1\130", "\1\131", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\132", "\1\133", "\1\134", "\1\135", "\1\136", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\140", "\1\141", - "\1\20\1\uffff\2\20\1\142\7\20\7\uffff\32\20\6\uffff\32\20", - "\1\144", - "\1\145", + "\1\142", + "\1\143", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\146", - "\1\147", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\21\1\uffff\2\21\1\147\7\21\7\uffff\32\21\6\uffff\32\21", + "\1\151", + "\1\152", "\1\153", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\155", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\165", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\170", - "", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\154", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\160", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\162", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\172", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\175", "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\177", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "", - "\1\177", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", - "\1\20\1\uffff\12\20\7\uffff\32\20\4\uffff\1\u0080\1\uffff\32"+ - "\20", - "\1\u0082", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", + "\1\u0084", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u0085\1\uffff\32"+ + "\21", + "\1\u0087", "", "", - "\1\u0083", "", - "\1\u0084", + "\1\u0088", "", + "\1\u0089", "", "", "", "", "", "", - "\1\20\1\uffff\12\20\7\uffff\32\20\4\uffff\1\u0085\1\uffff\32"+ - "\20", "", + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u008a\1\uffff\32"+ + "\21", "", - "\1\u0087", "", - "\1\u0088", + "\1\u008c", "", + "\1\u008d", "", "", "", - "\1\u0089", - "\1\u008a\1\u008b\1\u008c\1\u008d", "", "\1\u008e", - "\1\u008f", - "\1\u0090", - "\1\u0091\1\u0092\1\u0093\1\u0094", + "\1\u008f\1\u0090\1\u0091\1\u0092", "", + "\1\u0093", + "\1\u0094", "\1\u0095", - "\1\20\1\uffff\12\20\7\uffff\32\20\4\uffff\1\u0096\1\uffff\32"+ - "\20", - "\1\u0098", + "\1\u0096\1\u0097\1\u0098\1\u0099", "", + "\1\u009a", + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u009b\1\uffff\32"+ + "\21", + "\1\u009d", "", "", "", - "\1\u0099", - "\1\u009a\1\u009b\1\u009c\1\u009d\1\u009e\1\u009f\67\uffff\1"+ - "\u00a0", - "\1\u00a1\1\uffff\1\u00a2\4\uffff\1\u00a3\1\uffff\1\u00a4", "", + "\1\u009e", + "\1\u009f\1\u00a0\1\u00a1\1\u00a2\1\u00a3\1\u00a4\67\uffff\1"+ + "\u00a5", + "\1\u00a6\1\uffff\1\u00a7\4\uffff\1\u00a8\1\uffff\1\u00a9", "", "", "", - "\1\u00a5", - "\1\u00a6\1\u00a7\1\u00a8\1\u00a9", "", "\1\u00aa", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\u00ab\1\u00ac\1\u00ad\1\u00ae", "", + "\1\u00af", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", "", "", @@ -2432,26 +2570,27 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00ac\16\uffff\1\u00ad", - "\1\u00ae\16\uffff\1\u00af", "", - "\1\u00b0", + "\1\u00b1\16\uffff\1\u00b2", + "\1\u00b3\16\uffff\1\u00b4", "", + "\1\u00b5", "", "", "", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", "", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", "", "", "", - "\1\u00b2", "", - "\1\u00b3", - "\1\u00b4", - "\1\u00b5", - "\1\20\1\uffff\12\20\7\uffff\32\20\6\uffff\32\20", + "\1\u00b7", + "", + "\1\u00b8", + "\1\u00b9", + "\1\u00ba", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "" }; @@ -2485,7 +2624,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index 52b247f..4a1c26d 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,26 +1,26 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-21 00:00:37 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-21 23:43:38 package br.ufpb.iged.interpretador.bytecodeassembler.parser; import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +import org.antlr.runtime.tree.*; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ID", "INIT", "INT", "INTEIRO", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; public static final int T__15=15; public static final int T__16=16; public static final int T__17=17; @@ -74,14 +74,24 @@ public abstract class AssemblerParser extends Parser { public static final int T__65=65; public static final int T__66=66; public static final int T__67=67; - public static final int ID=4; - public static final int INIT=5; - public static final int INT=6; - public static final int INTEIRO=7; - public static final int NOVA_LINHA=8; - public static final int NULL=9; - public static final int VOID=10; - public static final int WS=11; + public static final int T__68=68; + public static final int T__69=69; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int T__73=73; + public static final int T__74=74; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int INTEIRO=9; + public static final int MEMBRO_CLASSE=10; + public static final int NOVA_LINHA=11; + public static final int NULL=12; + public static final int VOID=13; + public static final int WS=14; // delegates public Parser[] getDelegates() { @@ -98,6 +108,14 @@ public AssemblerParser(TokenStream input, RecognizerSharedState state) { super(input, state); } +protected TreeAdaptor adaptor = new CommonTreeAdaptor(); + +public void setTreeAdaptor(TreeAdaptor adaptor) { + this.adaptor = adaptor; +} +public TreeAdaptor getTreeAdaptor() { + return adaptor; +} public String[] getTokenNames() { return AssemblerParser.tokenNames; } public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } @@ -111,34 +129,53 @@ public AssemblerParser(TokenStream input, RecognizerSharedState state) { + public static class programa_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:1: programa : ( comando )* ; - public final void programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:1: programa : ( comando )* ; + public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + AssemblerParser.comando_return comando1 =null; + + + try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:12: ( comando )* { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:12: ( comando )* + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:12: ( comando )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||(LA1_0 >= 16 && LA1_0 <= 67)) ) { + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==16||LA1_0==18||(LA1_0 >= 23 && LA1_0 <= 74)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:12: comando { - pushFollow(FOLLOW_comando_in_programa16); - comando(); + pushFollow(FOLLOW_comando_in_programa59); + comando1=comando(); state._fsp--; + adaptor.addChild(root_0, comando1.getTree()); } break; @@ -151,36 +188,66 @@ public final void programa() throws RecognitionException, LabelException, Acesso } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "programa" + public static class comando_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:1: comando : ( label instrucao | instrucao ) ; - public final void comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:1: comando : ( label instrucao | instrucao ) ; + public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + AssemblerParser.label_return label2 =null; + + AssemblerParser.instrucao_return instrucao3 =null; + + AssemblerParser.instrucao_return instrucao4 =null; + + + try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:11: ( label instrucao | instrucao ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:11: ( label instrucao | instrucao ) + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==ID) ) { alt2=1; } - else if ( (LA2_0==NOVA_LINHA||(LA2_0 >= 16 && LA2_0 <= 67)) ) { + else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 74)) ) { alt2=2; } else { @@ -192,30 +259,33 @@ else if ( (LA2_0==NOVA_LINHA||(LA2_0 >= 16 && LA2_0 <= 67)) ) { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:12: label instrucao { - pushFollow(FOLLOW_label_in_comando36); - label(); + pushFollow(FOLLOW_label_in_comando79); + label2=label(); state._fsp--; + adaptor.addChild(root_0, label2.getTree()); - pushFollow(FOLLOW_instrucao_in_comando38); - instrucao(); + pushFollow(FOLLOW_instrucao_in_comando81); + instrucao3=instrucao(); state._fsp--; + adaptor.addChild(root_0, instrucao3.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:30: instrucao { - pushFollow(FOLLOW_instrucao_in_comando42); - instrucao(); + pushFollow(FOLLOW_instrucao_in_comando85); + instrucao4=instrucao(); state._fsp--; + adaptor.addChild(root_0, instrucao4.getTree()); } break; @@ -225,242 +295,359 @@ else if ( (LA2_0==NOVA_LINHA||(LA2_0 >= 16 && LA2_0 <= 67)) ) { } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "comando" + public static class label_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:1: label : a= ID ':' ; - public final void label() throws RecognitionException, LabelException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:1: label : a= ID ':' ; + public final AssemblerParser.label_return label() throws RecognitionException, LabelException { + AssemblerParser.label_return retval = new AssemblerParser.label_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + Token a=null; + Token char_literal5=null; + + BytecodesAST a_tree=null; + BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label64); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,ID,FOLLOW_ID_in_label107); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + char_literal5=(Token)match(input,21,FOLLOW_21_in_label109); + char_literal5_tree = + (BytecodesAST)adaptor.create(char_literal5) + ; + adaptor.addChild(root_0, char_literal5_tree); - match(input,14,FOLLOW_14_in_label66); definirLabel(a); } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "label" + public static class instrucao_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:1: instrucao : ( manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; - public final void instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + Token a=null; + Token string_literal13=null; + Token NOVA_LINHA14=null; + AssemblerParser.definicaoClasse_return definicaoClasse6 =null; + + AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos7 =null; + + AssemblerParser.aritmetica_return aritmetica8 =null; + + AssemblerParser.load_return load9 =null; + + AssemblerParser.store_return store10 =null; + + AssemblerParser.desvio_return desvio11 =null; + + AssemblerParser.logica_return logica12 =null; + + + BytecodesAST a_tree=null; + BytecodesAST string_literal13_tree=null; + BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:10: ( ( manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:12: ( manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:12: ( manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? - int alt3=10; + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + int alt3=11; switch ( input.LA(1) ) { - case 21: - case 53: - case 67: + case 16: + case 18: { alt3=1; } break; - case 23: - case 32: - case 45: - case 51: - case 52: - case 55: - case 61: + case 28: + case 60: + case 74: { alt3=2; } break; - case 16: - case 17: - case 18: - case 19: - case 20: - case 25: - case 26: - case 27: - case 28: - case 29: case 30: - case 31: - case 46: - case 47: - case 48: - case 49: - case 50: - case 63: - { - alt3=3; - } - break; - case 56: - case 57: + case 39: + case 52: case 58: case 59: - case 60: + case 62: + case 68: { - alt3=4; + alt3=3; } break; - case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 32: case 33: case 34: case 35: case 36: case 37: case 38: - case 39: + case 53: + case 54: + case 55: + case 56: + case 57: + case 70: + { + alt3=4; + } + break; + case 63: + case 64: + case 65: + case 66: + case 67: + { + alt3=5; + } + break; + case 29: case 40: case 41: case 42: case 43: case 44: - { - alt3=5; - } - break; - case 24: - case 54: - case 62: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: { alt3=6; } break; - case 64: + case 31: + case 61: + case 69: { alt3=7; } break; - case 65: + case 71: { alt3=8; } break; - case 66: + case 72: { alt3=9; } break; + case 73: + { + alt3=10; + } + break; } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:13: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:13: definicaoClasse { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao76); - manipulacaoObjetos(); + pushFollow(FOLLOW_definicaoClasse_in_instrucao119); + definicaoClasse6=definicaoClasse(); state._fsp--; + adaptor.addChild(root_0, definicaoClasse6.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:34: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:31: manipulacaoObjetos { - pushFollow(FOLLOW_aritmetica_in_instrucao80); - aritmetica(); + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao123); + manipulacaoObjetos7=manipulacaoObjetos(); state._fsp--; + adaptor.addChild(root_0, manipulacaoObjetos7.getTree()); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:47: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:52: aritmetica { - pushFollow(FOLLOW_load_in_instrucao84); - load(); + pushFollow(FOLLOW_aritmetica_in_instrucao127); + aritmetica8=aritmetica(); state._fsp--; + adaptor.addChild(root_0, aritmetica8.getTree()); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:54: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:65: load { - pushFollow(FOLLOW_store_in_instrucao88); - store(); + pushFollow(FOLLOW_load_in_instrucao131); + load9=load(); state._fsp--; + adaptor.addChild(root_0, load9.getTree()); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:62: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:72: store { - pushFollow(FOLLOW_desvio_in_instrucao92); - desvio(); + pushFollow(FOLLOW_store_in_instrucao135); + store10=store(); state._fsp--; + adaptor.addChild(root_0, store10.getTree()); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:71: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:80: desvio { - pushFollow(FOLLOW_logica_in_instrucao96); - logica(); + pushFollow(FOLLOW_desvio_in_instrucao139); + desvio11=desvio(); state._fsp--; + adaptor.addChild(root_0, desvio11.getTree()); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:89: logica { - match(input,64,FOLLOW_64_in_instrucao119); + pushFollow(FOLLOW_logica_in_instrucao143); + logica12=logica(); + + state._fsp--; + + adaptor.addChild(root_0, logica12.getTree()); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:21: 'nop' { - a=(Token)match(input,65,FOLLOW_65_in_instrucao141); + string_literal13=(Token)match(input,71,FOLLOW_71_in_instrucao166); + string_literal13_tree = + (BytecodesAST)adaptor.create(string_literal13) + ; + adaptor.addChild(root_0, string_literal13_tree); - escreverOpcode(a); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:17: a= 'pop' + { + a=(Token)match(input,72,FOLLOW_72_in_instrucao188); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + escreverOpcode(a); + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:17: a= 'pop2' { - a=(Token)match(input,66,FOLLOW_66_in_instrucao165); + a=(Token)match(input,73,FOLLOW_73_in_instrucao212); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); @@ -470,310 +657,1217 @@ public final void instrucao() throws RecognitionException, LabelException, Acess } - match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao185); + NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao232); + NOVA_LINHA14_tree = + (BytecodesAST)adaptor.create(NOVA_LINHA14) + ; + adaptor.addChild(root_0, NOVA_LINHA14_tree); + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "instrucao" + public static class definicaoClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; - // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); - public final void manipulacaoObjetos() throws RecognitionException { + + // $ANTLR start "definicaoClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID NOVA_LINHA superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); + public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { + AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal15=null; + Token ID16=null; + Token NOVA_LINHA17=null; + Token string_literal19=null; + Token ID20=null; + Token NOVA_LINHA21=null; + Token string_literal24=null; + AssemblerParser.membroClasse_return membroClasse18 =null; + + AssemblerParser.superClasse_return superClasse22 =null; + + AssemblerParser.membroClasse_return membroClasse23 =null; + + AssemblerParser.construtorDefault_return construtorDefault25 =null; + + + BytecodesAST string_literal15_tree=null; + BytecodesAST ID16_tree=null; + BytecodesAST NOVA_LINHA17_tree=null; + BytecodesAST string_literal19_tree=null; + BytecodesAST ID20_tree=null; + BytecodesAST NOVA_LINHA21_tree=null; + BytecodesAST string_literal24_tree=null; + RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); + RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); + RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) - int alt4=3; - switch ( input.LA(1) ) { - case 21: - { - alt4=1; - } - break; - case 67: - { - alt4=2; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:17: ( '.class' ID NOVA_LINHA ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID NOVA_LINHA superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) + int alt6=3; + int LA6_0 = input.LA(1); + + if ( (LA6_0==16) ) { + int LA6_1 = input.LA(2); + + if ( (LA6_1==ID) ) { + int LA6_3 = input.LA(3); + + if ( (LA6_3==NOVA_LINHA) ) { + int LA6_4 = input.LA(4); + + if ( (LA6_4==17) ) { + alt6=1; + } + else if ( (LA6_4==19) ) { + alt6=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 4, input); + + throw nvae; + + } + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 3, input); + + throw nvae; + + } } - break; - case 53: - { - alt4=3; + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 1, input); + + throw nvae; + } - break; - default: + } + else if ( (LA6_0==18) ) { + alt6=3; + } + else { NoViableAltException nvae = - new NoViableAltException("", 4, 0, input); + new NoViableAltException("", 6, 0, input); throw nvae; } - - switch (alt4) { + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:22: 'getfield' ID '/' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:19: '.class' ID NOVA_LINHA ( membroClasse )+ { - match(input,21,FOLLOW_21_in_manipulacaoObjetos193); + string_literal15=(Token)match(input,16,FOLLOW_16_in_definicaoClasse254); + stream_16.add(string_literal15); - match(input,ID,FOLLOW_ID_in_manipulacaoObjetos195); - match(input,13,FOLLOW_13_in_manipulacaoObjetos197); + ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse256); + stream_ID.add(ID16); - match(input,ID,FOLLOW_ID_in_manipulacaoObjetos199); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos201); - tipo(); + NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse258); + stream_NOVA_LINHA.add(NOVA_LINHA17); - state._fsp--; + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:42: ( membroClasse )+ + int cnt4=0; + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==17) ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:42: membroClasse + { + pushFollow(FOLLOW_membroClasse_in_definicaoClasse260); + membroClasse18=membroClasse(); + + state._fsp--; + + stream_membroClasse.add(membroClasse18.getTree()); + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + + + // AST REWRITE + // elements: membroClasse, 16, ID + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 37:57: -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:60: ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_16.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:74: ^( MEMBRO_CLASSE ( membroClasse )+ ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") + , root_2); + + if ( !(stream_membroClasse.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_membroClasse.hasNext() ) { + adaptor.addChild(root_2, stream_membroClasse.nextTree()); + + } + stream_membroClasse.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_0, root_1); + } + + } + retval.tree = root_0; + } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:22: 'putfield' ID '/' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:19: '.class' ID NOVA_LINHA superClasse ( membroClasse )+ { - match(input,67,FOLLOW_67_in_manipulacaoObjetos224); + string_literal19=(Token)match(input,16,FOLLOW_16_in_definicaoClasse297); + stream_16.add(string_literal19); + - match(input,ID,FOLLOW_ID_in_manipulacaoObjetos226); + ID20=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse299); + stream_ID.add(ID20); - match(input,13,FOLLOW_13_in_manipulacaoObjetos228); - match(input,ID,FOLLOW_ID_in_manipulacaoObjetos230); + NOVA_LINHA21=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse301); + stream_NOVA_LINHA.add(NOVA_LINHA21); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos232); - tipo(); + + pushFollow(FOLLOW_superClasse_in_definicaoClasse303); + superClasse22=superClasse(); state._fsp--; + stream_superClasse.add(superClasse22.getTree()); - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:22: 'invokespecial' ID '/' INIT '()' VOID - { - match(input,53,FOLLOW_53_in_manipulacaoObjetos255); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:54: ( membroClasse )+ + int cnt5=0; + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); - match(input,ID,FOLLOW_ID_in_manipulacaoObjetos257); + if ( (LA5_0==17) ) { + alt5=1; + } - match(input,13,FOLLOW_13_in_manipulacaoObjetos259); - match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos261); + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:54: membroClasse + { + pushFollow(FOLLOW_membroClasse_in_definicaoClasse305); + membroClasse23=membroClasse(); - match(input,12,FOLLOW_12_in_manipulacaoObjetos263); + state._fsp--; - match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos265); + stream_membroClasse.add(membroClasse23.getTree()); - } - break; + } + break; - } - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } + default : + if ( cnt5 >= 1 ) break loop5; + EarlyExitException eee = + new EarlyExitException(5, input); + throw eee; + } + cnt5++; + } while (true); - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "manipulacaoObjetos" + // AST REWRITE + // elements: 16, ID, superClasse, membroClasse, NOVA_LINHA + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + root_0 = (BytecodesAST)adaptor.nil(); + // 39:19: -> ^( '.class' ID NOVA_LINHA superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:22: ^( '.class' ID NOVA_LINHA superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_16.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_1, + stream_NOVA_LINHA.nextNode() + ); + + adaptor.addChild(root_1, stream_superClasse.nextTree()); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:59: ^( MEMBRO_CLASSE ( membroClasse )+ ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") + , root_2); + + if ( !(stream_membroClasse.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_membroClasse.hasNext() ) { + adaptor.addChild(root_2, stream_membroClasse.nextTree()); + + } + stream_membroClasse.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:19: '.method' construtorDefault + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal24=(Token)match(input,18,FOLLOW_18_in_definicaoClasse365); + string_literal24_tree = + (BytecodesAST)adaptor.create(string_literal24) + ; + adaptor.addChild(root_0, string_literal24_tree); + + + pushFollow(FOLLOW_construtorDefault_in_definicaoClasse367); + construtorDefault25=construtorDefault(); + + state._fsp--; + + adaptor.addChild(root_0, construtorDefault25.getTree()); + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "definicaoClasse" + + + public static class superClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "superClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { + AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal26=null; + Token ID27=null; + + BytecodesAST string_literal26_tree=null; + BytecodesAST ID27_tree=null; + RewriteRuleTokenStream stream_19=new RewriteRuleTokenStream(adaptor,"token 19"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:15: '.super' ID + { + string_literal26=(Token)match(input,19,FOLLOW_19_in_superClasse408); + stream_19.add(string_literal26); + + + ID27=(Token)match(input,ID,FOLLOW_ID_in_superClasse410); + stream_ID.add(ID27); + + + // AST REWRITE + // elements: ID + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 43:27: -> ^( EXTENDS ID ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:30: ^( EXTENDS ID ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(EXTENDS, "EXTENDS") + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "superClasse" + + + public static class membroClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "membroClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { + AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal28=null; + Token ID29=null; + AssemblerParser.tipo_return tipo30 =null; + + + BytecodesAST string_literal28_tree=null; + BytecodesAST ID29_tree=null; + RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:16: '.field' ID tipo + { + string_literal28=(Token)match(input,17,FOLLOW_17_in_membroClasse427); + stream_17.add(string_literal28); + + + ID29=(Token)match(input,ID,FOLLOW_ID_in_membroClasse429); + stream_ID.add(ID29); + + + pushFollow(FOLLOW_tipo_in_membroClasse431); + tipo30=tipo(); + + state._fsp--; + + stream_tipo.add(tipo30.getTree()); + + // AST REWRITE + // elements: ID, tipo + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 45:33: -> ^( FIELD_DECL ID tipo ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:36: ^( FIELD_DECL ID tipo ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(FIELD_DECL, "FIELD_DECL") + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_1, stream_tipo.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "membroClasse" + + + public static class construtorDefault_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "construtorDefault" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: construtorDefault : INIT '()' VOID ; + public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { + AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token INIT31=null; + Token string_literal32=null; + Token VOID33=null; + + BytecodesAST INIT31_tree=null; + BytecodesAST string_literal32_tree=null; + BytecodesAST VOID33_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:19: ( INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:21: INIT '()' VOID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + INIT31=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault450); + INIT31_tree = + (BytecodesAST)adaptor.create(INIT31) + ; + adaptor.addChild(root_0, INIT31_tree); + + + string_literal32=(Token)match(input,15,FOLLOW_15_in_construtorDefault452); + string_literal32_tree = + (BytecodesAST)adaptor.create(string_literal32) + ; + adaptor.addChild(root_0, string_literal32_tree); + + + VOID33=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault454); + VOID33_tree = + (BytecodesAST)adaptor.create(VOID33) + ; + adaptor.addChild(root_0, VOID33_tree); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "construtorDefault" + + + public static class manipulacaoObjetos_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "manipulacaoObjetos" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); + public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { + AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal34=null; + Token ID35=null; + Token char_literal36=null; + Token ID37=null; + Token string_literal39=null; + Token ID40=null; + Token char_literal41=null; + Token ID42=null; + Token string_literal44=null; + Token ID45=null; + Token char_literal46=null; + Token INIT47=null; + Token string_literal48=null; + Token VOID49=null; + AssemblerParser.tipo_return tipo38 =null; + + AssemblerParser.tipo_return tipo43 =null; + + + BytecodesAST string_literal34_tree=null; + BytecodesAST ID35_tree=null; + BytecodesAST char_literal36_tree=null; + BytecodesAST ID37_tree=null; + BytecodesAST string_literal39_tree=null; + BytecodesAST ID40_tree=null; + BytecodesAST char_literal41_tree=null; + BytecodesAST ID42_tree=null; + BytecodesAST string_literal44_tree=null; + BytecodesAST ID45_tree=null; + BytecodesAST char_literal46_tree=null; + BytecodesAST INIT47_tree=null; + BytecodesAST string_literal48_tree=null; + BytecodesAST VOID49_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) + int alt7=3; + switch ( input.LA(1) ) { + case 28: + { + alt7=1; + } + break; + case 74: + { + alt7=2; + } + break; + case 60: + { + alt7=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + + } + + switch (alt7) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:22: 'getfield' ID '/' ID tipo + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal34=(Token)match(input,28,FOLLOW_28_in_manipulacaoObjetos464); + string_literal34_tree = + (BytecodesAST)adaptor.create(string_literal34) + ; + adaptor.addChild(root_0, string_literal34_tree); + + + ID35=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos466); + ID35_tree = + (BytecodesAST)adaptor.create(ID35) + ; + adaptor.addChild(root_0, ID35_tree); + + + char_literal36=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos468); + char_literal36_tree = + (BytecodesAST)adaptor.create(char_literal36) + ; + adaptor.addChild(root_0, char_literal36_tree); + + + ID37=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos470); + ID37_tree = + (BytecodesAST)adaptor.create(ID37) + ; + adaptor.addChild(root_0, ID37_tree); + + + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos472); + tipo38=tipo(); + + state._fsp--; + + adaptor.addChild(root_0, tipo38.getTree()); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:22: 'putfield' ID '/' ID tipo + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal39=(Token)match(input,74,FOLLOW_74_in_manipulacaoObjetos495); + string_literal39_tree = + (BytecodesAST)adaptor.create(string_literal39) + ; + adaptor.addChild(root_0, string_literal39_tree); + + + ID40=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos497); + ID40_tree = + (BytecodesAST)adaptor.create(ID40) + ; + adaptor.addChild(root_0, ID40_tree); + + + char_literal41=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos499); + char_literal41_tree = + (BytecodesAST)adaptor.create(char_literal41) + ; + adaptor.addChild(root_0, char_literal41_tree); + + + ID42=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos501); + ID42_tree = + (BytecodesAST)adaptor.create(ID42) + ; + adaptor.addChild(root_0, ID42_tree); + + + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos503); + tipo43=tipo(); + + state._fsp--; + + adaptor.addChild(root_0, tipo43.getTree()); + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:22: 'invokespecial' ID '/' INIT '()' VOID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal44=(Token)match(input,60,FOLLOW_60_in_manipulacaoObjetos526); + string_literal44_tree = + (BytecodesAST)adaptor.create(string_literal44) + ; + adaptor.addChild(root_0, string_literal44_tree); + + + ID45=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos528); + ID45_tree = + (BytecodesAST)adaptor.create(ID45) + ; + adaptor.addChild(root_0, ID45_tree); + + + char_literal46=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos530); + char_literal46_tree = + (BytecodesAST)adaptor.create(char_literal46) + ; + adaptor.addChild(root_0, char_literal46_tree); + + + INIT47=(Token)match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos532); + INIT47_tree = + (BytecodesAST)adaptor.create(INIT47) + ; + adaptor.addChild(root_0, INIT47_tree); + + + string_literal48=(Token)match(input,15,FOLLOW_15_in_manipulacaoObjetos534); + string_literal48_tree = + (BytecodesAST)adaptor.create(string_literal48) + ; + adaptor.addChild(root_0, string_literal48_tree); + + + VOID49=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos536); + VOID49_tree = + (BytecodesAST)adaptor.create(VOID49) + ; + adaptor.addChild(root_0, VOID49_tree); + + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "manipulacaoObjetos" + + + public static class tipo_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "tipo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: tipo : ( INT | VOID | 'L' ID ); + public final AssemblerParser.tipo_return tipo() throws RecognitionException { + AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token INT50=null; + Token VOID51=null; + Token char_literal52=null; + Token ID53=null; + + BytecodesAST INT50_tree=null; + BytecodesAST VOID51_tree=null; + BytecodesAST char_literal52_tree=null; + BytecodesAST ID53_tree=null; - // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:1: tipo : ( INT | VOID | 'L' ID ); - public final void tipo() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:6: ( INT | VOID | 'L' ID ) - int alt5=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:6: ( INT | VOID | 'L' ID ) + int alt8=3; switch ( input.LA(1) ) { case INT: { - alt5=1; + alt8=1; } break; case VOID: { - alt5=2; + alt8=2; } break; - case 15: + case 22: { - alt5=3; + alt8=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 5, 0, input); + new NoViableAltException("", 8, 0, input); throw nvae; } - switch (alt5) { + switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:8: INT { - match(input,INT,FOLLOW_INT_in_tipo296); + root_0 = (BytecodesAST)adaptor.nil(); + + + INT50=(Token)match(input,INT,FOLLOW_INT_in_tipo567); + INT50_tree = + (BytecodesAST)adaptor.create(INT50) + ; + adaptor.addChild(root_0, INT50_tree); + } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:14: VOID { - match(input,VOID,FOLLOW_VOID_in_tipo300); + root_0 = (BytecodesAST)adaptor.nil(); + + + VOID51=(Token)match(input,VOID,FOLLOW_VOID_in_tipo571); + VOID51_tree = + (BytecodesAST)adaptor.create(VOID51) + ; + adaptor.addChild(root_0, VOID51_tree); + } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:21: 'L' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:21: 'L' ID { - match(input,15,FOLLOW_15_in_tipo304); + root_0 = (BytecodesAST)adaptor.nil(); + + + char_literal52=(Token)match(input,22,FOLLOW_22_in_tipo575); + char_literal52_tree = + (BytecodesAST)adaptor.create(char_literal52) + ; + adaptor.addChild(root_0, char_literal52_tree); + + + ID53=(Token)match(input,ID,FOLLOW_ID_in_tipo576); + ID53_tree = + (BytecodesAST)adaptor.create(ID53) + ; + adaptor.addChild(root_0, ID53_tree); - match(input,ID,FOLLOW_ID_in_tipo305); } break; } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "tipo" + public static class aritmetica_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); - public final void aritmetica() throws RecognitionException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { + AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + Token a=null; + BytecodesAST a_tree=null; + try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt6=7; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + int alt9=7; switch ( input.LA(1) ) { - case 23: + case 30: { - alt6=1; + alt9=1; } break; - case 61: + case 68: { - alt6=2; + alt9=2; } break; - case 51: + case 58: { - alt6=3; + alt9=3; } break; - case 32: + case 39: { - alt6=4; + alt9=4; } break; - case 55: + case 62: { - alt6=5; + alt9=5; } break; - case 45: + case 52: { - alt6=6; + alt9=6; } break; - case 52: + case 59: { - alt6=7; + alt9=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); + new NoViableAltException("", 9, 0, input); throw nvae; } - switch (alt6) { + switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: a= 'iadd' { - a=(Token)match(input,23,FOLLOW_23_in_aritmetica318); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,30,FOLLOW_30_in_aritmetica589); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: a= 'isub' { - a=(Token)match(input,61,FOLLOW_61_in_aritmetica339); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,68,FOLLOW_68_in_aritmetica610); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'imul' { - a=(Token)match(input,51,FOLLOW_51_in_aritmetica360); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,58,FOLLOW_58_in_aritmetica631); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'idiv' { - a=(Token)match(input,32,FOLLOW_32_in_aritmetica381); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,39,FOLLOW_39_in_aritmetica652); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'irem' { - a=(Token)match(input,55,FOLLOW_55_in_aritmetica402); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,62,FOLLOW_62_in_aritmetica673); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'iinc' { - a=(Token)match(input,45,FOLLOW_45_in_aritmetica423); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,52,FOLLOW_52_in_aritmetica694); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'ineg' { - a=(Token)match(input,52,FOLLOW_52_in_aritmetica444); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,59,FOLLOW_59_in_aritmetica715); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); @@ -781,469 +1875,775 @@ public final void aritmetica() throws RecognitionException { break; } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "aritmetica" + public static class load_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); - public final void load() throws RecognitionException, LabelException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ); + public final AssemblerParser.load_return load() throws RecognitionException, LabelException { + AssemblerParser.load_return retval = new AssemblerParser.load_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + Token a=null; - Token INTEIRO1=null; - Token INTEIRO2=null; + Token INTEIRO54=null; + Token INTEIRO55=null; + Token string_literal56=null; + Token INTEIRO57=null; + Token string_literal58=null; + Token string_literal59=null; + Token string_literal60=null; + Token string_literal61=null; + + BytecodesAST a_tree=null; + BytecodesAST INTEIRO54_tree=null; + BytecodesAST INTEIRO55_tree=null; + BytecodesAST string_literal56_tree=null; + BytecodesAST INTEIRO57_tree=null; + BytecodesAST string_literal58_tree=null; + BytecodesAST string_literal59_tree=null; + BytecodesAST string_literal60_tree=null; + BytecodesAST string_literal61_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt7=18; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ) + int alt10=18; switch ( input.LA(1) ) { - case 31: + case 38: { - alt7=1; + alt10=1; } break; - case 25: + case 32: { - alt7=2; + alt10=2; } break; - case 26: + case 33: { - alt7=3; + alt10=3; } break; - case 27: + case 34: { - alt7=4; + alt10=4; } break; - case 28: + case 35: { - alt7=5; + alt10=5; } break; - case 29: + case 36: { - alt7=6; + alt10=6; } break; - case 30: + case 37: { - alt7=7; + alt10=7; } break; - case 47: + case 54: { - alt7=8; + alt10=8; } break; - case 48: + case 55: { - alt7=9; + alt10=9; } break; - case 49: + case 56: { - alt7=10; + alt10=10; } break; - case 50: + case 57: { - alt7=11; + alt10=11; } break; - case 46: + case 53: { - alt7=12; + alt10=12; } break; - case 63: + case 70: { - alt7=13; + alt10=13; } break; - case 16: + case 23: { - alt7=14; + alt10=14; } break; - case 17: + case 24: { - alt7=15; + alt10=15; } break; - case 18: + case 25: { - alt7=16; + alt10=16; } break; - case 19: + case 26: { - alt7=17; + alt10=17; } break; - case 20: + case 27: { - alt7=18; + alt10=18; } break; default: NoViableAltException nvae = - new NoViableAltException("", 7, 0, input); + new NoViableAltException("", 10, 0, input); throw nvae; } - switch (alt7) { + switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: a= 'iconst_m1' { - a=(Token)match(input,31,FOLLOW_31_in_load481); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,38,FOLLOW_38_in_load752); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:8: a= 'iconst_0' { - a=(Token)match(input,25,FOLLOW_25_in_load495); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,32,FOLLOW_32_in_load766); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_1' { - a=(Token)match(input,26,FOLLOW_26_in_load510); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,33,FOLLOW_33_in_load781); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_2' { - a=(Token)match(input,27,FOLLOW_27_in_load525); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,34,FOLLOW_34_in_load796); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_3' { - a=(Token)match(input,28,FOLLOW_28_in_load540); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,35,FOLLOW_35_in_load811); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_4' { - a=(Token)match(input,29,FOLLOW_29_in_load554); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,36,FOLLOW_36_in_load825); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_5' { - a=(Token)match(input,30,FOLLOW_30_in_load568); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,37,FOLLOW_37_in_load839); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iload_0' { - a=(Token)match(input,47,FOLLOW_47_in_load582); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,54,FOLLOW_54_in_load853); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iload_1' { - a=(Token)match(input,48,FOLLOW_48_in_load597); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,55,FOLLOW_55_in_load868); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload_2' { - a=(Token)match(input,49,FOLLOW_49_in_load612); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,56,FOLLOW_56_in_load883); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload_3' { - a=(Token)match(input,50,FOLLOW_50_in_load627); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,57,FOLLOW_57_in_load898); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload' INTEIRO { - a=(Token)match(input,46,FOLLOW_46_in_load642); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,53,FOLLOW_53_in_load913); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); - INTEIRO1=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load644); - escreverOpcode(a, INTEIRO1); + INTEIRO54=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load915); + INTEIRO54_tree = + (BytecodesAST)adaptor.create(INTEIRO54) + ; + adaptor.addChild(root_0, INTEIRO54_tree); + + + escreverOpcode(a, INTEIRO54); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'ldc' INTEIRO { - a=(Token)match(input,63,FOLLOW_63_in_load659); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,70,FOLLOW_70_in_load930); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); - INTEIRO2=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load661); - escreverOpcode(a, INTEIRO2); + INTEIRO55=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load932); + INTEIRO55_tree = + (BytecodesAST)adaptor.create(INTEIRO55) + ; + adaptor.addChild(root_0, INTEIRO55_tree); + + + escreverOpcode(a, INTEIRO55); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:8: a= 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: 'aload' INTEIRO { - a=(Token)match(input,16,FOLLOW_16_in_load676); + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal56=(Token)match(input,23,FOLLOW_23_in_load943); + string_literal56_tree = + (BytecodesAST)adaptor.create(string_literal56) + ; + adaptor.addChild(root_0, string_literal56_tree); + + + INTEIRO57=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load945); + INTEIRO57_tree = + (BytecodesAST)adaptor.create(INTEIRO57) + ; + adaptor.addChild(root_0, INTEIRO57_tree); - match(input,INTEIRO,FOLLOW_INTEIRO_in_load678); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:8: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: 'aload_0' { - a=(Token)match(input,17,FOLLOW_17_in_load691); + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal58=(Token)match(input,24,FOLLOW_24_in_load954); + string_literal58_tree = + (BytecodesAST)adaptor.create(string_literal58) + ; + adaptor.addChild(root_0, string_literal58_tree); + } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:8: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: 'aload_1' { - a=(Token)match(input,18,FOLLOW_18_in_load704); + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal59=(Token)match(input,25,FOLLOW_25_in_load963); + string_literal59_tree = + (BytecodesAST)adaptor.create(string_literal59) + ; + adaptor.addChild(root_0, string_literal59_tree); + } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:8: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: 'aload_2' { - a=(Token)match(input,19,FOLLOW_19_in_load717); + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal60=(Token)match(input,26,FOLLOW_26_in_load972); + string_literal60_tree = + (BytecodesAST)adaptor.create(string_literal60) + ; + adaptor.addChild(root_0, string_literal60_tree); + } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:8: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: 'aload_3' { - a=(Token)match(input,20,FOLLOW_20_in_load730); + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal61=(Token)match(input,27,FOLLOW_27_in_load981); + string_literal61_tree = + (BytecodesAST)adaptor.create(string_literal61) + ; + adaptor.addChild(root_0, string_literal61_tree); + } break; } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "load" + public static class store_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); - public final void store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); + public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { + AssemblerParser.store_return retval = new AssemblerParser.store_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + Token a=null; - Token INTEIRO3=null; + Token INTEIRO62=null; + + BytecodesAST a_tree=null; + BytecodesAST INTEIRO62_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) - int alt8=5; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) + int alt11=5; switch ( input.LA(1) ) { - case 57: + case 64: { - alt8=1; + alt11=1; } break; - case 58: + case 65: { - alt8=2; + alt11=2; } break; - case 59: + case 66: { - alt8=3; + alt11=3; } break; - case 60: + case 67: { - alt8=4; + alt11=4; } break; - case 56: + case 63: { - alt8=5; + alt11=5; } break; default: NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); + new NoViableAltException("", 11, 0, input); throw nvae; } - switch (alt8) { + switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: a= 'istore_0' { - a=(Token)match(input,57,FOLLOW_57_in_store753); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,64,FOLLOW_64_in_store1004); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + verificarAumentoMemoriaGlobal(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:9: a= 'istore_1' { - a=(Token)match(input,58,FOLLOW_58_in_store769); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,65,FOLLOW_65_in_store1020); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + verificarAumentoMemoriaGlobal(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore_2' { - a=(Token)match(input,59,FOLLOW_59_in_store785); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,66,FOLLOW_66_in_store1036); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + verificarAumentoMemoriaGlobal(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore_3' { - a=(Token)match(input,60,FOLLOW_60_in_store801); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,67,FOLLOW_67_in_store1052); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + verificarAumentoMemoriaGlobal(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore' INTEIRO { - a=(Token)match(input,56,FOLLOW_56_in_store817); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,63,FOLLOW_63_in_store1068); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + INTEIRO62=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1070); + INTEIRO62_tree = + (BytecodesAST)adaptor.create(INTEIRO62) + ; + adaptor.addChild(root_0, INTEIRO62_tree); - INTEIRO3=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store819); - verificarAumentoMemoriaGlobal(a, INTEIRO3); + verificarAumentoMemoriaGlobal(a, INTEIRO62); } break; } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "store" + public static class logica_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); - public final void logica() throws RecognitionException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + public final AssemblerParser.logica_return logica() throws RecognitionException { + AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + Token a=null; + BytecodesAST a_tree=null; + try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt9=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt12=3; switch ( input.LA(1) ) { - case 24: + case 31: { - alt9=1; + alt12=1; } break; - case 54: + case 61: { - alt9=2; + alt12=2; } break; - case 62: + case 69: { - alt9=3; + alt12=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 12, 0, input); throw nvae; } - switch (alt9) { + switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:10: a= 'iand' { - a=(Token)match(input,24,FOLLOW_24_in_logica840); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,31,FOLLOW_31_in_logica1091); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:10: a= 'ior' { - a=(Token)match(input,54,FOLLOW_54_in_logica857); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,61,FOLLOW_61_in_logica1108); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:10: a= 'ixor' { - a=(Token)match(input,62,FOLLOW_62_in_logica874); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,69,FOLLOW_69_in_logica1125); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); @@ -1251,243 +2651,434 @@ public final void logica() throws RecognitionException { break; } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "logica" + public static class desvio_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); - public final void desvio() throws RecognitionException, LabelException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { + AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + Token a=null; Token b=null; + BytecodesAST a_tree=null; + BytecodesAST b_tree=null; + try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt10=13; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt13=13; switch ( input.LA(1) ) { - case 39: + case 46: { - alt10=1; + alt13=1; } break; - case 44: + case 51: { - alt10=2; + alt13=2; } break; - case 43: + case 50: { - alt10=3; + alt13=3; } break; - case 40: + case 47: { - alt10=4; + alt13=4; } break; - case 41: + case 48: { - alt10=5; + alt13=5; } break; - case 42: + case 49: { - alt10=6; + alt13=6; } break; - case 33: + case 40: { - alt10=7; + alt13=7; } break; - case 38: + case 45: { - alt10=8; + alt13=8; } break; - case 37: + case 44: { - alt10=9; + alt13=9; } break; - case 34: + case 41: { - alt10=10; + alt13=10; } break; - case 35: + case 42: { - alt10=11; + alt13=11; } break; - case 36: + case 43: { - alt10=12; + alt13=12; } break; - case 22: + case 29: { - alt10=13; + alt13=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 10, 0, input); + new NoViableAltException("", 13, 0, input); throw nvae; } - switch (alt10) { + switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:10: a= 'ifeq' b= ID { - a=(Token)match(input,39,FOLLOW_39_in_desvio896); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,46,FOLLOW_46_in_desvio1147); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1153); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio902); escreverOpcode(a, b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:10: a= 'ifne' b= ID { - a=(Token)match(input,44,FOLLOW_44_in_desvio919); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,51,FOLLOW_51_in_desvio1170); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1176); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio925); escreverOpcode(a, b); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'iflt' b= ID { - a=(Token)match(input,43,FOLLOW_43_in_desvio942); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,50,FOLLOW_50_in_desvio1193); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1199); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio948); escreverOpcode(a, b); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ifge' b= ID { - a=(Token)match(input,40,FOLLOW_40_in_desvio965); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,47,FOLLOW_47_in_desvio1216); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1222); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio971); escreverOpcode(a, b); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ifgt' b= ID { - a=(Token)match(input,41,FOLLOW_41_in_desvio988); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,48,FOLLOW_48_in_desvio1239); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1245); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio994); escreverOpcode(a, b); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'ifle' b= ID { - a=(Token)match(input,42,FOLLOW_42_in_desvio1011); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,49,FOLLOW_49_in_desvio1262); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1268); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1017); escreverOpcode(a, b); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'if_icmpeq' b= ID { - a=(Token)match(input,33,FOLLOW_33_in_desvio1034); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,40,FOLLOW_40_in_desvio1285); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1291); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1040); escreverOpcode(a, b); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'if_icmpne' b= ID { - a=(Token)match(input,38,FOLLOW_38_in_desvio1057); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,45,FOLLOW_45_in_desvio1308); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1314); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1063); escreverOpcode(a, b); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'if_icmplt' b= ID { - a=(Token)match(input,37,FOLLOW_37_in_desvio1080); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,44,FOLLOW_44_in_desvio1331); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1337); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1086); escreverOpcode(a, b); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'if_icmpge' b= ID { - a=(Token)match(input,34,FOLLOW_34_in_desvio1103); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,41,FOLLOW_41_in_desvio1354); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1360); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1109); escreverOpcode(a, b); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'if_icmpgt' b= ID { - a=(Token)match(input,35,FOLLOW_35_in_desvio1126); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,42,FOLLOW_42_in_desvio1377); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1383); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1132); escreverOpcode(a, b); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'if_icmple' b= ID { - a=(Token)match(input,36,FOLLOW_36_in_desvio1149); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,43,FOLLOW_43_in_desvio1400); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1406); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1155); escreverOpcode(a, b); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'goto' b= ID { - a=(Token)match(input,22,FOLLOW_22_in_desvio1172); + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,29,FOLLOW_29_in_desvio1423); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1429); + b_tree = + (BytecodesAST)adaptor.create(b) + ; + adaptor.addChild(root_0, b_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1178); escreverOpcode(a, b); @@ -1495,16 +3086,24 @@ public final void desvio() throws RecognitionException, LabelException { break; } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } catch (RecognitionException re) { reportError(re); recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "desvio" @@ -1513,104 +3112,124 @@ public final void desvio() throws RecognitionException, LabelException { - public static final BitSet FOLLOW_comando_in_programa16 = new BitSet(new long[]{0xFFFFFFFFFFFF0112L,0x000000000000000FL}); - public static final BitSet FOLLOW_label_in_comando36 = new BitSet(new long[]{0xFFFFFFFFFFFF0100L,0x000000000000000FL}); - public static final BitSet FOLLOW_instrucao_in_comando38 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando42 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label64 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_14_in_label66 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao76 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao80 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_load_in_instrucao84 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_store_in_instrucao88 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_desvio_in_instrucao92 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_logica_in_instrucao96 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_64_in_instrucao119 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_65_in_instrucao141 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_66_in_instrucao165 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao185 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_21_in_manipulacaoObjetos193 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos195 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_13_in_manipulacaoObjetos197 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos199 = new BitSet(new long[]{0x0000000000008440L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos201 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_manipulacaoObjetos224 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos226 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_13_in_manipulacaoObjetos228 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos230 = new BitSet(new long[]{0x0000000000008440L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos232 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_manipulacaoObjetos255 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos257 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_13_in_manipulacaoObjetos259 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos261 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_12_in_manipulacaoObjetos263 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos265 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo296 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo300 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_15_in_tipo304 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_tipo305 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_aritmetica318 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_aritmetica339 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_aritmetica360 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_aritmetica381 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_aritmetica402 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_aritmetica423 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_aritmetica444 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_load481 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load495 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load510 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load525 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_load540 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_load554 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_load568 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load582 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load597 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load612 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_load627 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load642 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_INTEIRO_in_load644 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load659 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_INTEIRO_in_load661 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_load676 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_INTEIRO_in_load678 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_load691 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_18_in_load704 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_19_in_load717 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_20_in_load730 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_store753 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_store769 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_store785 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_store801 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_store817 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_INTEIRO_in_store819 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_logica840 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_logica857 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_logica874 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_desvio896 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio902 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_desvio919 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio925 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_desvio942 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio948 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_desvio965 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio971 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_desvio988 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio994 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_desvio1011 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio1017 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_desvio1034 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio1040 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_desvio1057 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio1063 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_desvio1080 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio1086 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_desvio1103 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio1109 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_desvio1126 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio1132 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_desvio1149 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio1155 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_22_in_desvio1172 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_desvio1178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_programa59 = new BitSet(new long[]{0xFFFFFFFFFF850842L,0x00000000000007FFL}); + public static final BitSet FOLLOW_label_in_comando79 = new BitSet(new long[]{0xFFFFFFFFFF850800L,0x00000000000007FFL}); + public static final BitSet FOLLOW_instrucao_in_comando81 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando85 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label107 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_label109 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao119 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao123 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao127 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_load_in_instrucao131 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_store_in_instrucao135 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_desvio_in_instrucao139 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_logica_in_instrucao143 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_71_in_instrucao166 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_72_in_instrucao188 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_73_in_instrucao212 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao232 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_16_in_definicaoClasse254 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse256 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse258 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse260 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_16_in_definicaoClasse297 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse299 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse301 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse303 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse305 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_18_in_definicaoClasse365 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse367 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_19_in_superClasse408 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_superClasse410 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_membroClasse427 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_membroClasse429 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_membroClasse431 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault450 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_construtorDefault452 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_VOID_in_construtorDefault454 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_manipulacaoObjetos464 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos466 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos468 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos470 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos472 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_manipulacaoObjetos495 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos497 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos499 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos501 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos503 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_manipulacaoObjetos526 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos528 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos530 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos532 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_manipulacaoObjetos534 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos536 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo567 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo571 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_22_in_tipo575 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_tipo576 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_aritmetica589 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_aritmetica610 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_aritmetica631 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_aritmetica652 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_aritmetica673 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_aritmetica694 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_aritmetica715 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load752 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_load766 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load781 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load796 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_load811 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_load825 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load853 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load868 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load883 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load898 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_load913 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load915 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_load930 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load932 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_load943 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load945 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load954 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load963 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load972 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load981 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_store1004 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_store1020 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_store1036 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_store1052 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_store1068 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_store1070 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_logica1091 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_logica1108 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_logica1125 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1147 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1153 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1170 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1176 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1193 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1199 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1216 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1222 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1239 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1245 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1262 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1268 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_desvio1285 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1291 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_desvio1308 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1314 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_desvio1331 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1337 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_desvio1354 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1360 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_desvio1377 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1383 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_desvio1400 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1406 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_desvio1423 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1429 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 7581270..0e42bcd 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -1,5 +1,16 @@ grammar Assembler; +options { + output = AST; + ASTLabelType = BytecodesAST; +} + +tokens { + MEMBRO_CLASSE; + FIELD_DECL; + EXTENDS; +} + @members { protected void escreverOpcode(Token opc); @@ -17,11 +28,23 @@ comando : (label instrucao | instrucao); label : a = ID ':' {definirLabel($a);}; -instrucao: (manipulacaoObjetos | aritmetica | load | store | desvio | logica +instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' | a = 'pop' {escreverOpcode($a);} | a = 'pop2'{escreverOpcode($a);} )? NOVA_LINHA; + +definicaoClasse : '.class' ID NOVA_LINHA membroClasse+ -> ^('.class' ID ^(MEMBRO_CLASSE membroClasse+)) + | '.class' ID NOVA_LINHA superClasse membroClasse+ + -> ^('.class' ID NOVA_LINHA superClasse ^(MEMBRO_CLASSE membroClasse+)) + | '.method' construtorDefault + ; + +superClasse : '.super' ID -> ^(EXTENDS ID) ; + +membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) ; + +construtorDefault : INIT '()' VOID ; manipulacaoObjetos : 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo @@ -52,11 +75,11 @@ load : a = 'iconst_m1'{escreverOpcode($a);} | a = 'iload_3' {escreverOpcode($a);} | a = 'iload' INTEIRO {escreverOpcode($a, $INTEIRO);} | a = 'ldc' INTEIRO {escreverOpcode($a, $INTEIRO);} - | a = 'aload' INTEIRO - | a = 'aload_0' - | a = 'aload_1' - | a = 'aload_2' - | a = 'aload_3' + | 'aload' INTEIRO + | 'aload_0' + | 'aload_1' + | 'aload_2' + | 'aload_3' ; store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} @@ -100,6 +123,6 @@ ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; //LETRA: ('a'..'z' | 'A'..'Z'); -NOVA_LINHA : ';'; +NOVA_LINHA : '\n'; -WS : (' ' | '\t' | '\r' | '\n') {skip();} ; \ No newline at end of file +WS : (' ' | '\t' | '\r') {skip();} ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Classe.g b/src/br/ufpb/iged/interpretador/gramaticas/Classe.g deleted file mode 100644 index edb35e6..0000000 --- a/src/br/ufpb/iged/interpretador/gramaticas/Classe.g +++ /dev/null @@ -1,36 +0,0 @@ -grammar Classe; - -options { - output = AST; - ASTLabelType = BytecodesAST; -} - -tokens { - MEMBRO_CLASSE; - FIELD_DECL; - EXTENDS; -} - -definicaoClasse : '.class' ID membroClasse+ -> ^('.class' ID ^(MEMBRO_CLASSE membroClasse+)) - | '.class' ID NOVA_LINHA superClasse membroClasse+ - -> ^('.class' ID superClasse ^(MEMBRO_CLASSE membroClasse+)) - | '.method' construtorDefault - ; - -superClasse : '.super' ID -> ^(EXTENDS ID) ; - -membroClasse : '.field' ID tipo NOVA_LINHA -> ^(FIELD_DECL ID tipo) ; - -construtorDefault : INIT '()' VOID ; - -tipo : INT | VOID | 'L'ID ; - -INIT : ''; - -INT : 'I'; - -VOID : 'V'; - -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; - -NOVA_LINHA : ';'; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index af99152..92dde14 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -1,13 +1,10 @@ package br.ufpb.iged.interpretador.principal; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; -import java.io.InputStream; import java.util.Scanner; import org.antlr.runtime.ANTLRFileStream; -import org.antlr.runtime.ANTLRInputStream; import org.antlr.runtime.CharStream; import org.antlr.runtime.CommonTokenStream; import org.antlr.runtime.RecognitionException; @@ -22,12 +19,13 @@ import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerLexer; +import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; +import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesErrorNode; import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; +import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; -import br.ufpb.iged.interpretador.symboltable.parser.ClasseLexer; -import br.ufpb.iged.interpretador.symboltable.parser.ClasseParser; import br.ufpb.iged.interpretador.symboltable.parser.Def; public class Interpretador { @@ -77,29 +75,32 @@ public Object errorNode(TokenStream input, Token start, Token stop, public static void main(String[] args) throws Exception { - InputStream entrada = new FileInputStream(NOME_ARQUIVO_ENTRADA); - - Interpretador interpretador = new Interpretador(); - if (carregar(interpretador, entrada)) + //InputStream entrada = new FileInputStream(NOME_ARQUIVO_ENTRADA); + + if (carregar()) { + + Interpretador interpretador = new Interpretador(); + interpretador.cpu(); + + } + } - public static boolean carregar(Interpretador interp, InputStream input) - throws Exception { + public static boolean carregar() { - try { - AssemblerLexer assemblerLexer = new AssemblerLexer( - new ANTLRInputStream(input)); - CommonTokenStream tokens = new CommonTokenStream(assemblerLexer); - BytecodeAssembler assembler = new BytecodeAssembler(tokens, - Definicao.instrucoes); + //AssemblerLexer assemblerLexer = new AssemblerLexer( + // new ANTLRInputStream(input)); + //CommonTokenStream tokens = new CommonTokenStream(assemblerLexer); + //BytecodeAssembler assembler = new BytecodeAssembler(tokens, + // Definicao.instrucoes); //assembler.setTreeAdaptor(bytecodesAdaptor); //RuleReturnScope r = assembler.programa(); - assembler.programa(); //assembler.programa(); - if (assembler.getNumberOfSyntaxErrors() > 0) - return false; + //assembler.programa(); + //if (assembler.getNumberOfSyntaxErrors() > 0) + //return false; //CommonTree tree = (CommonTree)r.getTree(); //CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); //nos.setTokenStream(tokens); @@ -107,51 +108,77 @@ public static boolean carregar(Interpretador interp, InputStream input) //Def def = new Def(nos, tabelaSimbolos); // create Def phase //def.downup(tree); // Do pass 1 //nos.reset(); // rewind AST node stream to root + BytecodeAssembler assembler = carregarClasse("Main.class"); global = tabelaSimbolos.global; global.codigo = assembler.obterCodigoMaquina(); global.tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; - - } finally { - input.close(); - } + + File file = new File(".\\"); + + String[] arquivos = file.list(); + + int i; + + for (i = 0; i < arquivos.length; i++){ + + if (arquivos[i].endsWith(".class") && + !(arquivos[i].equals("Main.class"))) + + carregarClasse(arquivos[i]); + + } + + Simbolo classe = tabelaSimbolos.global.resolver("Teste"); + System.out.println("Classe adicionada:" + classe.nome); + return true; } - public static void carregarClasses() throws IOException, RecognitionException { + public static BytecodeAssembler carregarClasse(String nomeArquivo) { - File file = new File(".\\"); + BytecodeAssembler parser = null; - String[] arquivos = file.list(); - - int i; - - for (i = 0; i < arquivos.length; i++) { + try { - if (arquivos[i].endsWith(".class")) { - - CharStream input = new ANTLRFileStream(arquivos[i]); - - ClasseLexer lexer = new ClasseLexer(input); - CommonTokenStream tokens = new CommonTokenStream(lexer); - ClasseParser parser = new ClasseParser(tokens); - parser.setTreeAdaptor(bytecodesAdaptor); - RuleReturnScope r = parser.definicaoClasse(); // launch parser by calling start rule - CommonTree tree = (CommonTree)r.getTree(); // get tree result - - CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); - nos.setTokenStream(tokens); - Def def = new Def(nos, tabelaSimbolos); // create Def phase - def.downup(tree); // Do pass 1 - nos.reset(); // rewind AST node stream to root - - } + CharStream input = new ANTLRFileStream(nomeArquivo); + + AssemblerLexer lexer = new AssemblerLexer(input); + CommonTokenStream tokens = new CommonTokenStream(lexer); + parser = new BytecodeAssembler(tokens, Definicao.instrucoes); + parser.setTreeAdaptor(bytecodesAdaptor); + RuleReturnScope r = parser.programa(); // launch parser by calling start rule + CommonTree tree = (CommonTree)r.getTree(); // get tree result + + CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); + nos.setTokenStream(tokens); + Def def = new Def(nos, tabelaSimbolos); // create Def phase + def.downup(tree); // Do pass 1 + nos.reset(); // rewind AST node stream to root + + } catch(IOException ioe) { - } + System.out.println(ioe.getMessage()); + + } catch (RecognitionException re){ + + System.out.println(re.getMessage()); + + } catch (LabelException le) { + + System.out.println(le.getMessage()); + + } catch (AcessoIndevidoMemoriaException aime) { + + System.out.println(aime.getMessage()); + + } + + return parser; } - + protected void cpu() { int op1, op2; diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Classe.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Classe.tokens deleted file mode 100644 index dc36f00..0000000 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Classe.tokens +++ /dev/null @@ -1,20 +0,0 @@ -T__12=12 -T__13=13 -T__14=14 -T__15=15 -T__16=16 -T__17=17 -EXTENDS=4 -FIELD_DECL=5 -ID=6 -INIT=7 -INT=8 -MEMBRO_CLASSE=9 -NOVA_LINHA=10 -VOID=11 -'()'=12 -'.class'=13 -'.field'=14 -'.method'=15 -'.super'=16 -'L'=17 diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseLexer.java b/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseLexer.java deleted file mode 100644 index 610010f..0000000 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseLexer.java +++ /dev/null @@ -1,574 +0,0 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g 2012-06-21 00:00:41 - -package br.ufpb.iged.interpretador.symboltable.parser; - -import org.antlr.runtime.*; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; - -@SuppressWarnings({"all", "warnings", "unchecked"}) -public class ClasseLexer extends Lexer { - public static final int EOF=-1; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int MEMBRO_CLASSE=9; - public static final int NOVA_LINHA=10; - public static final int VOID=11; - - // delegates - // delegators - public Lexer[] getDelegates() { - return new Lexer[] {}; - } - - public ClasseLexer() {} - public ClasseLexer(CharStream input) { - this(input, new RecognizerSharedState()); - } - public ClasseLexer(CharStream input, RecognizerSharedState state) { - super(input,state); - } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g"; } - - // $ANTLR start "T__12" - public final void mT__12() throws RecognitionException { - try { - int _type = T__12; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:2:7: ( '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:2:9: '()' - { - match("()"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__12" - - // $ANTLR start "T__13" - public final void mT__13() throws RecognitionException { - try { - int _type = T__13; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:3:7: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:3:9: '.class' - { - match(".class"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__13" - - // $ANTLR start "T__14" - public final void mT__14() throws RecognitionException { - try { - int _type = T__14; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:4:7: ( '.field' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:4:9: '.field' - { - match(".field"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__14" - - // $ANTLR start "T__15" - public final void mT__15() throws RecognitionException { - try { - int _type = T__15; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:5:7: ( '.method' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:5:9: '.method' - { - match(".method"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__15" - - // $ANTLR start "T__16" - public final void mT__16() throws RecognitionException { - try { - int _type = T__16; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:6:7: ( '.super' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:6:9: '.super' - { - match(".super"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__16" - - // $ANTLR start "T__17" - public final void mT__17() throws RecognitionException { - try { - int _type = T__17; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:7:7: ( 'L' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:7:9: 'L' - { - match('L'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__17" - - // $ANTLR start "INIT" - public final void mINIT() throws RecognitionException { - try { - int _type = INIT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:28:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:28:8: '' - { - match(""); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "INIT" - - // $ANTLR start "INT" - public final void mINT() throws RecognitionException { - try { - int _type = INT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:30:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:30:7: 'I' - { - match('I'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "INT" - - // $ANTLR start "VOID" - public final void mVOID() throws RecognitionException { - try { - int _type = VOID; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:32:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:32:8: 'V' - { - match('V'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "VOID" - - // $ANTLR start "ID" - public final void mID() throws RecognitionException { - try { - int _type = ID; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:34:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:34:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - { - if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:34:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - loop1: - do { - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0=='.'||(LA1_0 >= '0' && LA1_0 <= '9')||(LA1_0 >= 'A' && LA1_0 <= 'Z')||(LA1_0 >= 'a' && LA1_0 <= 'z')) ) { - alt1=1; - } - - - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g: - { - if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { - input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse; - } - - - } - break; - - default : - break loop1; - } - } while (true); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "ID" - - // $ANTLR start "NOVA_LINHA" - public final void mNOVA_LINHA() throws RecognitionException { - try { - int _type = NOVA_LINHA; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:36:12: ( ';' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:36:14: ';' - { - match(';'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "NOVA_LINHA" - - public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | INIT | INT | VOID | ID | NOVA_LINHA ) - int alt2=11; - switch ( input.LA(1) ) { - case '(': - { - alt2=1; - } - break; - case '.': - { - switch ( input.LA(2) ) { - case 'c': - { - alt2=2; - } - break; - case 'f': - { - alt2=3; - } - break; - case 'm': - { - alt2=4; - } - break; - case 's': - { - alt2=5; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 2, 2, input); - - throw nvae; - - } - - } - break; - case 'L': - { - int LA2_3 = input.LA(2); - - if ( (LA2_3=='.'||(LA2_3 >= '0' && LA2_3 <= '9')||(LA2_3 >= 'A' && LA2_3 <= 'Z')||(LA2_3 >= 'a' && LA2_3 <= 'z')) ) { - alt2=10; - } - else { - alt2=6; - } - } - break; - case '<': - { - alt2=7; - } - break; - case 'I': - { - int LA2_5 = input.LA(2); - - if ( (LA2_5=='.'||(LA2_5 >= '0' && LA2_5 <= '9')||(LA2_5 >= 'A' && LA2_5 <= 'Z')||(LA2_5 >= 'a' && LA2_5 <= 'z')) ) { - alt2=10; - } - else { - alt2=8; - } - } - break; - case 'V': - { - int LA2_6 = input.LA(2); - - if ( (LA2_6=='.'||(LA2_6 >= '0' && LA2_6 <= '9')||(LA2_6 >= 'A' && LA2_6 <= 'Z')||(LA2_6 >= 'a' && LA2_6 <= 'z')) ) { - alt2=10; - } - else { - alt2=9; - } - } - break; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'J': - case 'K': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'W': - case 'X': - case 'Y': - case 'Z': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': - { - alt2=10; - } - break; - case ';': - { - alt2=11; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 2, 0, input); - - throw nvae; - - } - - switch (alt2) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:10: T__12 - { - mT__12(); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:16: T__13 - { - mT__13(); - - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:22: T__14 - { - mT__14(); - - - } - break; - case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:28: T__15 - { - mT__15(); - - - } - break; - case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:34: T__16 - { - mT__16(); - - - } - break; - case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:40: T__17 - { - mT__17(); - - - } - break; - case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:46: INIT - { - mINIT(); - - - } - break; - case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:51: INT - { - mINT(); - - - } - break; - case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:55: VOID - { - mVOID(); - - - } - break; - case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:60: ID - { - mID(); - - - } - break; - case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:1:63: NOVA_LINHA - { - mNOVA_LINHA(); - - - } - break; - - } - - } - - - - -} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseParser.java b/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseParser.java deleted file mode 100644 index c9f4f58..0000000 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/ClasseParser.java +++ /dev/null @@ -1,840 +0,0 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g 2012-06-21 00:00:41 - -package br.ufpb.iged.interpretador.symboltable.parser; - -import org.antlr.runtime.*; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; - -import org.antlr.runtime.tree.*; - -import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; - - -@SuppressWarnings({"all", "warnings", "unchecked"}) -public class ClasseParser extends Parser { - public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "MEMBRO_CLASSE", "NOVA_LINHA", "VOID", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'L'" - }; - - public static final int EOF=-1; - public static final int T__12=12; - public static final int T__13=13; - public static final int T__14=14; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int MEMBRO_CLASSE=9; - public static final int NOVA_LINHA=10; - public static final int VOID=11; - - // delegates - public Parser[] getDelegates() { - return new Parser[] {}; - } - - // delegators - - - public ClasseParser(TokenStream input) { - this(input, new RecognizerSharedState()); - } - public ClasseParser(TokenStream input, RecognizerSharedState state) { - super(input, state); - } - -protected TreeAdaptor adaptor = new CommonTreeAdaptor(); - -public void setTreeAdaptor(TreeAdaptor adaptor) { - this.adaptor = adaptor; -} -public TreeAdaptor getTreeAdaptor() { - return adaptor; -} - public String[] getTokenNames() { return ClasseParser.tokenNames; } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g"; } - - - public static class definicaoClasse_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:1: definicaoClasse : ( '.class' ID ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); - public final ClasseParser.definicaoClasse_return definicaoClasse() throws RecognitionException { - ClasseParser.definicaoClasse_return retval = new ClasseParser.definicaoClasse_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal1=null; - Token ID2=null; - Token string_literal4=null; - Token ID5=null; - Token NOVA_LINHA6=null; - Token string_literal9=null; - ClasseParser.membroClasse_return membroClasse3 =null; - - ClasseParser.superClasse_return superClasse7 =null; - - ClasseParser.membroClasse_return membroClasse8 =null; - - ClasseParser.construtorDefault_return construtorDefault10 =null; - - - BytecodesAST string_literal1_tree=null; - BytecodesAST ID2_tree=null; - BytecodesAST string_literal4_tree=null; - BytecodesAST ID5_tree=null; - BytecodesAST NOVA_LINHA6_tree=null; - BytecodesAST string_literal9_tree=null; - RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_13=new RewriteRuleTokenStream(adaptor,"token 13"); - RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); - RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:17: ( '.class' ID ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) - int alt3=3; - int LA3_0 = input.LA(1); - - if ( (LA3_0==13) ) { - int LA3_1 = input.LA(2); - - if ( (LA3_1==ID) ) { - int LA3_3 = input.LA(3); - - if ( (LA3_3==NOVA_LINHA) ) { - alt3=2; - } - else if ( (LA3_3==14) ) { - alt3=1; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 3, 3, input); - - throw nvae; - - } - } - else { - NoViableAltException nvae = - new NoViableAltException("", 3, 1, input); - - throw nvae; - - } - } - else if ( (LA3_0==15) ) { - alt3=3; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 3, 0, input); - - throw nvae; - - } - switch (alt3) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:19: '.class' ID ( membroClasse )+ - { - string_literal1=(Token)match(input,13,FOLLOW_13_in_definicaoClasse53); - stream_13.add(string_literal1); - - - ID2=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse55); - stream_ID.add(ID2); - - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:31: ( membroClasse )+ - int cnt1=0; - loop1: - do { - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0==14) ) { - alt1=1; - } - - - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:31: membroClasse - { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse57); - membroClasse3=membroClasse(); - - state._fsp--; - - stream_membroClasse.add(membroClasse3.getTree()); - - } - break; - - default : - if ( cnt1 >= 1 ) break loop1; - EarlyExitException eee = - new EarlyExitException(1, input); - throw eee; - } - cnt1++; - } while (true); - - - // AST REWRITE - // elements: membroClasse, ID, 13 - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 14:46: -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:49: ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_13.nextNode() - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:14:63: ^( MEMBRO_CLASSE ( membroClasse )+ ) - { - BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); - root_2 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") - , root_2); - - if ( !(stream_membroClasse.hasNext()) ) { - throw new RewriteEarlyExitException(); - } - while ( stream_membroClasse.hasNext() ) { - adaptor.addChild(root_2, stream_membroClasse.nextTree()); - - } - stream_membroClasse.reset(); - - adaptor.addChild(root_1, root_2); - } - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:15:19: '.class' ID NOVA_LINHA superClasse ( membroClasse )+ - { - string_literal4=(Token)match(input,13,FOLLOW_13_in_definicaoClasse94); - stream_13.add(string_literal4); - - - ID5=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse96); - stream_ID.add(ID5); - - - NOVA_LINHA6=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse98); - stream_NOVA_LINHA.add(NOVA_LINHA6); - - - pushFollow(FOLLOW_superClasse_in_definicaoClasse100); - superClasse7=superClasse(); - - state._fsp--; - - stream_superClasse.add(superClasse7.getTree()); - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:15:54: ( membroClasse )+ - int cnt2=0; - loop2: - do { - int alt2=2; - int LA2_0 = input.LA(1); - - if ( (LA2_0==14) ) { - alt2=1; - } - - - switch (alt2) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:15:54: membroClasse - { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse102); - membroClasse8=membroClasse(); - - state._fsp--; - - stream_membroClasse.add(membroClasse8.getTree()); - - } - break; - - default : - if ( cnt2 >= 1 ) break loop2; - EarlyExitException eee = - new EarlyExitException(2, input); - throw eee; - } - cnt2++; - } while (true); - - - // AST REWRITE - // elements: ID, membroClasse, superClasse, 13 - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 16:19: -> ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:16:22: ^( '.class' ID superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_13.nextNode() - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - adaptor.addChild(root_1, stream_superClasse.nextTree()); - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:16:48: ^( MEMBRO_CLASSE ( membroClasse )+ ) - { - BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); - root_2 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") - , root_2); - - if ( !(stream_membroClasse.hasNext()) ) { - throw new RewriteEarlyExitException(); - } - while ( stream_membroClasse.hasNext() ) { - adaptor.addChild(root_2, stream_membroClasse.nextTree()); - - } - stream_membroClasse.reset(); - - adaptor.addChild(root_1, root_2); - } - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:17:19: '.method' construtorDefault - { - root_0 = (BytecodesAST)adaptor.nil(); - - - string_literal9=(Token)match(input,15,FOLLOW_15_in_definicaoClasse160); - string_literal9_tree = - (BytecodesAST)adaptor.create(string_literal9) - ; - adaptor.addChild(root_0, string_literal9_tree); - - - pushFollow(FOLLOW_construtorDefault_in_definicaoClasse162); - construtorDefault10=construtorDefault(); - - state._fsp--; - - adaptor.addChild(root_0, construtorDefault10.getTree()); - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "definicaoClasse" - - - public static class superClasse_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:20:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; - public final ClasseParser.superClasse_return superClasse() throws RecognitionException { - ClasseParser.superClasse_return retval = new ClasseParser.superClasse_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal11=null; - Token ID12=null; - - BytecodesAST string_literal11_tree=null; - BytecodesAST ID12_tree=null; - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:20:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:20:15: '.super' ID - { - string_literal11=(Token)match(input,16,FOLLOW_16_in_superClasse203); - stream_16.add(string_literal11); - - - ID12=(Token)match(input,ID,FOLLOW_ID_in_superClasse205); - stream_ID.add(ID12); - - - // AST REWRITE - // elements: ID - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 20:27: -> ^( EXTENDS ID ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:20:30: ^( EXTENDS ID ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(EXTENDS, "EXTENDS") - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "superClasse" - - - public static class membroClasse_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:22:1: membroClasse : '.field' ID tipo NOVA_LINHA -> ^( FIELD_DECL ID tipo ) ; - public final ClasseParser.membroClasse_return membroClasse() throws RecognitionException { - ClasseParser.membroClasse_return retval = new ClasseParser.membroClasse_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal13=null; - Token ID14=null; - Token NOVA_LINHA16=null; - ClasseParser.tipo_return tipo15 =null; - - - BytecodesAST string_literal13_tree=null; - BytecodesAST ID14_tree=null; - BytecodesAST NOVA_LINHA16_tree=null; - RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_14=new RewriteRuleTokenStream(adaptor,"token 14"); - RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:22:14: ( '.field' ID tipo NOVA_LINHA -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:22:16: '.field' ID tipo NOVA_LINHA - { - string_literal13=(Token)match(input,14,FOLLOW_14_in_membroClasse222); - stream_14.add(string_literal13); - - - ID14=(Token)match(input,ID,FOLLOW_ID_in_membroClasse224); - stream_ID.add(ID14); - - - pushFollow(FOLLOW_tipo_in_membroClasse226); - tipo15=tipo(); - - state._fsp--; - - stream_tipo.add(tipo15.getTree()); - - NOVA_LINHA16=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_membroClasse228); - stream_NOVA_LINHA.add(NOVA_LINHA16); - - - // AST REWRITE - // elements: ID, tipo - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 22:44: -> ^( FIELD_DECL ID tipo ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:22:47: ^( FIELD_DECL ID tipo ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(FIELD_DECL, "FIELD_DECL") - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - adaptor.addChild(root_1, stream_tipo.nextTree()); - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "membroClasse" - - - public static class construtorDefault_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:24:1: construtorDefault : INIT '()' VOID ; - public final ClasseParser.construtorDefault_return construtorDefault() throws RecognitionException { - ClasseParser.construtorDefault_return retval = new ClasseParser.construtorDefault_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token INIT17=null; - Token string_literal18=null; - Token VOID19=null; - - BytecodesAST INIT17_tree=null; - BytecodesAST string_literal18_tree=null; - BytecodesAST VOID19_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:24:19: ( INIT '()' VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:24:21: INIT '()' VOID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - INIT17=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault247); - INIT17_tree = - (BytecodesAST)adaptor.create(INIT17) - ; - adaptor.addChild(root_0, INIT17_tree); - - - string_literal18=(Token)match(input,12,FOLLOW_12_in_construtorDefault249); - string_literal18_tree = - (BytecodesAST)adaptor.create(string_literal18) - ; - adaptor.addChild(root_0, string_literal18_tree); - - - VOID19=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault251); - VOID19_tree = - (BytecodesAST)adaptor.create(VOID19) - ; - adaptor.addChild(root_0, VOID19_tree); - - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "construtorDefault" - - - public static class tipo_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:1: tipo : ( INT | VOID | 'L' ID ); - public final ClasseParser.tipo_return tipo() throws RecognitionException { - ClasseParser.tipo_return retval = new ClasseParser.tipo_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token INT20=null; - Token VOID21=null; - Token char_literal22=null; - Token ID23=null; - - BytecodesAST INT20_tree=null; - BytecodesAST VOID21_tree=null; - BytecodesAST char_literal22_tree=null; - BytecodesAST ID23_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:6: ( INT | VOID | 'L' ID ) - int alt4=3; - switch ( input.LA(1) ) { - case INT: - { - alt4=1; - } - break; - case VOID: - { - alt4=2; - } - break; - case 17: - { - alt4=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 4, 0, input); - - throw nvae; - - } - - switch (alt4) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:8: INT - { - root_0 = (BytecodesAST)adaptor.nil(); - - - INT20=(Token)match(input,INT,FOLLOW_INT_in_tipo261); - INT20_tree = - (BytecodesAST)adaptor.create(INT20) - ; - adaptor.addChild(root_0, INT20_tree); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:14: VOID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - VOID21=(Token)match(input,VOID,FOLLOW_VOID_in_tipo265); - VOID21_tree = - (BytecodesAST)adaptor.create(VOID21) - ; - adaptor.addChild(root_0, VOID21_tree); - - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Classe.g:26:21: 'L' ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - char_literal22=(Token)match(input,17,FOLLOW_17_in_tipo269); - char_literal22_tree = - (BytecodesAST)adaptor.create(char_literal22) - ; - adaptor.addChild(root_0, char_literal22_tree); - - - ID23=(Token)match(input,ID,FOLLOW_ID_in_tipo270); - ID23_tree = - (BytecodesAST)adaptor.create(ID23) - ; - adaptor.addChild(root_0, ID23_tree); - - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "tipo" - - // Delegated rules - - - - - public static final BitSet FOLLOW_13_in_definicaoClasse53 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse55 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse57 = new BitSet(new long[]{0x0000000000004002L}); - public static final BitSet FOLLOW_13_in_definicaoClasse94 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse96 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse98 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse100 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse102 = new BitSet(new long[]{0x0000000000004002L}); - public static final BitSet FOLLOW_15_in_definicaoClasse160 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse162 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_superClasse203 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_superClasse205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_14_in_membroClasse222 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_membroClasse224 = new BitSet(new long[]{0x0000000000020900L}); - public static final BitSet FOLLOW_tipo_in_membroClasse226 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_membroClasse228 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault247 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_12_in_construtorDefault249 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_VOID_in_construtorDefault251 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo261 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo265 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_tipo269 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_tipo270 = new BitSet(new long[]{0x0000000000000002L}); - -} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index 41fc2e7..fd31b0f 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-21 00:00:40 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-21 23:43:41 package br.ufpb.iged.interpretador.symboltable.parser; From 09a9b878ea8e21d59cb274bb6130be676061d5a6 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 24 Jun 2012 03:08:02 -0300 Subject: [PATCH 19/79] commit --- .../parser/AssemblerLexer.java | 48 +- .../parser/AssemblerParser.java | 1114 ++++++++--------- .../iged/interpretador/gramaticas/Assembler.g | 5 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 15 +- .../interpretador/symboltable/parser/Def.java | 173 ++- 5 files changed, 598 insertions(+), 757 deletions(-) diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index aa71b39..a46d724 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-21 23:43:38 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-24 02:54:42 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -1476,8 +1476,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:8: '' { match(""); @@ -1499,8 +1499,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:7: 'I' { match('I'); @@ -1520,8 +1520,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:8: 'V' { match('V'); @@ -1541,10 +1541,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1563,7 +1563,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:9: 'null' { match("null"); @@ -1572,7 +1572,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:18: 'NULL' { match("NULL"); @@ -1600,10 +1600,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1612,7 +1612,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:11: '-' { match('-'); @@ -1622,7 +1622,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1677,8 +1677,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1690,7 +1690,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1740,8 +1740,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:14: '\\n' { match('\n'); @@ -1761,8 +1761,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index 4a1c26d..f448684 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-21 23:43:38 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-24 02:54:41 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -695,7 +695,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID NOVA_LINHA superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -706,77 +706,33 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec Token string_literal15=null; Token ID16=null; Token NOVA_LINHA17=null; - Token string_literal19=null; - Token ID20=null; - Token NOVA_LINHA21=null; - Token string_literal24=null; - AssemblerParser.membroClasse_return membroClasse18 =null; - - AssemblerParser.superClasse_return superClasse22 =null; + Token string_literal20=null; + AssemblerParser.superClasse_return superClasse18 =null; - AssemblerParser.membroClasse_return membroClasse23 =null; + AssemblerParser.membroClasse_return membroClasse19 =null; - AssemblerParser.construtorDefault_return construtorDefault25 =null; + AssemblerParser.construtorDefault_return construtorDefault21 =null; BytecodesAST string_literal15_tree=null; BytecodesAST ID16_tree=null; BytecodesAST NOVA_LINHA17_tree=null; - BytecodesAST string_literal19_tree=null; - BytecodesAST ID20_tree=null; - BytecodesAST NOVA_LINHA21_tree=null; - BytecodesAST string_literal24_tree=null; + BytecodesAST string_literal20_tree=null; RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:17: ( '.class' ID NOVA_LINHA ( membroClasse )+ -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.class' ID NOVA_LINHA superClasse ( membroClasse )+ -> ^( '.class' ID NOVA_LINHA superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) - int alt6=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) + int alt6=2; int LA6_0 = input.LA(1); if ( (LA6_0==16) ) { - int LA6_1 = input.LA(2); - - if ( (LA6_1==ID) ) { - int LA6_3 = input.LA(3); - - if ( (LA6_3==NOVA_LINHA) ) { - int LA6_4 = input.LA(4); - - if ( (LA6_4==17) ) { - alt6=1; - } - else if ( (LA6_4==19) ) { - alt6=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 6, 4, input); - - throw nvae; - - } - } - else { - NoViableAltException nvae = - new NoViableAltException("", 6, 3, input); - - throw nvae; - - } - } - else { - NoViableAltException nvae = - new NoViableAltException("", 6, 1, input); - - throw nvae; - - } + alt6=1; } else if ( (LA6_0==18) ) { - alt6=3; + alt6=2; } else { NoViableAltException nvae = @@ -787,7 +743,7 @@ else if ( (LA6_0==18) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:19: '.class' ID NOVA_LINHA ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { string_literal15=(Token)match(input,16,FOLLOW_16_in_definicaoClasse254); stream_16.add(string_literal15); @@ -801,118 +757,31 @@ else if ( (LA6_0==18) ) { stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:42: ( membroClasse )+ - int cnt4=0; - loop4: - do { - int alt4=2; - int LA4_0 = input.LA(1); - - if ( (LA4_0==17) ) { - alt4=1; - } - - - switch (alt4) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:42: membroClasse - { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse260); - membroClasse18=membroClasse(); - - state._fsp--; - - stream_membroClasse.add(membroClasse18.getTree()); - - } - break; - - default : - if ( cnt4 >= 1 ) break loop4; - EarlyExitException eee = - new EarlyExitException(4, input); - throw eee; - } - cnt4++; - } while (true); - - - // AST REWRITE - // elements: membroClasse, 16, ID - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 37:57: -> ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:60: ^( '.class' ID ^( MEMBRO_CLASSE ( membroClasse )+ ) ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_16.nextNode() - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:74: ^( MEMBRO_CLASSE ( membroClasse )+ ) - { - BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); - root_2 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") - , root_2); - - if ( !(stream_membroClasse.hasNext()) ) { - throw new RewriteEarlyExitException(); - } - while ( stream_membroClasse.hasNext() ) { - adaptor.addChild(root_2, stream_membroClasse.nextTree()); - - } - stream_membroClasse.reset(); - - adaptor.addChild(root_1, root_2); - } - - adaptor.addChild(root_0, root_1); - } + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:42: ( superClasse )? + int alt4=2; + int LA4_0 = input.LA(1); + if ( (LA4_0==19) ) { + alt4=1; } + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:42: superClasse + { + pushFollow(FOLLOW_superClasse_in_definicaoClasse260); + superClasse18=superClasse(); + state._fsp--; - retval.tree = root_0; - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:19: '.class' ID NOVA_LINHA superClasse ( membroClasse )+ - { - string_literal19=(Token)match(input,16,FOLLOW_16_in_definicaoClasse297); - stream_16.add(string_literal19); - - - ID20=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse299); - stream_ID.add(ID20); - - - NOVA_LINHA21=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse301); - stream_NOVA_LINHA.add(NOVA_LINHA21); - + stream_superClasse.add(superClasse18.getTree()); - pushFollow(FOLLOW_superClasse_in_definicaoClasse303); - superClasse22=superClasse(); + } + break; - state._fsp--; + } - stream_superClasse.add(superClasse22.getTree()); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:54: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:55: ( membroClasse )+ int cnt5=0; loop5: do { @@ -926,14 +795,14 @@ else if ( (LA6_0==18) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:54: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:55: membroClasse { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse305); - membroClasse23=membroClasse(); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse263); + membroClasse19=membroClasse(); state._fsp--; - stream_membroClasse.add(membroClasse23.getTree()); + stream_membroClasse.add(membroClasse19.getTree()); } break; @@ -949,7 +818,7 @@ else if ( (LA6_0==18) ) { // AST REWRITE - // elements: 16, ID, superClasse, membroClasse, NOVA_LINHA + // elements: ID, membroClasse, superClasse, 16 // token labels: // rule labels: retval // token list labels: @@ -959,9 +828,9 @@ else if ( (LA6_0==18) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 39:19: -> ^( '.class' ID NOVA_LINHA superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 38:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:22: ^( '.class' ID NOVA_LINHA superClasse ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -972,13 +841,14 @@ else if ( (LA6_0==18) ) { stream_ID.nextNode() ); - adaptor.addChild(root_1, - stream_NOVA_LINHA.nextNode() - ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:36: ( superClasse )? + if ( stream_superClasse.hasNext() ) { + adaptor.addChild(root_1, stream_superClasse.nextTree()); - adaptor.addChild(root_1, stream_superClasse.nextTree()); + } + stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:59: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -1007,25 +877,25 @@ else if ( (LA6_0==18) ) { } break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:19: '.method' construtorDefault + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:19: '.method' construtorDefault { root_0 = (BytecodesAST)adaptor.nil(); - string_literal24=(Token)match(input,18,FOLLOW_18_in_definicaoClasse365); - string_literal24_tree = - (BytecodesAST)adaptor.create(string_literal24) + string_literal20=(Token)match(input,18,FOLLOW_18_in_definicaoClasse322); + string_literal20_tree = + (BytecodesAST)adaptor.create(string_literal20) ; - adaptor.addChild(root_0, string_literal24_tree); + adaptor.addChild(root_0, string_literal20_tree); - pushFollow(FOLLOW_construtorDefault_in_definicaoClasse367); - construtorDefault25=construtorDefault(); + pushFollow(FOLLOW_construtorDefault_in_definicaoClasse324); + construtorDefault21=construtorDefault(); state._fsp--; - adaptor.addChild(root_0, construtorDefault25.getTree()); + adaptor.addChild(root_0, construtorDefault21.getTree()); } break; @@ -1060,7 +930,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1068,24 +938,24 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST root_0 = null; - Token string_literal26=null; - Token ID27=null; + Token string_literal22=null; + Token ID23=null; - BytecodesAST string_literal26_tree=null; - BytecodesAST ID27_tree=null; + BytecodesAST string_literal22_tree=null; + BytecodesAST ID23_tree=null; RewriteRuleTokenStream stream_19=new RewriteRuleTokenStream(adaptor,"token 19"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:15: '.super' ID { - string_literal26=(Token)match(input,19,FOLLOW_19_in_superClasse408); - stream_19.add(string_literal26); + string_literal22=(Token)match(input,19,FOLLOW_19_in_superClasse365); + stream_19.add(string_literal22); - ID27=(Token)match(input,ID,FOLLOW_ID_in_superClasse410); - stream_ID.add(ID27); + ID23=(Token)match(input,ID,FOLLOW_ID_in_superClasse367); + stream_ID.add(ID23); // AST REWRITE @@ -1099,9 +969,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 43:27: -> ^( EXTENDS ID ) + // 42:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1151,7 +1021,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1159,34 +1029,34 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST root_0 = null; - Token string_literal28=null; - Token ID29=null; - AssemblerParser.tipo_return tipo30 =null; + Token string_literal24=null; + Token ID25=null; + AssemblerParser.tipo_return tipo26 =null; - BytecodesAST string_literal28_tree=null; - BytecodesAST ID29_tree=null; + BytecodesAST string_literal24_tree=null; + BytecodesAST ID25_tree=null; RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:16: '.field' ID tipo { - string_literal28=(Token)match(input,17,FOLLOW_17_in_membroClasse427); - stream_17.add(string_literal28); + string_literal24=(Token)match(input,17,FOLLOW_17_in_membroClasse384); + stream_17.add(string_literal24); - ID29=(Token)match(input,ID,FOLLOW_ID_in_membroClasse429); - stream_ID.add(ID29); + ID25=(Token)match(input,ID,FOLLOW_ID_in_membroClasse386); + stream_ID.add(ID25); - pushFollow(FOLLOW_tipo_in_membroClasse431); - tipo30=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse388); + tipo26=tipo(); state._fsp--; - stream_tipo.add(tipo30.getTree()); + stream_tipo.add(tipo26.getTree()); // AST REWRITE // elements: ID, tipo @@ -1199,9 +1069,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 45:33: -> ^( FIELD_DECL ID tipo ) + // 44:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1253,7 +1123,7 @@ public static class construtorDefault_return extends ParserRuleReturnScope { // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: construtorDefault : INIT '()' VOID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: construtorDefault : INIT '()' VOID ; public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); retval.start = input.LT(1); @@ -1261,40 +1131,40 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws BytecodesAST root_0 = null; - Token INIT31=null; - Token string_literal32=null; - Token VOID33=null; + Token INIT27=null; + Token string_literal28=null; + Token VOID29=null; - BytecodesAST INIT31_tree=null; - BytecodesAST string_literal32_tree=null; - BytecodesAST VOID33_tree=null; + BytecodesAST INIT27_tree=null; + BytecodesAST string_literal28_tree=null; + BytecodesAST VOID29_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:19: ( INIT '()' VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:21: INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:19: ( INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:21: INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - INIT31=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault450); - INIT31_tree = - (BytecodesAST)adaptor.create(INIT31) + INIT27=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault407); + INIT27_tree = + (BytecodesAST)adaptor.create(INIT27) ; - adaptor.addChild(root_0, INIT31_tree); + adaptor.addChild(root_0, INIT27_tree); - string_literal32=(Token)match(input,15,FOLLOW_15_in_construtorDefault452); - string_literal32_tree = - (BytecodesAST)adaptor.create(string_literal32) + string_literal28=(Token)match(input,15,FOLLOW_15_in_construtorDefault409); + string_literal28_tree = + (BytecodesAST)adaptor.create(string_literal28) ; - adaptor.addChild(root_0, string_literal32_tree); + adaptor.addChild(root_0, string_literal28_tree); - VOID33=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault454); - VOID33_tree = - (BytecodesAST)adaptor.create(VOID33) + VOID29=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault411); + VOID29_tree = + (BytecodesAST)adaptor.create(VOID29) ; - adaptor.addChild(root_0, VOID33_tree); + adaptor.addChild(root_0, VOID29_tree); } @@ -1328,7 +1198,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1336,42 +1206,42 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; - Token string_literal34=null; - Token ID35=null; - Token char_literal36=null; - Token ID37=null; - Token string_literal39=null; - Token ID40=null; - Token char_literal41=null; - Token ID42=null; + Token string_literal30=null; + Token ID31=null; + Token char_literal32=null; + Token ID33=null; + Token string_literal35=null; + Token ID36=null; + Token char_literal37=null; + Token ID38=null; + Token string_literal40=null; + Token ID41=null; + Token char_literal42=null; + Token INIT43=null; Token string_literal44=null; - Token ID45=null; - Token char_literal46=null; - Token INIT47=null; - Token string_literal48=null; - Token VOID49=null; - AssemblerParser.tipo_return tipo38 =null; - - AssemblerParser.tipo_return tipo43 =null; - - - BytecodesAST string_literal34_tree=null; - BytecodesAST ID35_tree=null; - BytecodesAST char_literal36_tree=null; - BytecodesAST ID37_tree=null; - BytecodesAST string_literal39_tree=null; - BytecodesAST ID40_tree=null; - BytecodesAST char_literal41_tree=null; - BytecodesAST ID42_tree=null; + Token VOID45=null; + AssemblerParser.tipo_return tipo34 =null; + + AssemblerParser.tipo_return tipo39 =null; + + + BytecodesAST string_literal30_tree=null; + BytecodesAST ID31_tree=null; + BytecodesAST char_literal32_tree=null; + BytecodesAST ID33_tree=null; + BytecodesAST string_literal35_tree=null; + BytecodesAST ID36_tree=null; + BytecodesAST char_literal37_tree=null; + BytecodesAST ID38_tree=null; + BytecodesAST string_literal40_tree=null; + BytecodesAST ID41_tree=null; + BytecodesAST char_literal42_tree=null; + BytecodesAST INIT43_tree=null; BytecodesAST string_literal44_tree=null; - BytecodesAST ID45_tree=null; - BytecodesAST char_literal46_tree=null; - BytecodesAST INIT47_tree=null; - BytecodesAST string_literal48_tree=null; - BytecodesAST VOID49_tree=null; + BytecodesAST VOID45_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) int alt7=3; switch ( input.LA(1) ) { case 28: @@ -1399,137 +1269,137 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:22: 'getfield' ID '/' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:22: 'getfield' ID '/' ID tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal34=(Token)match(input,28,FOLLOW_28_in_manipulacaoObjetos464); - string_literal34_tree = - (BytecodesAST)adaptor.create(string_literal34) + string_literal30=(Token)match(input,28,FOLLOW_28_in_manipulacaoObjetos421); + string_literal30_tree = + (BytecodesAST)adaptor.create(string_literal30) ; - adaptor.addChild(root_0, string_literal34_tree); + adaptor.addChild(root_0, string_literal30_tree); - ID35=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos466); - ID35_tree = - (BytecodesAST)adaptor.create(ID35) + ID31=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos423); + ID31_tree = + (BytecodesAST)adaptor.create(ID31) ; - adaptor.addChild(root_0, ID35_tree); + adaptor.addChild(root_0, ID31_tree); - char_literal36=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos468); - char_literal36_tree = - (BytecodesAST)adaptor.create(char_literal36) + char_literal32=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos425); + char_literal32_tree = + (BytecodesAST)adaptor.create(char_literal32) ; - adaptor.addChild(root_0, char_literal36_tree); + adaptor.addChild(root_0, char_literal32_tree); - ID37=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos470); - ID37_tree = - (BytecodesAST)adaptor.create(ID37) + ID33=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos427); + ID33_tree = + (BytecodesAST)adaptor.create(ID33) ; - adaptor.addChild(root_0, ID37_tree); + adaptor.addChild(root_0, ID33_tree); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos472); - tipo38=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos429); + tipo34=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo38.getTree()); + adaptor.addChild(root_0, tipo34.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:22: 'putfield' ID '/' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:22: 'putfield' ID '/' ID tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal39=(Token)match(input,74,FOLLOW_74_in_manipulacaoObjetos495); - string_literal39_tree = - (BytecodesAST)adaptor.create(string_literal39) + string_literal35=(Token)match(input,74,FOLLOW_74_in_manipulacaoObjetos452); + string_literal35_tree = + (BytecodesAST)adaptor.create(string_literal35) ; - adaptor.addChild(root_0, string_literal39_tree); + adaptor.addChild(root_0, string_literal35_tree); - ID40=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos497); - ID40_tree = - (BytecodesAST)adaptor.create(ID40) + ID36=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos454); + ID36_tree = + (BytecodesAST)adaptor.create(ID36) ; - adaptor.addChild(root_0, ID40_tree); + adaptor.addChild(root_0, ID36_tree); - char_literal41=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos499); - char_literal41_tree = - (BytecodesAST)adaptor.create(char_literal41) + char_literal37=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos456); + char_literal37_tree = + (BytecodesAST)adaptor.create(char_literal37) ; - adaptor.addChild(root_0, char_literal41_tree); + adaptor.addChild(root_0, char_literal37_tree); - ID42=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos501); - ID42_tree = - (BytecodesAST)adaptor.create(ID42) + ID38=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos458); + ID38_tree = + (BytecodesAST)adaptor.create(ID38) ; - adaptor.addChild(root_0, ID42_tree); + adaptor.addChild(root_0, ID38_tree); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos503); - tipo43=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos460); + tipo39=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo43.getTree()); + adaptor.addChild(root_0, tipo39.getTree()); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:22: 'invokespecial' ID '/' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:22: 'invokespecial' ID '/' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal44=(Token)match(input,60,FOLLOW_60_in_manipulacaoObjetos526); - string_literal44_tree = - (BytecodesAST)adaptor.create(string_literal44) + string_literal40=(Token)match(input,60,FOLLOW_60_in_manipulacaoObjetos483); + string_literal40_tree = + (BytecodesAST)adaptor.create(string_literal40) ; - adaptor.addChild(root_0, string_literal44_tree); + adaptor.addChild(root_0, string_literal40_tree); - ID45=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos528); - ID45_tree = - (BytecodesAST)adaptor.create(ID45) + ID41=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos485); + ID41_tree = + (BytecodesAST)adaptor.create(ID41) ; - adaptor.addChild(root_0, ID45_tree); + adaptor.addChild(root_0, ID41_tree); - char_literal46=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos530); - char_literal46_tree = - (BytecodesAST)adaptor.create(char_literal46) + char_literal42=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos487); + char_literal42_tree = + (BytecodesAST)adaptor.create(char_literal42) ; - adaptor.addChild(root_0, char_literal46_tree); + adaptor.addChild(root_0, char_literal42_tree); - INIT47=(Token)match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos532); - INIT47_tree = - (BytecodesAST)adaptor.create(INIT47) + INIT43=(Token)match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos489); + INIT43_tree = + (BytecodesAST)adaptor.create(INIT43) ; - adaptor.addChild(root_0, INIT47_tree); + adaptor.addChild(root_0, INIT43_tree); - string_literal48=(Token)match(input,15,FOLLOW_15_in_manipulacaoObjetos534); - string_literal48_tree = - (BytecodesAST)adaptor.create(string_literal48) + string_literal44=(Token)match(input,15,FOLLOW_15_in_manipulacaoObjetos491); + string_literal44_tree = + (BytecodesAST)adaptor.create(string_literal44) ; - adaptor.addChild(root_0, string_literal48_tree); + adaptor.addChild(root_0, string_literal44_tree); - VOID49=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos536); - VOID49_tree = - (BytecodesAST)adaptor.create(VOID49) + VOID45=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos493); + VOID45_tree = + (BytecodesAST)adaptor.create(VOID45) ; - adaptor.addChild(root_0, VOID49_tree); + adaptor.addChild(root_0, VOID45_tree); } @@ -1565,7 +1435,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: tipo : ( INT | VOID | 'L' ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: tipo : ( INT | VOID | 'L' ID ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1573,18 +1443,18 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT50=null; - Token VOID51=null; - Token char_literal52=null; - Token ID53=null; + Token INT46=null; + Token VOID47=null; + Token char_literal48=null; + Token ID49=null; - BytecodesAST INT50_tree=null; - BytecodesAST VOID51_tree=null; - BytecodesAST char_literal52_tree=null; - BytecodesAST ID53_tree=null; + BytecodesAST INT46_tree=null; + BytecodesAST VOID47_tree=null; + BytecodesAST char_literal48_tree=null; + BytecodesAST ID49_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:6: ( INT | VOID | 'L' ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:6: ( INT | VOID | 'L' ID ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1612,53 +1482,53 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT50=(Token)match(input,INT,FOLLOW_INT_in_tipo567); - INT50_tree = - (BytecodesAST)adaptor.create(INT50) + INT46=(Token)match(input,INT,FOLLOW_INT_in_tipo524); + INT46_tree = + (BytecodesAST)adaptor.create(INT46) ; - adaptor.addChild(root_0, INT50_tree); + adaptor.addChild(root_0, INT46_tree); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID51=(Token)match(input,VOID,FOLLOW_VOID_in_tipo571); - VOID51_tree = - (BytecodesAST)adaptor.create(VOID51) + VOID47=(Token)match(input,VOID,FOLLOW_VOID_in_tipo528); + VOID47_tree = + (BytecodesAST)adaptor.create(VOID47) ; - adaptor.addChild(root_0, VOID51_tree); + adaptor.addChild(root_0, VOID47_tree); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:21: 'L' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:21: 'L' ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal52=(Token)match(input,22,FOLLOW_22_in_tipo575); - char_literal52_tree = - (BytecodesAST)adaptor.create(char_literal52) + char_literal48=(Token)match(input,22,FOLLOW_22_in_tipo532); + char_literal48_tree = + (BytecodesAST)adaptor.create(char_literal48) ; - adaptor.addChild(root_0, char_literal52_tree); + adaptor.addChild(root_0, char_literal48_tree); - ID53=(Token)match(input,ID,FOLLOW_ID_in_tipo576); - ID53_tree = - (BytecodesAST)adaptor.create(ID53) + ID49=(Token)match(input,ID,FOLLOW_ID_in_tipo533); + ID49_tree = + (BytecodesAST)adaptor.create(ID49) ; - adaptor.addChild(root_0, ID53_tree); + adaptor.addChild(root_0, ID49_tree); } @@ -1694,7 +1564,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1707,7 +1577,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { case 30: @@ -1755,12 +1625,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_aritmetica589); + a=(Token)match(input,30,FOLLOW_30_in_aritmetica546); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1772,12 +1642,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_aritmetica610); + a=(Token)match(input,68,FOLLOW_68_in_aritmetica567); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1789,12 +1659,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_aritmetica631); + a=(Token)match(input,58,FOLLOW_58_in_aritmetica588); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1806,12 +1676,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_aritmetica652); + a=(Token)match(input,39,FOLLOW_39_in_aritmetica609); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1823,12 +1693,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_aritmetica673); + a=(Token)match(input,62,FOLLOW_62_in_aritmetica630); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1840,12 +1710,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_aritmetica694); + a=(Token)match(input,52,FOLLOW_52_in_aritmetica651); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1857,12 +1727,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_aritmetica715); + a=(Token)match(input,59,FOLLOW_59_in_aritmetica672); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1904,7 +1774,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1913,27 +1783,27 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST root_0 = null; Token a=null; - Token INTEIRO54=null; - Token INTEIRO55=null; + Token INTEIRO50=null; + Token INTEIRO51=null; + Token string_literal52=null; + Token INTEIRO53=null; + Token string_literal54=null; + Token string_literal55=null; Token string_literal56=null; - Token INTEIRO57=null; - Token string_literal58=null; - Token string_literal59=null; - Token string_literal60=null; - Token string_literal61=null; + Token string_literal57=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO54_tree=null; - BytecodesAST INTEIRO55_tree=null; + BytecodesAST INTEIRO50_tree=null; + BytecodesAST INTEIRO51_tree=null; + BytecodesAST string_literal52_tree=null; + BytecodesAST INTEIRO53_tree=null; + BytecodesAST string_literal54_tree=null; + BytecodesAST string_literal55_tree=null; BytecodesAST string_literal56_tree=null; - BytecodesAST INTEIRO57_tree=null; - BytecodesAST string_literal58_tree=null; - BytecodesAST string_literal59_tree=null; - BytecodesAST string_literal60_tree=null; - BytecodesAST string_literal61_tree=null; + BytecodesAST string_literal57_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { case 38: @@ -2036,12 +1906,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_load752); + a=(Token)match(input,38,FOLLOW_38_in_load709); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2053,12 +1923,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_load766); + a=(Token)match(input,32,FOLLOW_32_in_load723); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2070,12 +1940,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_load781); + a=(Token)match(input,33,FOLLOW_33_in_load738); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2087,12 +1957,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,34,FOLLOW_34_in_load796); + a=(Token)match(input,34,FOLLOW_34_in_load753); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2104,12 +1974,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_load811); + a=(Token)match(input,35,FOLLOW_35_in_load768); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2121,12 +1991,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_load825); + a=(Token)match(input,36,FOLLOW_36_in_load782); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2138,12 +2008,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,37,FOLLOW_37_in_load839); + a=(Token)match(input,37,FOLLOW_37_in_load796); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2155,12 +2025,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_load853); + a=(Token)match(input,54,FOLLOW_54_in_load810); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2172,12 +2042,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_load868); + a=(Token)match(input,55,FOLLOW_55_in_load825); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2189,12 +2059,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_load883); + a=(Token)match(input,56,FOLLOW_56_in_load840); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2206,12 +2076,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_load898); + a=(Token)match(input,57,FOLLOW_57_in_load855); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2223,131 +2093,131 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_load913); + a=(Token)match(input,53,FOLLOW_53_in_load870); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO54=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load915); - INTEIRO54_tree = - (BytecodesAST)adaptor.create(INTEIRO54) + INTEIRO50=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load872); + INTEIRO50_tree = + (BytecodesAST)adaptor.create(INTEIRO50) ; - adaptor.addChild(root_0, INTEIRO54_tree); + adaptor.addChild(root_0, INTEIRO50_tree); - escreverOpcode(a, INTEIRO54); + escreverOpcode(a, INTEIRO50); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_load930); + a=(Token)match(input,70,FOLLOW_70_in_load887); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO55=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load932); - INTEIRO55_tree = - (BytecodesAST)adaptor.create(INTEIRO55) + INTEIRO51=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load889); + INTEIRO51_tree = + (BytecodesAST)adaptor.create(INTEIRO51) ; - adaptor.addChild(root_0, INTEIRO55_tree); + adaptor.addChild(root_0, INTEIRO51_tree); - escreverOpcode(a, INTEIRO55); + escreverOpcode(a, INTEIRO51); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - string_literal56=(Token)match(input,23,FOLLOW_23_in_load943); - string_literal56_tree = - (BytecodesAST)adaptor.create(string_literal56) + string_literal52=(Token)match(input,23,FOLLOW_23_in_load900); + string_literal52_tree = + (BytecodesAST)adaptor.create(string_literal52) ; - adaptor.addChild(root_0, string_literal56_tree); + adaptor.addChild(root_0, string_literal52_tree); - INTEIRO57=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load945); - INTEIRO57_tree = - (BytecodesAST)adaptor.create(INTEIRO57) + INTEIRO53=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load902); + INTEIRO53_tree = + (BytecodesAST)adaptor.create(INTEIRO53) ; - adaptor.addChild(root_0, INTEIRO57_tree); + adaptor.addChild(root_0, INTEIRO53_tree); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal58=(Token)match(input,24,FOLLOW_24_in_load954); - string_literal58_tree = - (BytecodesAST)adaptor.create(string_literal58) + string_literal54=(Token)match(input,24,FOLLOW_24_in_load911); + string_literal54_tree = + (BytecodesAST)adaptor.create(string_literal54) ; - adaptor.addChild(root_0, string_literal58_tree); + adaptor.addChild(root_0, string_literal54_tree); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal59=(Token)match(input,25,FOLLOW_25_in_load963); - string_literal59_tree = - (BytecodesAST)adaptor.create(string_literal59) + string_literal55=(Token)match(input,25,FOLLOW_25_in_load920); + string_literal55_tree = + (BytecodesAST)adaptor.create(string_literal55) ; - adaptor.addChild(root_0, string_literal59_tree); + adaptor.addChild(root_0, string_literal55_tree); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal60=(Token)match(input,26,FOLLOW_26_in_load972); - string_literal60_tree = - (BytecodesAST)adaptor.create(string_literal60) + string_literal56=(Token)match(input,26,FOLLOW_26_in_load929); + string_literal56_tree = + (BytecodesAST)adaptor.create(string_literal56) ; - adaptor.addChild(root_0, string_literal60_tree); + adaptor.addChild(root_0, string_literal56_tree); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal61=(Token)match(input,27,FOLLOW_27_in_load981); - string_literal61_tree = - (BytecodesAST)adaptor.create(string_literal61) + string_literal57=(Token)match(input,27,FOLLOW_27_in_load938); + string_literal57_tree = + (BytecodesAST)adaptor.create(string_literal57) ; - adaptor.addChild(root_0, string_literal61_tree); + adaptor.addChild(root_0, string_literal57_tree); } @@ -2383,7 +2253,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2392,13 +2262,13 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST root_0 = null; Token a=null; - Token INTEIRO62=null; + Token INTEIRO58=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO62_tree=null; + BytecodesAST INTEIRO58_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) int alt11=5; switch ( input.LA(1) ) { case 64: @@ -2436,12 +2306,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_store1004); + a=(Token)match(input,64,FOLLOW_64_in_store961); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2453,12 +2323,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_store1020); + a=(Token)match(input,65,FOLLOW_65_in_store977); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2470,12 +2340,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,66,FOLLOW_66_in_store1036); + a=(Token)match(input,66,FOLLOW_66_in_store993); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2487,12 +2357,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_store1052); + a=(Token)match(input,67,FOLLOW_67_in_store1009); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2504,26 +2374,26 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_store1068); + a=(Token)match(input,63,FOLLOW_63_in_store1025); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO62=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1070); - INTEIRO62_tree = - (BytecodesAST)adaptor.create(INTEIRO62) + INTEIRO58=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1027); + INTEIRO58_tree = + (BytecodesAST)adaptor.create(INTEIRO58) ; - adaptor.addChild(root_0, INTEIRO62_tree); + adaptor.addChild(root_0, INTEIRO58_tree); - verificarAumentoMemoriaGlobal(a, INTEIRO62); + verificarAumentoMemoriaGlobal(a, INTEIRO58); } break; @@ -2558,7 +2428,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2571,7 +2441,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { case 31: @@ -2599,12 +2469,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_logica1091); + a=(Token)match(input,31,FOLLOW_31_in_logica1048); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2616,12 +2486,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,61,FOLLOW_61_in_logica1108); + a=(Token)match(input,61,FOLLOW_61_in_logica1065); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2633,12 +2503,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,69,FOLLOW_69_in_logica1125); + a=(Token)match(input,69,FOLLOW_69_in_logica1082); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2680,7 +2550,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2695,7 +2565,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { case 46: @@ -2773,19 +2643,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_desvio1147); + a=(Token)match(input,46,FOLLOW_46_in_desvio1104); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1153); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1110); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2797,19 +2667,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1170); + a=(Token)match(input,51,FOLLOW_51_in_desvio1127); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1176); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1133); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2821,19 +2691,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1193); + a=(Token)match(input,50,FOLLOW_50_in_desvio1150); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1199); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1156); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2845,19 +2715,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_desvio1216); + a=(Token)match(input,47,FOLLOW_47_in_desvio1173); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1222); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1179); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2869,19 +2739,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_desvio1239); + a=(Token)match(input,48,FOLLOW_48_in_desvio1196); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1245); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1202); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2893,19 +2763,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1262); + a=(Token)match(input,49,FOLLOW_49_in_desvio1219); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1268); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1225); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2917,19 +2787,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_desvio1285); + a=(Token)match(input,40,FOLLOW_40_in_desvio1242); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1291); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1248); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2941,19 +2811,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_desvio1308); + a=(Token)match(input,45,FOLLOW_45_in_desvio1265); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1314); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1271); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2965,19 +2835,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_desvio1331); + a=(Token)match(input,44,FOLLOW_44_in_desvio1288); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1337); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1294); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2989,19 +2859,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_desvio1354); + a=(Token)match(input,41,FOLLOW_41_in_desvio1311); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1360); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1317); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -3013,19 +2883,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_desvio1377); + a=(Token)match(input,42,FOLLOW_42_in_desvio1334); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1383); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1340); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -3037,19 +2907,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_desvio1400); + a=(Token)match(input,43,FOLLOW_43_in_desvio1357); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1406); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1363); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -3061,19 +2931,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,29,FOLLOW_29_in_desvio1423); + a=(Token)match(input,29,FOLLOW_29_in_desvio1380); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1429); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1386); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -3131,105 +3001,101 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao232 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_16_in_definicaoClasse254 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_ID_in_definicaoClasse256 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse258 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse260 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_16_in_definicaoClasse297 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse299 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse301 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse303 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse305 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_18_in_definicaoClasse365 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse367 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_19_in_superClasse408 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_superClasse410 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_membroClasse427 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_membroClasse429 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_membroClasse431 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault450 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_15_in_construtorDefault452 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_VOID_in_construtorDefault454 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_manipulacaoObjetos464 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos466 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos468 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos470 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos472 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_manipulacaoObjetos495 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos497 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos499 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos501 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos503 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_manipulacaoObjetos526 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos528 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos530 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos532 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_15_in_manipulacaoObjetos534 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos536 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo567 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo571 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_22_in_tipo575 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_tipo576 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_aritmetica589 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_aritmetica610 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_aritmetica631 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_aritmetica652 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_aritmetica673 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_aritmetica694 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_aritmetica715 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load752 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_load766 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load781 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load796 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load811 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load825 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load839 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load853 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load868 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load883 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load898 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_load913 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load915 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_load930 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load932 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_load943 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load945 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load954 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load963 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load972 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load981 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_store1004 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_store1020 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_store1036 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_store1052 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_store1068 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_store1070 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_logica1091 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_logica1108 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_logica1125 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1147 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1153 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1170 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1176 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1193 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1199 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1216 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1222 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1239 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1245 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1262 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1268 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_desvio1285 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1291 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_desvio1308 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1314 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_desvio1331 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1337 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_desvio1354 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1360 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_desvio1377 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1383 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_desvio1400 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1406 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_desvio1423 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1429 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse258 = new BitSet(new long[]{0x00000000000A0000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse260 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse263 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_18_in_definicaoClasse322 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse324 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_19_in_superClasse365 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_superClasse367 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_membroClasse384 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_membroClasse386 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_membroClasse388 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault407 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_construtorDefault409 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_VOID_in_construtorDefault411 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_manipulacaoObjetos421 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos423 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos425 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos427 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos429 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_manipulacaoObjetos452 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos454 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos456 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos458 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos460 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_manipulacaoObjetos483 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos485 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_manipulacaoObjetos487 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos489 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_manipulacaoObjetos491 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos493 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo524 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo528 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_22_in_tipo532 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_tipo533 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_aritmetica546 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_aritmetica567 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_aritmetica588 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_aritmetica609 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_aritmetica630 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_aritmetica651 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_aritmetica672 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load709 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_load723 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load738 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load753 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_load768 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_load782 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load796 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load810 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load825 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load855 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_load870 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load872 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_load887 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load889 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_load900 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load902 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load911 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load920 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load929 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load938 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_store961 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_store977 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_store993 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_store1009 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_store1025 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_store1027 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_logica1048 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_logica1065 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_logica1082 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1104 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1110 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1127 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1133 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1150 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1156 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1173 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1179 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1196 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1219 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1225 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_desvio1242 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1248 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_desvio1265 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1271 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_desvio1288 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_desvio1311 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1317 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_desvio1334 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1340 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_desvio1357 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1363 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_desvio1380 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1386 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 0e42bcd..c06b49e 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -34,9 +34,8 @@ instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | d | a = 'pop2'{escreverOpcode($a);} )? NOVA_LINHA; -definicaoClasse : '.class' ID NOVA_LINHA membroClasse+ -> ^('.class' ID ^(MEMBRO_CLASSE membroClasse+)) - | '.class' ID NOVA_LINHA superClasse membroClasse+ - -> ^('.class' ID NOVA_LINHA superClasse ^(MEMBRO_CLASSE membroClasse+)) +definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) | '.method' construtorDefault ; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 51dd016..4498f24 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -17,9 +17,9 @@ options { } } -topdown : entraNaClasse - | declaracaoVariavel - ; +topdown : entraNaClasse; + +bottomup : declaracaoVariavel; // START: class entraNaClasse @@ -28,8 +28,8 @@ entraNaClasse System.out.println("line "+$nome.getLine()+ ": def class "+$nome.text); // record scope in AST for next pass - if ( $sup!=null ) - $sup.escopo = escopoAtual; + // if ( $sup!=null ) + // $sup.escopo = escopoAtual; SimboloClasse classe = new SimboloClasse($nome.text,escopoAtual,null); //classe.def = $nome; // point from symbol table into AST //$nome.simbolo = classe; // point from AST into symbol table @@ -41,11 +41,12 @@ entraNaClasse declaracaoVariavel // global, parameter, or local variable - : ^((FIELD_DECL) var=. ID .?) + : ^(FIELD_DECL var = ID tipo =.) { System.out.println("line "+$ID.getLine()+": def "+$ID.text); //$var.escopo = escopoAtual; - SimboloVariavel variavel = new SimboloVariavel($ID.text,null); + SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo($tipo.getText()); + SimboloVariavel variavel = new SimboloVariavel($ID.text,tipoPrimitivo); //variavel.def = $ID; // track AST location of def's ID //$ID.simbolo = variavel; // track in AST escopoAtual.definir(variavel); diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index fd31b0f..f936ed2 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-21 23:43:41 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-24 02:54:44 package br.ufpb.iged.interpretador.symboltable.parser; @@ -8,6 +8,7 @@ import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; import br.ufpb.iged.interpretador.symboltable.classes.Escopo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloTipoPrimitvo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; @@ -59,52 +60,50 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:1: topdown : ( entraNaClasse | declaracaoVariavel ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:1: topdown : entraNaClasse ; public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:9: ( entraNaClasse | declaracaoVariavel ) - int alt1=2; - int LA1_0 = input.LA(1); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:9: ( entraNaClasse ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:11: entraNaClasse + { + pushFollow(FOLLOW_entraNaClasse_in_topdown43); + entraNaClasse(); + + state._fsp--; + if (state.failed) return ; - if ( (LA1_0==7) ) { - alt1=1; - } - else if ( (LA1_0==FIELD_DECL) ) { - alt1=2; } - else { - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - throw nvae; + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } - } - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:11: entraNaClasse - { - pushFollow(FOLLOW_entraNaClasse_in_topdown43); - entraNaClasse(); + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "topdown" - state._fsp--; - if (state.failed) return ; - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:21:11: declaracaoVariavel - { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown55); - declaracaoVariavel(); - state._fsp--; - if (state.failed) return ; + // $ANTLR start "bottomup" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:22:1: bottomup : declaracaoVariavel ; + public final void bottomup() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:22:10: ( declaracaoVariavel ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:22:12: declaracaoVariavel + { + pushFollow(FOLLOW_declaracaoVariavel_in_bottomup51); + declaracaoVariavel(); - } - break; + state._fsp--; + if (state.failed) return ; } + } catch (RecognitionException re) { reportError(re); @@ -116,7 +115,7 @@ else if ( (LA1_0==FIELD_DECL) ) { } return ; } - // $ANTLR end "topdown" + // $ANTLR end "bottomup" @@ -130,42 +129,42 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,7,FOLLOW_7_in_entraNaClasse89); if (state.failed) return ; + match(input,7,FOLLOW_7_in_entraNaClasse76); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse93); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse80); if (state.failed) return ; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:28: ( ^( EXTENDS sup= ID ) )? - int alt2=2; - int LA2_0 = input.LA(1); + int alt1=2; + int LA1_0 = input.LA(1); - if ( (LA2_0==EXTENDS) ) { - int LA2_1 = input.LA(2); + if ( (LA1_0==EXTENDS) ) { + int LA1_1 = input.LA(2); - if ( (LA2_1==DOWN) ) { - int LA2_3 = input.LA(3); + if ( (LA1_1==DOWN) ) { + int LA1_3 = input.LA(3); - if ( (LA2_3==ID) ) { - int LA2_4 = input.LA(4); + if ( (LA1_3==ID) ) { + int LA1_4 = input.LA(4); - if ( (LA2_4==UP) ) { - int LA2_5 = input.LA(5); + if ( (LA1_4==UP) ) { + int LA1_5 = input.LA(5); - if ( ((LA2_5 >= EXTENDS && LA2_5 <= 7)) ) { - alt2=1; + if ( ((LA1_5 >= EXTENDS && LA1_5 <= 7)) ) { + alt1=1; } } } } } - switch (alt2) { + switch (alt1) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:29: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse97); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse84); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse101); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse88); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -185,8 +184,8 @@ public final void entraNaClasse() throws RecognitionException { System.out.println("line "+nome.getLine()+ ": def class "+(nome!=null?nome.getText():null)); // record scope in AST for next pass - if ( sup!=null ) - sup.escopo = escopoAtual; + // if ( sup!=null ) + // sup.escopo = escopoAtual; SimboloClasse classe = new SimboloClasse((nome!=null?nome.getText():null),escopoAtual,null); //classe.def = nome; // point from symbol table into AST //nome.simbolo = classe; // point from AST into symbol table @@ -212,58 +211,34 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:43:1: declaracaoVariavel : ^( ( FIELD_DECL ) var= . ID ( . )? ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:43:1: declaracaoVariavel : ^( FIELD_DECL var= ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { - BytecodesAST ID1=null; BytecodesAST var=null; + BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:5: ( ^( ( FIELD_DECL ) var= . ID ( . )? ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:9: ^( ( FIELD_DECL ) var= . ID ( . )? ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:11: ( FIELD_DECL ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:12: FIELD_DECL + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:5: ( ^( FIELD_DECL var= ID tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:9: ^( FIELD_DECL var= ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel141); if (state.failed) return ; - - } - + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel127); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - var=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel148); if (state.failed) return ; - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:33: ( . )? - int alt3=2; - int LA3_0 = input.LA(1); - - if ( ((LA3_0 >= EXTENDS && LA3_0 <= 7)) ) { - alt3=1; - } - switch (alt3) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:33: . - { - matchAny(input); if (state.failed) return ; - - } - break; + var=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel133); if (state.failed) return ; - } + tipo=(BytecodesAST)input.LT(1); + matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; if ( state.backtracking==1 ) { - System.out.println("line "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); + System.out.println("line "+var.getLine()+": def "+(var!=null?var.getText():null)); //var.escopo = escopoAtual; - SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),null); - //variavel.def = ID1; // track AST location of def's ID - //ID1.simbolo = variavel; // track in AST + SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo(tipo.getText()); + SimboloVariavel variavel = new SimboloVariavel((var!=null?var.getText():null),tipoPrimitivo); + //variavel.def = var; // track AST location of def's ID + //var.simbolo = variavel; // track in AST escopoAtual.definir(variavel); } @@ -288,12 +263,12 @@ public final void declaracaoVariavel() throws RecognitionException { public static final BitSet FOLLOW_entraNaClasse_in_topdown43 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown55 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_7_in_entraNaClasse89 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse93 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse97 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse101 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel141 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel148 = new BitSet(new long[]{0x00000000000000F8L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_bottomup51 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_7_in_entraNaClasse76 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse80 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse84 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse88 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel127 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel133 = new BitSet(new long[]{0x00000000000000F0L}); } \ No newline at end of file From 35441dc7c7acbdb07e39b8c0bf904f5a7394de94 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Tue, 26 Jun 2012 18:56:17 -0300 Subject: [PATCH 20/79] commit --- .../parser/AssemblerLexer.java | 2 +- .../parser/AssemblerParser.java | 4 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 10 +- .../interpretador/symboltable/parser/Def.java | 171 ++++++++++++------ .../symboltable/parser/Def.tokens | 5 +- 5 files changed, 125 insertions(+), 67 deletions(-) diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index a46d724..fccb6e8 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-24 02:54:42 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-26 18:51:16 package br.ufpb.iged.interpretador.bytecodeassembler.parser; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index f448684..f540c71 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-24 02:54:41 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-26 18:51:15 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -818,7 +818,7 @@ else if ( (LA6_0==18) ) { // AST REWRITE - // elements: ID, membroClasse, superClasse, 16 + // elements: 16, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 4498f24..44f21ba 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -17,13 +17,15 @@ options { } } -topdown : entraNaClasse; +topdown : entraNaClasse + | declaracaoVariavel + ; -bottomup : declaracaoVariavel; +bottomup : saiDaClasse; // START: class entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=ID))? .) + : ^('.class' nome=ID (^(EXTENDS sup=ID))? ^(MEMBRO_CLASSE FIELD_DECL)) { // def class but leave superclass blank until ref phase System.out.println("line "+$nome.getLine()+ ": def class "+$nome.text); @@ -52,3 +54,5 @@ declaracaoVariavel // global, parameter, or local variable escopoAtual.definir(variavel); } ; +saiDaClasse : '.class' + ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index f936ed2..b3f7af9 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-24 02:54:44 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-26 18:51:18 package br.ufpb.iged.interpretador.symboltable.parser; @@ -21,14 +21,15 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "'.class'" + "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "MEMBRO_CLASSE", "'.class'" }; public static final int EOF=-1; - public static final int T__7=7; + public static final int T__8=8; public static final int EXTENDS=4; public static final int FIELD_DECL=5; public static final int ID=6; + public static final int MEMBRO_CLASSE=7; // delegates public TreeFilter[] getDelegates() { @@ -60,20 +61,52 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:1: topdown : entraNaClasse ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:1: topdown : ( entraNaClasse | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:9: ( entraNaClasse ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:11: entraNaClasse - { - pushFollow(FOLLOW_entraNaClasse_in_topdown43); - entraNaClasse(); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:9: ( entraNaClasse | declaracaoVariavel ) + int alt1=2; + int LA1_0 = input.LA(1); - state._fsp--; - if (state.failed) return ; + if ( (LA1_0==8) ) { + alt1=1; + } + else if ( (LA1_0==FIELD_DECL) ) { + alt1=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; } + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:11: entraNaClasse + { + pushFollow(FOLLOW_entraNaClasse_in_topdown43); + entraNaClasse(); + state._fsp--; + if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:21:11: declaracaoVariavel + { + pushFollow(FOLLOW_declaracaoVariavel_in_topdown55); + declaracaoVariavel(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } } catch (RecognitionException re) { reportError(re); @@ -90,14 +123,14 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:22:1: bottomup : declaracaoVariavel ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:1: bottomup : saiDaClasse ; public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:22:10: ( declaracaoVariavel ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:22:12: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:10: ( saiDaClasse ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:12: saiDaClasse { - pushFollow(FOLLOW_declaracaoVariavel_in_bottomup51); - declaracaoVariavel(); + pushFollow(FOLLOW_saiDaClasse_in_bottomup72); + saiDaClasse(); state._fsp--; if (state.failed) return ; @@ -120,51 +153,35 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:25:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:27:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE FIELD_DECL ) ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE FIELD_DECL ) ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE FIELD_DECL ) ) { - match(input,7,FOLLOW_7_in_entraNaClasse76); if (state.failed) return ; + match(input,8,FOLLOW_8_in_entraNaClasse97); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse80); if (state.failed) return ; - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:28: ( ^( EXTENDS sup= ID ) )? - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0==EXTENDS) ) { - int LA1_1 = input.LA(2); - - if ( (LA1_1==DOWN) ) { - int LA1_3 = input.LA(3); - - if ( (LA1_3==ID) ) { - int LA1_4 = input.LA(4); + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse101); if (state.failed) return ; - if ( (LA1_4==UP) ) { - int LA1_5 = input.LA(5); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:28: ( ^( EXTENDS sup= ID ) )? + int alt2=2; + int LA2_0 = input.LA(1); - if ( ((LA1_5 >= EXTENDS && LA1_5 <= 7)) ) { - alt1=1; - } - } - } - } + if ( (LA2_0==EXTENDS) ) { + alt2=1; } - switch (alt1) { + switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:26:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:29: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse84); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse105); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse88); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse109); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -175,7 +192,13 @@ public final void entraNaClasse() throws RecognitionException { } - matchAny(input); if (state.failed) return ; + match(input,MEMBRO_CLASSE,FOLLOW_MEMBRO_CLASSE_in_entraNaClasse115); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_entraNaClasse117); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; @@ -211,19 +234,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:43:1: declaracaoVariavel : ^( FIELD_DECL var= ID tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: declaracaoVariavel : ^( FIELD_DECL var= ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST var=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:5: ( ^( FIELD_DECL var= ID tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:9: ^( FIELD_DECL var= ID tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( FIELD_DECL var= ID tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:9: ^( FIELD_DECL var= ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel127); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel152); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - var=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel133); if (state.failed) return ; + var=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel158); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -257,18 +280,48 @@ public final void declaracaoVariavel() throws RecognitionException { } // $ANTLR end "declaracaoVariavel" + + + // $ANTLR start "saiDaClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:1: saiDaClasse : '.class' ; + public final void saiDaClasse() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:13: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:15: '.class' + { + match(input,8,FOLLOW_8_in_saiDaClasse186); if (state.failed) return ; + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "saiDaClasse" + // Delegated rules public static final BitSet FOLLOW_entraNaClasse_in_topdown43 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_bottomup51 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_7_in_entraNaClasse76 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse80 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse84 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse88 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel127 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel133 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown55 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup72 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_8_in_entraNaClasse97 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse101 = new BitSet(new long[]{0x0000000000000090L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse105 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse109 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_MEMBRO_CLASSE_in_entraNaClasse115 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_FIELD_DECL_in_entraNaClasse117 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel152 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel158 = new BitSet(new long[]{0x00000000000001F0L}); + public static final BitSet FOLLOW_8_in_saiDaClasse186 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens index 17b37fa..b6c9395 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens @@ -1,5 +1,6 @@ -T__7=7 +T__8=8 EXTENDS=4 FIELD_DECL=5 ID=6 -'.class'=7 +MEMBRO_CLASSE=7 +'.class'=8 From fce121f84d70ad154293124d35090e844d325cd0 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Wed, 27 Jun 2012 02:18:19 -0300 Subject: [PATCH 21/79] commit --- .../asm/BytecodeAssembler.class | Bin 6166 -> 6166 bytes .../bytecodeassembler/asm/Definicao.class | Bin 3571 -> 3576 bytes instropcode_set.txt | 7 +- .../bytecodeassembler/parser/Assembler.tokens | 145 +-- .../parser/AssemblerLexer.java | 717 +++++++------- .../parser/AssemblerParser.java | 915 +++++++++--------- .../iged/interpretador/gramaticas/Assembler.g | 3 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 6 +- .../interpretador/symboltable/parser/Def.java | 95 +- .../symboltable/parser/Def.tokens | 10 +- 10 files changed, 956 insertions(+), 942 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index dd80e0bfd1a16f2829e4fb2921948ce45682376b..1b49237bc09eed85ac85b08aef0d2823285ad432 100644 GIT binary patch delta 18 ZcmbPcFwJ1YS3y>G1_lPM&A$X?*Z?_f1vvl! delta 18 ZcmbPcFwJ1YS3y=b1_lPs&A$X?*Z?_P1vdZy diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 36526598a79ae0b145b8aa1394313334276ac896..43c5c71822cbbdb5812f6a120950898d361a7d26 100644 GIT binary patch delta 1595 zcmYk5*>@9V7>9q8(Bw-D@}+_Z1#v-Tky8}$2K5~7>^VKvb8-ZFV+cta29lX+npRu~ z5%=A=LD@lZ*IG471(&*3+;I2b@Wv~S?@}|p$jt9~-gn;lGV{$pUH^8ar_P=@1z-*S z9!sB&t%_4lIY{^2v|)X|x2NyM^=vW@X7%0D+sk>jgV@F#r#a2Du|dac2JxP3;2`e# zK^isGGZ;dnITc?TjyOoUMc*50~LVFakar65mD`~h^{ucC!#e5J0rTrU{^$I z4R+IwtED2}_yNB0gAV2|>)louDRfuEf>-IzHR`TcS=ZCEe1pNm4m#YbUnm(o>L4jG zPiuL+4YZUe+dwOMx(&3Drh|k#)bQ(NgXee|l6k-j5z&M_N+C7oX~t+&q#^rh#ep9f z9Hgg8ff^1|atkF|)lp7E!&?kq;#3>18XV_Taz_kaRq?b|fi z_3H*>takYI&|sXS>lF>&=QL0rG-yfk=s$cUsoF4@kW?XeQWLpPv`X$Xevborw^$2! zz+{9x<;w_p)YolX8}Pty+Z_}eC70f3 zQ?|2(`*Zy^E#e^(^HiK8B7DRy)bSbN$84A4Y{4h&BE@qBpR$V;=LkMS)2`KNR>ZS* zoz}C0&)e%1I|W~~*DIbUxYyp$LP(Fp&K2HgH)?sF-~qcy@qEEUcC+Gq!6UY$c!A(C zyH#<4;LEnExKQvF8z^=OzGfSWizX1#TY2OE(Tk=0Ru((8exdL?S?p3?BK&R^yOl2z ze$OVe*rSi(Vlf}E*{kLfF(0xSRdcDB6KwXiLU}n$MSaX_zcyVa<`kO)YAzS^DVu|8 zt`PG%n?q`riTQ%fVKvLee8uL7niXQcVRN*F)x0-Wikf0|Oq;G0bDGU@HsknVOt$z> z%`=(FTYr`e+UoQj>4rx)ogMNWD_S@+-Au?|7D@0Wnd$s1ej|$EcRBunKk1yNT8(~x GA@v`H%$H~Y delta 1598 zcmYk5*>@9V7>9q8wCR@+@k&GaHOzvp@1dFRW_H~)0}-H|x^@2N8Y zR^YGk#JNb9gGAq&b*nSIJ$-krj#6QkgO=-gFAQFTkC70 zi8%(ogJ{{WB;a8vi7JNc=cAp$h=aJB^UK4vOzB30dmWf*TyAh*NK|_uq?-&L3TcHw z5Yo*CkA$?+;8D7kOWB(CT`A zHgE8>gEom7TFbLdprt(D1X{_9O`wIm864wOE))$; zaLShH+P7)2>sJllWwphx1_tkObjvw|_c;v|h73NGRHpy%ktDBXa7t2<+$WmIozW_} z&-gtKWZYb-!UMhtk*9naB9HpIi7P8S@Y^O=ic~%uqDR$pbd#cA^W$*vV-iJdu6M?k z#eU&;IXJO4wjmm{V*xfIMh$JW`y!Y}oSng&h;uVIPh6P61Bmlnxz@nNAWgalh>pRK zLuAU{a2j5J%OoAz%h3iZ>Hb!MS}Q@2?vDwL#-!9Hu%%7F2;6T3toA)Dt*f$iyjn-K8?iMc9fi3pyu3w3-__!--wc#+_9c9G(2!58de#ft@Z z(6n20niWyEtF)dH+-Yx9Y!`gh-mW-DaF@NKfq))|y+nA-uGjKh!M%2a;yl6qcBA5a z!Gkuhc&XrFyIFC8;Oo{?TqtA~0 z3y-I;UHJ;(2^&jcmp+Co#eBeKx03T8WvpLFU z0zZt)7C&FVkes^vC&{3#PT!Gkcy!a*A>X>RfuE{{S#kmI43( diff --git a/instropcode_set.txt b/instropcode_set.txt index 0c0cb61..9bf739a 100755 --- a/instropcode_set.txt +++ b/instropcode_set.txt @@ -51,9 +51,14 @@ aload_0 2a 42 aload_1 2b 43 aload_2 2c 44 aload_3 2d 45 -invokespecial b7 183 +astore 3a 58 +astore_0 4b 75 +astore_1 4c 76 +astore_2 4d 77 +astore_3 4e 78 getfield b4 180 putfield b5 181 +invokespecial b7 183 new java/lang/Integer ; Create the integer dup ; Make a copy of the reference to it diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens index bbc8897..d1b8cfc 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__15=15 T__16=16 T__17=17 T__18=18 @@ -58,74 +57,76 @@ T__71=71 T__72=72 T__73=73 T__74=74 -EXTENDS=4 -FIELD_DECL=5 -ID=6 -INIT=7 -INT=8 -INTEIRO=9 -MEMBRO_CLASSE=10 -NOVA_LINHA=11 -NULL=12 -VOID=13 -WS=14 -'()'=15 -'.class'=16 -'.field'=17 -'.method'=18 -'.super'=19 -'/'=20 -':'=21 -'L'=22 -'aload'=23 -'aload_0'=24 -'aload_1'=25 -'aload_2'=26 -'aload_3'=27 -'getfield'=28 -'goto'=29 -'iadd'=30 -'iand'=31 -'iconst_0'=32 -'iconst_1'=33 -'iconst_2'=34 -'iconst_3'=35 -'iconst_4'=36 -'iconst_5'=37 -'iconst_m1'=38 -'idiv'=39 -'if_icmpeq'=40 -'if_icmpge'=41 -'if_icmpgt'=42 -'if_icmple'=43 -'if_icmplt'=44 -'if_icmpne'=45 -'ifeq'=46 -'ifge'=47 -'ifgt'=48 -'ifle'=49 -'iflt'=50 -'ifne'=51 -'iinc'=52 -'iload'=53 -'iload_0'=54 -'iload_1'=55 -'iload_2'=56 -'iload_3'=57 -'imul'=58 -'ineg'=59 -'invokespecial'=60 -'ior'=61 -'irem'=62 -'istore'=63 -'istore_0'=64 -'istore_1'=65 -'istore_2'=66 -'istore_3'=67 -'isub'=68 -'ixor'=69 -'ldc'=70 -'nop'=71 -'pop'=72 -'pop2'=73 -'putfield'=74 +T__75=75 +CLASSE=4 +EXTENDS=5 +FIELD_DECL=6 +ID=7 +INIT=8 +INT=9 +INTEIRO=10 +MEMBRO_CLASSE=11 +NOVA_LINHA=12 +NULL=13 +VOID=14 +WS=15 +'()'=16 +'.class'=17 +'.field'=18 +'.method'=19 +'.super'=20 +'/'=21 +':'=22 +'L'=23 +'aload'=24 +'aload_0'=25 +'aload_1'=26 +'aload_2'=27 +'aload_3'=28 +'getfield'=29 +'goto'=30 +'iadd'=31 +'iand'=32 +'iconst_0'=33 +'iconst_1'=34 +'iconst_2'=35 +'iconst_3'=36 +'iconst_4'=37 +'iconst_5'=38 +'iconst_m1'=39 +'idiv'=40 +'if_icmpeq'=41 +'if_icmpge'=42 +'if_icmpgt'=43 +'if_icmple'=44 +'if_icmplt'=45 +'if_icmpne'=46 +'ifeq'=47 +'ifge'=48 +'ifgt'=49 +'ifle'=50 +'iflt'=51 +'ifne'=52 +'iinc'=53 +'iload'=54 +'iload_0'=55 +'iload_1'=56 +'iload_2'=57 +'iload_3'=58 +'imul'=59 +'ineg'=60 +'invokespecial'=61 +'ior'=62 +'irem'=63 +'istore'=64 +'istore_0'=65 +'istore_1'=66 +'istore_2'=67 +'istore_3'=68 +'isub'=69 +'ixor'=70 +'ldc'=71 +'nop'=72 +'pop'=73 +'pop2'=74 +'putfield'=75 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index fccb6e8..6e35f0e 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-26 18:51:16 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-27 02:11:16 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -10,7 +10,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__15=15; public static final int T__16=16; public static final int T__17=17; public static final int T__18=18; @@ -70,17 +69,19 @@ public class AssemblerLexer extends Lexer { public static final int T__72=72; public static final int T__73=73; public static final int T__74=74; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int INTEIRO=9; - public static final int MEMBRO_CLASSE=10; - public static final int NOVA_LINHA=11; - public static final int NULL=12; - public static final int VOID=13; - public static final int WS=14; + public static final int T__75=75; + public static final int CLASSE=4; + public static final int EXTENDS=5; + public static final int FIELD_DECL=6; + public static final int ID=7; + public static final int INIT=8; + public static final int INT=9; + public static final int INTEIRO=10; + public static final int MEMBRO_CLASSE=11; + public static final int NOVA_LINHA=12; + public static final int NULL=13; + public static final int VOID=14; + public static final int WS=15; // delegates // delegators @@ -97,38 +98,15 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__15" - public final void mT__15() throws RecognitionException { - try { - int _type = T__15; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:7: ( '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:9: '()' - { - match("()"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__15" - // $ANTLR start "T__16" public final void mT__16() throws RecognitionException { try { int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:7: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:9: '.class' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:7: ( '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:9: '()' { - match(".class"); + match("()"); @@ -148,10 +126,10 @@ public final void mT__17() throws RecognitionException { try { int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:7: ( '.field' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:9: '.field' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:7: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:9: '.class' { - match(".field"); + match(".class"); @@ -171,10 +149,10 @@ public final void mT__18() throws RecognitionException { try { int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:7: ( '.method' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:9: '.method' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:7: ( '.field' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:9: '.field' { - match(".method"); + match(".field"); @@ -194,10 +172,10 @@ public final void mT__19() throws RecognitionException { try { int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '.super' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '.super' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:7: ( '.method' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:9: '.method' { - match(".super"); + match(".method"); @@ -217,10 +195,12 @@ public final void mT__20() throws RecognitionException { try { int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '/' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '.super' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '.super' { - match('/'); + match(".super"); + + } @@ -238,10 +218,10 @@ public final void mT__21() throws RecognitionException { try { int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '/' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '/' { - match(':'); + match('/'); } @@ -259,10 +239,10 @@ public final void mT__22() throws RecognitionException { try { int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( 'L' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: 'L' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ':' { - match('L'); + match(':'); } @@ -280,12 +260,10 @@ public final void mT__23() throws RecognitionException { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( 'aload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: 'aload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( 'L' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: 'L' { - match("aload"); - - + match('L'); } @@ -303,10 +281,10 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( 'aload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: 'aload' { - match("aload_0"); + match("aload"); @@ -326,10 +304,10 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: 'aload_0' { - match("aload_1"); + match("aload_0"); @@ -349,10 +327,10 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: 'aload_1' { - match("aload_2"); + match("aload_1"); @@ -372,10 +350,10 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'aload_2' { - match("aload_3"); + match("aload_2"); @@ -395,10 +373,10 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload_3' { - match("getfield"); + match("aload_3"); @@ -418,10 +396,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'goto' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'getfield' { - match("goto"); + match("getfield"); @@ -441,10 +419,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'goto' { - match("iadd"); + match("goto"); @@ -464,10 +442,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'iadd' { - match("iand"); + match("iadd"); @@ -487,10 +465,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'iand' { - match("iconst_0"); + match("iand"); @@ -510,10 +488,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'iconst_0' { - match("iconst_1"); + match("iconst_0"); @@ -533,10 +511,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'iconst_1' { - match("iconst_2"); + match("iconst_1"); @@ -556,10 +534,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'iconst_2' { - match("iconst_3"); + match("iconst_2"); @@ -579,10 +557,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'iconst_3' { - match("iconst_4"); + match("iconst_3"); @@ -602,10 +580,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'iconst_4' { - match("iconst_5"); + match("iconst_4"); @@ -625,10 +603,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'iconst_5' { - match("iconst_m1"); + match("iconst_5"); @@ -648,10 +626,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'iconst_m1' { - match("idiv"); + match("iconst_m1"); @@ -671,10 +649,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'if_icmpeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'idiv' { - match("if_icmpeq"); + match("idiv"); @@ -694,10 +672,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'if_icmpge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'if_icmpeq' { - match("if_icmpge"); + match("if_icmpeq"); @@ -717,10 +695,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'if_icmpgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'if_icmpge' { - match("if_icmpgt"); + match("if_icmpge"); @@ -740,10 +718,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'if_icmple' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'if_icmpgt' { - match("if_icmple"); + match("if_icmpgt"); @@ -763,10 +741,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'if_icmplt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'if_icmple' { - match("if_icmplt"); + match("if_icmple"); @@ -786,10 +764,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'if_icmpne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'if_icmplt' { - match("if_icmpne"); + match("if_icmplt"); @@ -809,10 +787,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'ifeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'if_icmpne' { - match("ifeq"); + match("if_icmpne"); @@ -832,10 +810,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'ifge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'ifeq' { - match("ifge"); + match("ifeq"); @@ -855,10 +833,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'ifgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'ifge' { - match("ifgt"); + match("ifge"); @@ -878,10 +856,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'ifle' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'ifgt' { - match("ifle"); + match("ifgt"); @@ -901,10 +879,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iflt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'ifle' { - match("iflt"); + match("ifle"); @@ -924,10 +902,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'ifne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iflt' { - match("ifne"); + match("iflt"); @@ -947,10 +925,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'ifne' { - match("iinc"); + match("ifne"); @@ -970,10 +948,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iinc' { - match("iload"); + match("iinc"); @@ -993,10 +971,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iload' { - match("iload_0"); + match("iload"); @@ -1016,10 +994,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iload_0' { - match("iload_1"); + match("iload_0"); @@ -1039,10 +1017,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iload_1' { - match("iload_2"); + match("iload_1"); @@ -1062,10 +1040,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'iload_2' { - match("iload_3"); + match("iload_2"); @@ -1085,10 +1063,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'iload_3' { - match("imul"); + match("iload_3"); @@ -1108,10 +1086,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'imul' { - match("ineg"); + match("imul"); @@ -1131,10 +1109,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ineg' { - match("invokespecial"); + match("ineg"); @@ -1154,10 +1132,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'invokespecial' { - match("ior"); + match("invokespecial"); @@ -1177,10 +1155,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ior' { - match("irem"); + match("ior"); @@ -1200,10 +1178,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'istore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'irem' { - match("istore"); + match("irem"); @@ -1223,10 +1201,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'istore' { - match("istore_0"); + match("istore"); @@ -1246,10 +1224,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'istore_0' { - match("istore_1"); + match("istore_0"); @@ -1269,10 +1247,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'istore_1' { - match("istore_2"); + match("istore_1"); @@ -1292,10 +1270,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'istore_2' { - match("istore_3"); + match("istore_2"); @@ -1315,10 +1293,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'istore_3' { - match("isub"); + match("istore_3"); @@ -1338,10 +1316,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'isub' { - match("ixor"); + match("isub"); @@ -1361,10 +1339,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ldc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'ixor' { - match("ldc"); + match("ixor"); @@ -1384,10 +1362,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ldc' { - match("nop"); + match("ldc"); @@ -1407,10 +1385,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'nop' { - match("pop"); + match("nop"); @@ -1430,10 +1408,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'pop' { - match("pop2"); + match("pop"); @@ -1453,6 +1431,29 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'pop2' + { + match("pop2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__74" + + // $ANTLR start "T__75" + public final void mT__75() throws RecognitionException { + try { + int _type = T__75; + int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'putfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'putfield' { @@ -1469,15 +1470,15 @@ public final void mT__74() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__74" + // $ANTLR end "T__75" // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: '' { match(""); @@ -1499,8 +1500,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:7: 'I' { match('I'); @@ -1520,8 +1521,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:8: 'V' { match('V'); @@ -1541,10 +1542,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1563,7 +1564,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: 'null' { match("null"); @@ -1572,7 +1573,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:18: 'NULL' { match("NULL"); @@ -1600,10 +1601,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1612,7 +1613,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: '-' { match('-'); @@ -1622,7 +1623,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1677,8 +1678,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1690,7 +1691,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1740,8 +1741,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:14: '\\n' { match('\n'); @@ -1761,8 +1762,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -1788,486 +1789,486 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) int alt5=68; alt5 = dfa5.predict(input); switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__15 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__16 { - mT__15(); + mT__16(); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__16 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__17 { - mT__16(); + mT__17(); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__17 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__18 { - mT__17(); + mT__18(); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__18 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__19 { - mT__18(); + mT__19(); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__19 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__20 { - mT__19(); + mT__20(); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__20 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__21 { - mT__20(); + mT__21(); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__21 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__22 { - mT__21(); + mT__22(); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__22 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__23 { - mT__22(); + mT__23(); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__23 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__24 { - mT__23(); + mT__24(); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__24 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__25 { - mT__24(); + mT__25(); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__25 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__26 { - mT__25(); + mT__26(); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__26 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__27 { - mT__26(); + mT__27(); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__27 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__28 { - mT__27(); + mT__28(); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__28 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__29 { - mT__28(); + mT__29(); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__29 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__30 { - mT__29(); + mT__30(); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__30 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__31 { - mT__30(); + mT__31(); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__31 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__32 { - mT__31(); + mT__32(); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__32 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__33 { - mT__32(); + mT__33(); } break; case 19 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__33 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__34 { - mT__33(); + mT__34(); } break; case 20 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__34 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__35 { - mT__34(); + mT__35(); } break; case 21 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__35 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__36 { - mT__35(); + mT__36(); } break; case 22 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__36 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__37 { - mT__36(); + mT__37(); } break; case 23 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__37 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__38 { - mT__37(); + mT__38(); } break; case 24 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__38 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__39 { - mT__38(); + mT__39(); } break; case 25 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__39 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__40 { - mT__39(); + mT__40(); } break; case 26 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__40 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__41 { - mT__40(); + mT__41(); } break; case 27 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__41 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__42 { - mT__41(); + mT__42(); } break; case 28 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__42 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__43 { - mT__42(); + mT__43(); } break; case 29 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__43 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__44 { - mT__43(); + mT__44(); } break; case 30 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__44 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__45 { - mT__44(); + mT__45(); } break; case 31 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__45 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__46 { - mT__45(); + mT__46(); } break; case 32 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__46 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__47 { - mT__46(); + mT__47(); } break; case 33 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__47 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__48 { - mT__47(); + mT__48(); } break; case 34 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__48 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__49 { - mT__48(); + mT__49(); } break; case 35 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__49 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__50 { - mT__49(); + mT__50(); } break; case 36 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__50 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__51 { - mT__50(); + mT__51(); } break; case 37 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__51 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__52 { - mT__51(); + mT__52(); } break; case 38 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__52 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__53 { - mT__52(); + mT__53(); } break; case 39 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__53 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__54 { - mT__53(); + mT__54(); } break; case 40 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__54 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__55 { - mT__54(); + mT__55(); } break; case 41 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__55 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__56 { - mT__55(); + mT__56(); } break; case 42 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__56 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__57 { - mT__56(); + mT__57(); } break; case 43 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__57 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__58 { - mT__57(); + mT__58(); } break; case 44 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__58 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__59 { - mT__58(); + mT__59(); } break; case 45 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__59 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__60 { - mT__59(); + mT__60(); } break; case 46 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__60 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__61 { - mT__60(); + mT__61(); } break; case 47 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__61 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__62 { - mT__61(); + mT__62(); } break; case 48 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__62 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__63 { - mT__62(); + mT__63(); } break; case 49 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__63 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__64 { - mT__63(); + mT__64(); } break; case 50 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__64 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__65 { - mT__64(); + mT__65(); } break; case 51 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__65 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__66 { - mT__65(); + mT__66(); } break; case 52 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__66 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__67 { - mT__66(); + mT__67(); } break; case 53 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__67 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__68 { - mT__67(); + mT__68(); } break; case 54 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__68 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__69 { - mT__68(); + mT__69(); } break; case 55 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__69 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__70 { - mT__69(); + mT__70(); } break; case 56 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__70 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__71 { - mT__70(); + mT__71(); } break; case 57 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__71 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__72 { - mT__71(); + mT__72(); } break; case 58 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__72 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__73 { - mT__72(); + mT__73(); } break; case 59 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__73 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__74 { - mT__73(); + mT__74(); } break; case 60 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__74 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__75 { - mT__74(); + mT__75(); } @@ -2624,7 +2625,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index f540c71..8e0b8b4 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-26 18:51:15 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-27 02:11:16 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -17,11 +17,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__15=15; public static final int T__16=16; public static final int T__17=17; public static final int T__18=18; @@ -81,17 +80,19 @@ public abstract class AssemblerParser extends Parser { public static final int T__72=72; public static final int T__73=73; public static final int T__74=74; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int INTEIRO=9; - public static final int MEMBRO_CLASSE=10; - public static final int NOVA_LINHA=11; - public static final int NULL=12; - public static final int VOID=13; - public static final int WS=14; + public static final int T__75=75; + public static final int CLASSE=4; + public static final int EXTENDS=5; + public static final int FIELD_DECL=6; + public static final int ID=7; + public static final int INIT=8; + public static final int INT=9; + public static final int INTEIRO=10; + public static final int MEMBRO_CLASSE=11; + public static final int NOVA_LINHA=12; + public static final int NULL=13; + public static final int VOID=14; + public static final int WS=15; // delegates public Parser[] getDelegates() { @@ -121,11 +122,11 @@ public TreeAdaptor getTreeAdaptor() { - protected abstract void escreverOpcode(Token opc); - protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - protected abstract void definirLabel(Token id) throws LabelException; + protected abstract void escreverOpcode(Token opc); + protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; + protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + protected abstract void definirLabel(Token id) throws LabelException; @@ -136,7 +137,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:1: programa : ( comando )* ; public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -149,28 +150,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:12: ( comando )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==16||LA1_0==18||(LA1_0 >= 23 && LA1_0 <= 74)) ) { + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==17||LA1_0==19||(LA1_0 >= 24 && LA1_0 <= 75)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:12: comando { - pushFollow(FOLLOW_comando_in_programa59); + pushFollow(FOLLOW_comando_in_programa64); comando1=comando(); state._fsp--; @@ -217,7 +218,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:1: comando : ( label instrucao | instrucao ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:1: comando : ( label instrucao | instrucao ) ; public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -234,20 +235,20 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==ID) ) { alt2=1; } - else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 74)) ) { + else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 75)) ) { alt2=2; } else { @@ -259,16 +260,16 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 74) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:12: label instrucao { - pushFollow(FOLLOW_label_in_comando79); + pushFollow(FOLLOW_label_in_comando84); label2=label(); state._fsp--; adaptor.addChild(root_0, label2.getTree()); - pushFollow(FOLLOW_instrucao_in_comando81); + pushFollow(FOLLOW_instrucao_in_comando86); instrucao3=instrucao(); state._fsp--; @@ -278,9 +279,9 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 74) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:30: instrucao { - pushFollow(FOLLOW_instrucao_in_comando85); + pushFollow(FOLLOW_instrucao_in_comando90); instrucao4=instrucao(); state._fsp--; @@ -324,7 +325,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:1: label : a= ID ':' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:1: label : a= ID ':' ; public final AssemblerParser.label_return label() throws RecognitionException, LabelException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -339,20 +340,20 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: a= ID ':' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,ID,FOLLOW_ID_in_label107); + a=(Token)match(input,ID,FOLLOW_ID_in_label112); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - char_literal5=(Token)match(input,21,FOLLOW_21_in_label109); + char_literal5=(Token)match(input,22,FOLLOW_22_in_label114); char_literal5_tree = (BytecodesAST)adaptor.create(char_literal5) ; @@ -392,7 +393,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -423,72 +424,71 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? int alt3=11; switch ( input.LA(1) ) { - case 16: - case 18: + case 17: + case 19: { alt3=1; } break; - case 28: - case 60: - case 74: + case 29: + case 61: + case 75: { alt3=2; } break; - case 30: - case 39: - case 52: - case 58: + case 31: + case 40: + case 53: case 59: - case 62: - case 68: + case 60: + case 63: + case 69: { alt3=3; } break; - case 23: case 24: case 25: case 26: case 27: - case 32: + case 28: case 33: case 34: case 35: case 36: case 37: case 38: - case 53: + case 39: case 54: case 55: case 56: case 57: - case 70: + case 58: + case 71: { alt3=4; } break; - case 63: case 64: case 65: case 66: case 67: + case 68: { alt3=5; } break; - case 29: - case 40: + case 30: case 41: case 42: case 43: @@ -500,28 +500,29 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce case 49: case 50: case 51: + case 52: { alt3=6; } break; - case 31: - case 61: - case 69: + case 32: + case 62: + case 70: { alt3=7; } break; - case 71: + case 72: { alt3=8; } break; - case 72: + case 73: { alt3=9; } break; - case 73: + case 74: { alt3=10; } @@ -530,9 +531,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:13: definicaoClasse { - pushFollow(FOLLOW_definicaoClasse_in_instrucao119); + pushFollow(FOLLOW_definicaoClasse_in_instrucao124); definicaoClasse6=definicaoClasse(); state._fsp--; @@ -542,9 +543,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:31: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao123); + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao128); manipulacaoObjetos7=manipulacaoObjetos(); state._fsp--; @@ -554,9 +555,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:52: aritmetica { - pushFollow(FOLLOW_aritmetica_in_instrucao127); + pushFollow(FOLLOW_aritmetica_in_instrucao132); aritmetica8=aritmetica(); state._fsp--; @@ -566,9 +567,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:65: load { - pushFollow(FOLLOW_load_in_instrucao131); + pushFollow(FOLLOW_load_in_instrucao136); load9=load(); state._fsp--; @@ -578,9 +579,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:72: store { - pushFollow(FOLLOW_store_in_instrucao135); + pushFollow(FOLLOW_store_in_instrucao140); store10=store(); state._fsp--; @@ -590,9 +591,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:80: desvio { - pushFollow(FOLLOW_desvio_in_instrucao139); + pushFollow(FOLLOW_desvio_in_instrucao144); desvio11=desvio(); state._fsp--; @@ -602,9 +603,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:89: logica { - pushFollow(FOLLOW_logica_in_instrucao143); + pushFollow(FOLLOW_logica_in_instrucao148); logica12=logica(); state._fsp--; @@ -614,9 +615,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:21: 'nop' { - string_literal13=(Token)match(input,71,FOLLOW_71_in_instrucao166); + string_literal13=(Token)match(input,72,FOLLOW_72_in_instrucao171); string_literal13_tree = (BytecodesAST)adaptor.create(string_literal13) ; @@ -626,9 +627,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:17: a= 'pop' { - a=(Token)match(input,72,FOLLOW_72_in_instrucao188); + a=(Token)match(input,73,FOLLOW_73_in_instrucao193); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -640,9 +641,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:17: a= 'pop2' { - a=(Token)match(input,73,FOLLOW_73_in_instrucao212); + a=(Token)match(input,74,FOLLOW_74_in_instrucao217); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -657,7 +658,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } - NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao232); + NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao237); NOVA_LINHA14_tree = (BytecodesAST)adaptor.create(NOVA_LINHA14) ; @@ -695,7 +696,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -720,18 +721,18 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST string_literal20_tree=null; RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); + RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==16) ) { + if ( (LA6_0==17) ) { alt6=1; } - else if ( (LA6_0==18) ) { + else if ( (LA6_0==19) ) { alt6=2; } else { @@ -743,32 +744,32 @@ else if ( (LA6_0==18) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { - string_literal15=(Token)match(input,16,FOLLOW_16_in_definicaoClasse254); - stream_16.add(string_literal15); + string_literal15=(Token)match(input,17,FOLLOW_17_in_definicaoClasse259); + stream_17.add(string_literal15); - ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse256); + ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse261); stream_ID.add(ID16); - NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse258); + NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse263); stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); - if ( (LA4_0==19) ) { + if ( (LA4_0==20) ) { alt4=1; } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:42: superClasse { - pushFollow(FOLLOW_superClasse_in_definicaoClasse260); + pushFollow(FOLLOW_superClasse_in_definicaoClasse265); superClasse18=superClasse(); state._fsp--; @@ -781,23 +782,23 @@ else if ( (LA6_0==18) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:55: ( membroClasse )+ int cnt5=0; loop5: do { int alt5=2; int LA5_0 = input.LA(1); - if ( (LA5_0==17) ) { + if ( (LA5_0==18) ) { alt5=1; } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:55: membroClasse { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse263); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse268); membroClasse19=membroClasse(); state._fsp--; @@ -818,7 +819,7 @@ else if ( (LA6_0==18) ) { // AST REWRITE - // elements: 16, membroClasse, superClasse, ID + // elements: superClasse, ID, membroClasse // token labels: // rule labels: retval // token list labels: @@ -828,27 +829,27 @@ else if ( (LA6_0==18) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 38:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 39:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_16.nextNode() + (BytecodesAST)adaptor.create(CLASSE, "CLASSE") , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:36: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:34: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -878,19 +879,19 @@ else if ( (LA6_0==18) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:19: '.method' construtorDefault + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:19: '.method' construtorDefault { root_0 = (BytecodesAST)adaptor.nil(); - string_literal20=(Token)match(input,18,FOLLOW_18_in_definicaoClasse322); + string_literal20=(Token)match(input,19,FOLLOW_19_in_definicaoClasse327); string_literal20_tree = (BytecodesAST)adaptor.create(string_literal20) ; adaptor.addChild(root_0, string_literal20_tree); - pushFollow(FOLLOW_construtorDefault_in_definicaoClasse324); + pushFollow(FOLLOW_construtorDefault_in_definicaoClasse329); construtorDefault21=construtorDefault(); state._fsp--; @@ -930,7 +931,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -943,18 +944,18 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal22_tree=null; BytecodesAST ID23_tree=null; - RewriteRuleTokenStream stream_19=new RewriteRuleTokenStream(adaptor,"token 19"); + RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:15: '.super' ID { - string_literal22=(Token)match(input,19,FOLLOW_19_in_superClasse365); - stream_19.add(string_literal22); + string_literal22=(Token)match(input,20,FOLLOW_20_in_superClasse370); + stream_20.add(string_literal22); - ID23=(Token)match(input,ID,FOLLOW_ID_in_superClasse367); + ID23=(Token)match(input,ID,FOLLOW_ID_in_superClasse372); stream_ID.add(ID23); @@ -969,9 +970,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 42:27: -> ^( EXTENDS ID ) + // 43:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1021,7 +1022,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1036,22 +1037,22 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST string_literal24_tree=null; BytecodesAST ID25_tree=null; - RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_18=new RewriteRuleTokenStream(adaptor,"token 18"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:16: '.field' ID tipo { - string_literal24=(Token)match(input,17,FOLLOW_17_in_membroClasse384); - stream_17.add(string_literal24); + string_literal24=(Token)match(input,18,FOLLOW_18_in_membroClasse389); + stream_18.add(string_literal24); - ID25=(Token)match(input,ID,FOLLOW_ID_in_membroClasse386); + ID25=(Token)match(input,ID,FOLLOW_ID_in_membroClasse391); stream_ID.add(ID25); - pushFollow(FOLLOW_tipo_in_membroClasse388); + pushFollow(FOLLOW_tipo_in_membroClasse393); tipo26=tipo(); state._fsp--; @@ -1059,7 +1060,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo26.getTree()); // AST REWRITE - // elements: ID, tipo + // elements: tipo, ID // token labels: // rule labels: retval // token list labels: @@ -1069,9 +1070,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 44:33: -> ^( FIELD_DECL ID tipo ) + // 45:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1123,7 +1124,7 @@ public static class construtorDefault_return extends ParserRuleReturnScope { // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: construtorDefault : INIT '()' VOID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: construtorDefault : INIT '()' VOID ; public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); retval.start = input.LT(1); @@ -1140,27 +1141,27 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws BytecodesAST VOID29_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:19: ( INIT '()' VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:21: INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:19: ( INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:21: INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - INIT27=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault407); + INIT27=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault412); INIT27_tree = (BytecodesAST)adaptor.create(INIT27) ; adaptor.addChild(root_0, INIT27_tree); - string_literal28=(Token)match(input,15,FOLLOW_15_in_construtorDefault409); + string_literal28=(Token)match(input,16,FOLLOW_16_in_construtorDefault414); string_literal28_tree = (BytecodesAST)adaptor.create(string_literal28) ; adaptor.addChild(root_0, string_literal28_tree); - VOID29=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault411); + VOID29=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault416); VOID29_tree = (BytecodesAST)adaptor.create(VOID29) ; @@ -1198,7 +1199,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1241,20 +1242,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST VOID45_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) int alt7=3; switch ( input.LA(1) ) { - case 28: + case 29: { alt7=1; } break; - case 74: + case 75: { alt7=2; } break; - case 60: + case 61: { alt7=3; } @@ -1269,40 +1270,40 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:22: 'getfield' ID '/' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:22: 'getfield' ID '/' ID tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal30=(Token)match(input,28,FOLLOW_28_in_manipulacaoObjetos421); + string_literal30=(Token)match(input,29,FOLLOW_29_in_manipulacaoObjetos426); string_literal30_tree = (BytecodesAST)adaptor.create(string_literal30) ; adaptor.addChild(root_0, string_literal30_tree); - ID31=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos423); + ID31=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos428); ID31_tree = (BytecodesAST)adaptor.create(ID31) ; adaptor.addChild(root_0, ID31_tree); - char_literal32=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos425); + char_literal32=(Token)match(input,21,FOLLOW_21_in_manipulacaoObjetos430); char_literal32_tree = (BytecodesAST)adaptor.create(char_literal32) ; adaptor.addChild(root_0, char_literal32_tree); - ID33=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos427); + ID33=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos432); ID33_tree = (BytecodesAST)adaptor.create(ID33) ; adaptor.addChild(root_0, ID33_tree); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos429); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos434); tipo34=tipo(); state._fsp--; @@ -1312,40 +1313,40 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:22: 'putfield' ID '/' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:22: 'putfield' ID '/' ID tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal35=(Token)match(input,74,FOLLOW_74_in_manipulacaoObjetos452); + string_literal35=(Token)match(input,75,FOLLOW_75_in_manipulacaoObjetos457); string_literal35_tree = (BytecodesAST)adaptor.create(string_literal35) ; adaptor.addChild(root_0, string_literal35_tree); - ID36=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos454); + ID36=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos459); ID36_tree = (BytecodesAST)adaptor.create(ID36) ; adaptor.addChild(root_0, ID36_tree); - char_literal37=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos456); + char_literal37=(Token)match(input,21,FOLLOW_21_in_manipulacaoObjetos461); char_literal37_tree = (BytecodesAST)adaptor.create(char_literal37) ; adaptor.addChild(root_0, char_literal37_tree); - ID38=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos458); + ID38=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos463); ID38_tree = (BytecodesAST)adaptor.create(ID38) ; adaptor.addChild(root_0, ID38_tree); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos460); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos465); tipo39=tipo(); state._fsp--; @@ -1355,47 +1356,47 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:22: 'invokespecial' ID '/' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:22: 'invokespecial' ID '/' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal40=(Token)match(input,60,FOLLOW_60_in_manipulacaoObjetos483); + string_literal40=(Token)match(input,61,FOLLOW_61_in_manipulacaoObjetos488); string_literal40_tree = (BytecodesAST)adaptor.create(string_literal40) ; adaptor.addChild(root_0, string_literal40_tree); - ID41=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos485); + ID41=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos490); ID41_tree = (BytecodesAST)adaptor.create(ID41) ; adaptor.addChild(root_0, ID41_tree); - char_literal42=(Token)match(input,20,FOLLOW_20_in_manipulacaoObjetos487); + char_literal42=(Token)match(input,21,FOLLOW_21_in_manipulacaoObjetos492); char_literal42_tree = (BytecodesAST)adaptor.create(char_literal42) ; adaptor.addChild(root_0, char_literal42_tree); - INIT43=(Token)match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos489); + INIT43=(Token)match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos494); INIT43_tree = (BytecodesAST)adaptor.create(INIT43) ; adaptor.addChild(root_0, INIT43_tree); - string_literal44=(Token)match(input,15,FOLLOW_15_in_manipulacaoObjetos491); + string_literal44=(Token)match(input,16,FOLLOW_16_in_manipulacaoObjetos496); string_literal44_tree = (BytecodesAST)adaptor.create(string_literal44) ; adaptor.addChild(root_0, string_literal44_tree); - VOID45=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos493); + VOID45=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos498); VOID45_tree = (BytecodesAST)adaptor.create(VOID45) ; @@ -1435,7 +1436,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: tipo : ( INT | VOID | 'L' ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: tipo : ( INT | VOID | 'L' ID ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1454,7 +1455,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST ID49_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:6: ( INT | VOID | 'L' ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:6: ( INT | VOID | 'L' ID ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1467,7 +1468,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { alt8=2; } break; - case 22: + case 23: { alt8=3; } @@ -1482,12 +1483,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT46=(Token)match(input,INT,FOLLOW_INT_in_tipo524); + INT46=(Token)match(input,INT,FOLLOW_INT_in_tipo529); INT46_tree = (BytecodesAST)adaptor.create(INT46) ; @@ -1497,12 +1498,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID47=(Token)match(input,VOID,FOLLOW_VOID_in_tipo528); + VOID47=(Token)match(input,VOID,FOLLOW_VOID_in_tipo533); VOID47_tree = (BytecodesAST)adaptor.create(VOID47) ; @@ -1512,19 +1513,19 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:21: 'L' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:21: 'L' ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal48=(Token)match(input,22,FOLLOW_22_in_tipo532); + char_literal48=(Token)match(input,23,FOLLOW_23_in_tipo537); char_literal48_tree = (BytecodesAST)adaptor.create(char_literal48) ; adaptor.addChild(root_0, char_literal48_tree); - ID49=(Token)match(input,ID,FOLLOW_ID_in_tipo533); + ID49=(Token)match(input,ID,FOLLOW_ID_in_tipo538); ID49_tree = (BytecodesAST)adaptor.create(ID49) ; @@ -1564,7 +1565,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1577,40 +1578,40 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { - case 30: + case 31: { alt9=1; } break; - case 68: + case 69: { alt9=2; } break; - case 58: + case 59: { alt9=3; } break; - case 39: + case 40: { alt9=4; } break; - case 62: + case 63: { alt9=5; } break; - case 52: + case 53: { alt9=6; } break; - case 59: + case 60: { alt9=7; } @@ -1625,12 +1626,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_aritmetica546); + a=(Token)match(input,31,FOLLOW_31_in_aritmetica551); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1642,12 +1643,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_aritmetica567); + a=(Token)match(input,69,FOLLOW_69_in_aritmetica572); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1659,12 +1660,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_aritmetica588); + a=(Token)match(input,59,FOLLOW_59_in_aritmetica593); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1676,12 +1677,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_aritmetica609); + a=(Token)match(input,40,FOLLOW_40_in_aritmetica614); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1693,12 +1694,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_aritmetica630); + a=(Token)match(input,63,FOLLOW_63_in_aritmetica635); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1710,12 +1711,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_aritmetica651); + a=(Token)match(input,53,FOLLOW_53_in_aritmetica656); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1727,12 +1728,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_aritmetica672); + a=(Token)match(input,60,FOLLOW_60_in_aritmetica677); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1774,7 +1775,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1803,95 +1804,95 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST string_literal57_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { - case 38: + case 39: { alt10=1; } break; - case 32: + case 33: { alt10=2; } break; - case 33: + case 34: { alt10=3; } break; - case 34: + case 35: { alt10=4; } break; - case 35: + case 36: { alt10=5; } break; - case 36: + case 37: { alt10=6; } break; - case 37: + case 38: { alt10=7; } break; - case 54: + case 55: { alt10=8; } break; - case 55: + case 56: { alt10=9; } break; - case 56: + case 57: { alt10=10; } break; - case 57: + case 58: { alt10=11; } break; - case 53: + case 54: { alt10=12; } break; - case 70: + case 71: { alt10=13; } break; - case 23: + case 24: { alt10=14; } break; - case 24: + case 25: { alt10=15; } break; - case 25: + case 26: { alt10=16; } break; - case 26: + case 27: { alt10=17; } break; - case 27: + case 28: { alt10=18; } @@ -1906,12 +1907,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_load709); + a=(Token)match(input,39,FOLLOW_39_in_load714); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1923,12 +1924,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_load723); + a=(Token)match(input,33,FOLLOW_33_in_load728); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1940,12 +1941,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_load738); + a=(Token)match(input,34,FOLLOW_34_in_load743); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1957,12 +1958,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,34,FOLLOW_34_in_load753); + a=(Token)match(input,35,FOLLOW_35_in_load758); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1974,12 +1975,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_load768); + a=(Token)match(input,36,FOLLOW_36_in_load773); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1991,12 +1992,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_load782); + a=(Token)match(input,37,FOLLOW_37_in_load787); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2008,12 +2009,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,37,FOLLOW_37_in_load796); + a=(Token)match(input,38,FOLLOW_38_in_load801); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2025,12 +2026,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_load810); + a=(Token)match(input,55,FOLLOW_55_in_load815); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2042,12 +2043,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_load825); + a=(Token)match(input,56,FOLLOW_56_in_load830); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2059,12 +2060,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_load840); + a=(Token)match(input,57,FOLLOW_57_in_load845); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2076,12 +2077,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_load855); + a=(Token)match(input,58,FOLLOW_58_in_load860); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2093,19 +2094,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_load870); + a=(Token)match(input,54,FOLLOW_54_in_load875); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO50=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load872); + INTEIRO50=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load877); INTEIRO50_tree = (BytecodesAST)adaptor.create(INTEIRO50) ; @@ -2117,19 +2118,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_load887); + a=(Token)match(input,71,FOLLOW_71_in_load892); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO51=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load889); + INTEIRO51=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load894); INTEIRO51_tree = (BytecodesAST)adaptor.create(INTEIRO51) ; @@ -2141,19 +2142,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - string_literal52=(Token)match(input,23,FOLLOW_23_in_load900); + string_literal52=(Token)match(input,24,FOLLOW_24_in_load905); string_literal52_tree = (BytecodesAST)adaptor.create(string_literal52) ; adaptor.addChild(root_0, string_literal52_tree); - INTEIRO53=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load902); + INTEIRO53=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load907); INTEIRO53_tree = (BytecodesAST)adaptor.create(INTEIRO53) ; @@ -2163,12 +2164,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal54=(Token)match(input,24,FOLLOW_24_in_load911); + string_literal54=(Token)match(input,25,FOLLOW_25_in_load916); string_literal54_tree = (BytecodesAST)adaptor.create(string_literal54) ; @@ -2178,12 +2179,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal55=(Token)match(input,25,FOLLOW_25_in_load920); + string_literal55=(Token)match(input,26,FOLLOW_26_in_load925); string_literal55_tree = (BytecodesAST)adaptor.create(string_literal55) ; @@ -2193,12 +2194,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal56=(Token)match(input,26,FOLLOW_26_in_load929); + string_literal56=(Token)match(input,27,FOLLOW_27_in_load934); string_literal56_tree = (BytecodesAST)adaptor.create(string_literal56) ; @@ -2208,12 +2209,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal57=(Token)match(input,27,FOLLOW_27_in_load938); + string_literal57=(Token)match(input,28,FOLLOW_28_in_load943); string_literal57_tree = (BytecodesAST)adaptor.create(string_literal57) ; @@ -2253,7 +2254,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2268,30 +2269,30 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST INTEIRO58_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) int alt11=5; switch ( input.LA(1) ) { - case 64: + case 65: { alt11=1; } break; - case 65: + case 66: { alt11=2; } break; - case 66: + case 67: { alt11=3; } break; - case 67: + case 68: { alt11=4; } break; - case 63: + case 64: { alt11=5; } @@ -2306,12 +2307,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_store961); + a=(Token)match(input,65,FOLLOW_65_in_store966); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2323,12 +2324,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_store977); + a=(Token)match(input,66,FOLLOW_66_in_store982); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2340,12 +2341,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,66,FOLLOW_66_in_store993); + a=(Token)match(input,67,FOLLOW_67_in_store998); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2357,12 +2358,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_store1009); + a=(Token)match(input,68,FOLLOW_68_in_store1014); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2374,19 +2375,19 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_store1025); + a=(Token)match(input,64,FOLLOW_64_in_store1030); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO58=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1027); + INTEIRO58=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1032); INTEIRO58_tree = (BytecodesAST)adaptor.create(INTEIRO58) ; @@ -2428,7 +2429,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2441,20 +2442,20 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { - case 31: + case 32: { alt12=1; } break; - case 61: + case 62: { alt12=2; } break; - case 69: + case 70: { alt12=3; } @@ -2469,12 +2470,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_logica1048); + a=(Token)match(input,32,FOLLOW_32_in_logica1053); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2486,12 +2487,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,61,FOLLOW_61_in_logica1065); + a=(Token)match(input,62,FOLLOW_62_in_logica1070); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2503,12 +2504,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,69,FOLLOW_69_in_logica1082); + a=(Token)match(input,70,FOLLOW_70_in_logica1087); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2550,7 +2551,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2565,70 +2566,70 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { - case 46: + case 47: { alt13=1; } break; - case 51: + case 52: { alt13=2; } break; - case 50: + case 51: { alt13=3; } break; - case 47: + case 48: { alt13=4; } break; - case 48: + case 49: { alt13=5; } break; - case 49: + case 50: { alt13=6; } break; - case 40: + case 41: { alt13=7; } break; - case 45: + case 46: { alt13=8; } break; - case 44: + case 45: { alt13=9; } break; - case 41: + case 42: { alt13=10; } break; - case 42: + case 43: { alt13=11; } break; - case 43: + case 44: { alt13=12; } break; - case 29: + case 30: { alt13=13; } @@ -2643,19 +2644,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_desvio1104); + a=(Token)match(input,47,FOLLOW_47_in_desvio1109); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1110); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1115); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2667,19 +2668,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1127); + a=(Token)match(input,52,FOLLOW_52_in_desvio1132); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1133); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1138); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2691,19 +2692,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1150); + a=(Token)match(input,51,FOLLOW_51_in_desvio1155); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1156); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1161); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2715,19 +2716,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_desvio1173); + a=(Token)match(input,48,FOLLOW_48_in_desvio1178); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1179); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1184); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2739,19 +2740,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_desvio1196); + a=(Token)match(input,49,FOLLOW_49_in_desvio1201); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1202); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1207); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2763,19 +2764,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1219); + a=(Token)match(input,50,FOLLOW_50_in_desvio1224); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1225); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1230); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2787,19 +2788,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_desvio1242); + a=(Token)match(input,41,FOLLOW_41_in_desvio1247); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1248); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1253); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2811,19 +2812,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_desvio1265); + a=(Token)match(input,46,FOLLOW_46_in_desvio1270); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1271); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1276); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2835,19 +2836,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_desvio1288); + a=(Token)match(input,45,FOLLOW_45_in_desvio1293); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1294); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1299); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2859,19 +2860,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_desvio1311); + a=(Token)match(input,42,FOLLOW_42_in_desvio1316); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1317); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1322); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2883,19 +2884,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_desvio1334); + a=(Token)match(input,43,FOLLOW_43_in_desvio1339); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1340); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1345); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2907,19 +2908,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_desvio1357); + a=(Token)match(input,44,FOLLOW_44_in_desvio1362); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1363); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1368); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2931,19 +2932,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,29,FOLLOW_29_in_desvio1380); + a=(Token)match(input,30,FOLLOW_30_in_desvio1385); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1386); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1391); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2982,120 +2983,120 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, - public static final BitSet FOLLOW_comando_in_programa59 = new BitSet(new long[]{0xFFFFFFFFFF850842L,0x00000000000007FFL}); - public static final BitSet FOLLOW_label_in_comando79 = new BitSet(new long[]{0xFFFFFFFFFF850800L,0x00000000000007FFL}); - public static final BitSet FOLLOW_instrucao_in_comando81 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando85 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label107 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_label109 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao119 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao123 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao127 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_load_in_instrucao131 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_store_in_instrucao135 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_desvio_in_instrucao139 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_logica_in_instrucao143 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_71_in_instrucao166 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_72_in_instrucao188 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_73_in_instrucao212 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao232 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_definicaoClasse254 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse256 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse258 = new BitSet(new long[]{0x00000000000A0000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse260 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse263 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_18_in_definicaoClasse322 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse324 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_19_in_superClasse365 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_superClasse367 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_membroClasse384 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_membroClasse386 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_membroClasse388 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault407 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_15_in_construtorDefault409 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_VOID_in_construtorDefault411 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_manipulacaoObjetos421 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos423 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos425 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos427 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos429 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_manipulacaoObjetos452 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos454 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos456 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos458 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos460 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_manipulacaoObjetos483 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos485 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_manipulacaoObjetos487 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos489 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_15_in_manipulacaoObjetos491 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos493 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo524 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo528 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_22_in_tipo532 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_tipo533 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_aritmetica546 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_aritmetica567 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_aritmetica588 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_aritmetica609 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_aritmetica630 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_aritmetica651 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_aritmetica672 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load709 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_load723 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load738 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load753 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load768 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load782 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load796 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load810 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load825 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load840 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load855 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_load870 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load872 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_load887 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load889 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_load900 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load902 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load911 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load920 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load929 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load938 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_store961 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_store977 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_store993 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_store1009 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_store1025 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_store1027 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_logica1048 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_logica1065 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_logica1082 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1104 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1110 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1127 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1133 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1150 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1156 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1173 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1179 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1196 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1202 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1219 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1225 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_desvio1242 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1248 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_desvio1265 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1271 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_desvio1288 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1294 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_desvio1311 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1317 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_desvio1334 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1340 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_desvio1357 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1363 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_desvio1380 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1386 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_programa64 = new BitSet(new long[]{0xFFFFFFFFFF0A1082L,0x0000000000000FFFL}); + public static final BitSet FOLLOW_label_in_comando84 = new BitSet(new long[]{0xFFFFFFFFFF0A1000L,0x0000000000000FFFL}); + public static final BitSet FOLLOW_instrucao_in_comando86 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando90 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label112 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_22_in_label114 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao124 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao128 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao132 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_load_in_instrucao136 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_store_in_instrucao140 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_desvio_in_instrucao144 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_logica_in_instrucao148 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_72_in_instrucao171 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_73_in_instrucao193 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_74_in_instrucao217 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_definicaoClasse259 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse261 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse263 = new BitSet(new long[]{0x0000000000140000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse265 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse268 = new BitSet(new long[]{0x0000000000040002L}); + public static final BitSet FOLLOW_19_in_definicaoClasse327 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse329 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_superClasse370 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_superClasse372 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_18_in_membroClasse389 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_membroClasse391 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_membroClasse393 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault412 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_construtorDefault414 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_VOID_in_construtorDefault416 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_manipulacaoObjetos426 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos428 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_manipulacaoObjetos430 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos432 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos434 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_manipulacaoObjetos457 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos459 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_manipulacaoObjetos461 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos463 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_manipulacaoObjetos488 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos490 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_manipulacaoObjetos492 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos494 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_manipulacaoObjetos496 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos498 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo529 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo533 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_tipo537 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipo538 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_aritmetica551 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_aritmetica572 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_aritmetica593 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_aritmetica614 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_aritmetica635 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_aritmetica656 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_aritmetica677 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load714 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load728 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load743 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_load758 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_load773 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load787 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load801 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load815 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load830 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load845 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load860 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load875 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load877 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_load892 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load894 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load905 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load907 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load916 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load925 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load934 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_load943 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_store966 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_store982 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_store998 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_store1014 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_store1030 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1032 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_logica1053 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_logica1070 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_logica1087 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1109 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1115 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1132 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1138 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1155 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1161 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1178 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1184 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1201 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1207 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1224 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1230 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_desvio1247 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1253 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1270 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1276 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_desvio1293 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1299 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_desvio1316 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1322 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_desvio1339 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1345 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_desvio1362 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1368 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_desvio1385 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1391 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index c06b49e..0624ec1 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -6,6 +6,7 @@ options { } tokens { + CLASSE; MEMBRO_CLASSE; FIELD_DECL; EXTENDS; @@ -35,7 +36,7 @@ instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | d )? NOVA_LINHA; definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ - -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) + -> ^(CLASSE ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) | '.method' construtorDefault ; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 44f21ba..def6fc0 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -25,7 +25,7 @@ bottomup : saiDaClasse; // START: class entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=ID))? ^(MEMBRO_CLASSE FIELD_DECL)) + : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) { // def class but leave superclass blank until ref phase System.out.println("line "+$nome.getLine()+ ": def class "+$nome.text); @@ -43,7 +43,7 @@ entraNaClasse declaracaoVariavel // global, parameter, or local variable - : ^(FIELD_DECL var = ID tipo =.) + : ^(FIELD_DECL ID tipo =.) { System.out.println("line "+$ID.getLine()+": def "+$ID.text); //$var.escopo = escopoAtual; @@ -54,5 +54,5 @@ declaracaoVariavel // global, parameter, or local variable escopoAtual.definir(variavel); } ; -saiDaClasse : '.class' +saiDaClasse : CLASSE ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index b3f7af9..84a6cf9 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-26 18:51:18 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-27 02:11:19 package br.ufpb.iged.interpretador.symboltable.parser; @@ -21,15 +21,14 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "MEMBRO_CLASSE", "'.class'" + "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "ID" }; public static final int EOF=-1; - public static final int T__8=8; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int MEMBRO_CLASSE=7; + public static final int CLASSE=4; + public static final int EXTENDS=5; + public static final int FIELD_DECL=6; + public static final int ID=7; // delegates public TreeFilter[] getDelegates() { @@ -68,7 +67,7 @@ public final void topdown() throws RecognitionException { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==8) ) { + if ( (LA1_0==CLASSE) ) { alt1=1; } else if ( (LA1_0==FIELD_DECL) ) { @@ -153,30 +152,46 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:27:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE FIELD_DECL ) ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:27:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE FIELD_DECL ) ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? ^( MEMBRO_CLASSE FIELD_DECL ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,8,FOLLOW_8_in_entraNaClasse97); if (state.failed) return ; + match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse97); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse101); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:28: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:26: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==EXTENDS) ) { - alt2=1; + int LA2_1 = input.LA(2); + + if ( (LA2_1==DOWN) ) { + int LA2_3 = input.LA(3); + + if ( (LA2_3==ID) ) { + int LA2_4 = input.LA(4); + + if ( (LA2_4==UP) ) { + int LA2_5 = input.LA(5); + + if ( ((LA2_5 >= CLASSE && LA2_5 <= ID)) ) { + alt2=1; + } + } + } + } } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:27: ^( EXTENDS sup= ID ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse105); if (state.failed) return ; @@ -192,13 +207,7 @@ public final void entraNaClasse() throws RecognitionException { } - match(input,MEMBRO_CLASSE,FOLLOW_MEMBRO_CLASSE_in_entraNaClasse115); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_entraNaClasse117); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - + matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -234,19 +243,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: declaracaoVariavel : ^( FIELD_DECL var= ID tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { - BytecodesAST var=null; + BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( FIELD_DECL var= ID tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:9: ^( FIELD_DECL var= ID tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:9: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel152); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel148); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - var=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel158); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel150); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -256,12 +265,12 @@ public final void declaracaoVariavel() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("line "+var.getLine()+": def "+(var!=null?var.getText():null)); - //var.escopo = escopoAtual; + System.out.println("line "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); + //$var.escopo = escopoAtual; SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo(tipo.getText()); - SimboloVariavel variavel = new SimboloVariavel((var!=null?var.getText():null),tipoPrimitivo); - //variavel.def = var; // track AST location of def's ID - //var.simbolo = variavel; // track in AST + SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),tipoPrimitivo); + //variavel.def = ID1; // track AST location of def's ID + //ID1.simbolo = variavel; // track in AST escopoAtual.definir(variavel); } @@ -283,13 +292,13 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:1: saiDaClasse : CLASSE ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:13: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:15: '.class' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:13: ( CLASSE ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:15: CLASSE { - match(input,8,FOLLOW_8_in_saiDaClasse186); if (state.failed) return ; + match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse178); if (state.failed) return ; } @@ -314,14 +323,12 @@ public final void saiDaClasse() throws RecognitionException { public static final BitSet FOLLOW_entraNaClasse_in_topdown43 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declaracaoVariavel_in_topdown55 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDaClasse_in_bottomup72 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_8_in_entraNaClasse97 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse101 = new BitSet(new long[]{0x0000000000000090L}); + public static final BitSet FOLLOW_CLASSE_in_entraNaClasse97 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse101 = new BitSet(new long[]{0x00000000000000F0L}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse105 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse109 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_MEMBRO_CLASSE_in_entraNaClasse115 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_FIELD_DECL_in_entraNaClasse117 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel152 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel158 = new BitSet(new long[]{0x00000000000001F0L}); - public static final BitSet FOLLOW_8_in_saiDaClasse186 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel148 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel150 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_CLASSE_in_saiDaClasse178 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens index b6c9395..1f9a28f 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens @@ -1,6 +1,4 @@ -T__8=8 -EXTENDS=4 -FIELD_DECL=5 -ID=6 -MEMBRO_CLASSE=7 -'.class'=8 +CLASSE=4 +EXTENDS=5 +FIELD_DECL=6 +ID=7 From d8d0e03df85b0a4be67505bb07cefeaff746c6d4 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Wed, 27 Jun 2012 22:18:05 -0300 Subject: [PATCH 22/79] commit --- .../asm/Definicao$Instrucao.class | Bin 824 -> 1002 bytes .../bytecodeassembler/asm/Definicao.class | Bin 3576 -> 4301 bytes .../bytecodeassembler/asm/Definicao.java | 42 +- .../parser/AssemblerLexer.java | 48 +- .../parser/AssemblerParser.java | 1110 ++++++++++------- .../iged/interpretador/gramaticas/Assembler.g | 16 +- .../interpretador/symboltable/parser/Def.java | 2 +- 7 files changed, 703 insertions(+), 515 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class index 4e6a316a3f5ee125fa075f65b81f91f444c22069..5ca6eee12ac7abe8eb84f77338eb50ba5b74159e 100644 GIT binary patch literal 1002 zcmb_b%Wl&^6g?9=NfS&<3vB}=aSH_!2VwD80bB0f)C)M5NGT(U62)Gk-3k#_uO;tIKO`X_zB=K?w3&zIPzk5b~5$cV5Ej_5T+`g z#wwM=D0aQCsq&+tl1ZW_-dM%1OeXG;ItjwSm(f8tOwxEpuMAV*%BlP!-LVWu?rZN< z`Kf>zMiV8l)w{Urr*RODo(UAwU>ZFX5Z#6UNT3u=^*km+2G2PreIc;Z`n$i|9uWSJ z#Z_>$1q+)3wN;hftahUpgzD97;;HzJq!!I8^5u9S<3PuYq?vvS5`p91|5yuE?yh8{ z$qQM9f$N(24FRLo9#p8LZs8KvwAZvyL`i#l7Rq_x^EqQ}a1>~jH%1V*SKKog%cGEZ{IB^i6E(#AO%8+S-cug%VsntF+Ph&u@i&Aj_&-kkHkim!#}U=6>h{K9jl*>`t8 z!e`Fi%p3fz?TZjY5))B!X(48ef=i8<;_z-MCZr_VW$)AMnDr;GV}jn9*L?IeS0>gu zE_a(iY$(~5pZ2M|D0@umj8x%Jz&2A#%fmUQnNg=7PAZB^Qfb<8tAE_C`ao}q?K5lr zoSJRr)NOj7liEhk;=idb4jgO#K%^5YoXXOn#`(Z(hoq4?8JQDp<;?O7cJP&(>O59h MRgJWbVT}#KU)l*H6951J diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 43c5c71822cbbdb5812f6a120950898d361a7d26..4053990cdd3ed07266bff2f08e2ad917320d15c7 100644 GIT binary patch literal 4301 zcmb{0X83*uZW}ECJB<-8fgS08MP@qlPZkn`3)3i0@V(n%(bdxj@G2QHLlC7KF z?PgPZ2$Wi=KoPl{-WL>a5Tpo#ilT@oii$TLpyGiC-dO!V&zs$OKln-LhxGaVXZD$Q z=ACzTl4s65`UDX*SdN!$iy8;BzVV^Vpf52TkNFa*Ts)h}#&eNaI_n$UmWxNzv3O)` zEIvAzjAwn3u~A=Zd?=AhL?dZ0O|eLAifoDal9AM~FEqF*9?e{J zxkxJ48%d7GJvb~`8Q<1uJhu&WHOep3e(z%nbMLr>k5=UfdZvbXMxfwh+Dg( zt-Iad7LaTI5Zu+{`V&|W{$OutU0b-Tt;OFg6MEVr+uzEw6qFM#v8Xf{>TMnf_=A@< z^I4YRjDtM^*}EKjZwPZb4f`dqwzA{VbbQRBjw=HH|3Y5i*PSA1+{aE+G>P?{ zqFx-m1&;tPz1O1FH{uWu-H6Vqbf%Q{(B3k-ncjyfXqr6a%!L8>ffCMT6RF`<{zbhG zy&rc%BFc}Gfzf3S-G+fqvd*D9Tw&W?uIe4y=c>UW+|~KdEq4g_a$YMO!X4~M#-co~ zqdYF$p0obfaAZ8VGm8?*bR_1`J-82~9KcX;Q%(XS`9J{}$cGBRI6i`NPK@Q!*|4IXfX4iCCQ3*18aJ<$XAjwh4OIP^(O5(@0_7^*}hhCw~f)!6u;L!ahqbUf+M zXSs?cwm9@TuCnn_ho0gp6(4r!i(Exg`0SU^IFZge^kt5=a`jcN5~-*|U*~ElzS*H? zrApxpz9m&M=g_yM8b-ePuM~ib_QwKnQU8pIiA+w+UvRl~%?ZN;l=P0!%JbG;W~Jk;d;2i@N#&C z;g#?uhTjCg*>EGg%5W3B+VC29t>L%8&4w?9TMW0tZHC+74#Sthe#38t*BK7LorZ&O z$Z!{Yx#9J2*l;)8W4IUIV7L$NH~cpE3d3)QuQdD)c);*RIAVAZjv9`^al=FKu;CFn zVR#e#PQyuf)Nl$;8_vL+4QJso!#Q}|@D})8hPT4o4D))~Zg>a$Zo^l>R~x<|rFT_&-verL=MwqoAyuL(Pt%cbzbcjBID#2EI7@<)YPRlP zCcIb8(JU9Zrl3O}gkYEBb=7|mAdW=evOs#SV>h46mWq**EaxLU1ww(udfMsvFG zVYNYXhVT*9r#VyjsM@GGOZX`j(>zD`gc{MT5`IP{HD?Q-R2j`V!q2OmX0`AO`Ob5N zPgl@Rz4=`6GZnN;`#kYiDrmR%Jn`3*w}K}0MVK$iH#pg^lk+9{CMO4Ua)BhzadJ>6 z3ncjtCx>)$p(M|9a#$x9N%DP8j_BlKNq)%5QJpN5ppZN}u>r;mfK<(2`Y_-C@_$opvkTW%ttE_6Y5>x6_2Zm-gF->41Gd9kidML-w3@X@gF&3{=FaXH~KMyuSWcN0C`ajUSZu!!tWah fI3Ec{&Rcoo#ftR`srUsPY}@p`ZYj4 zgU;{E1`GW|eL;7?Ne10a-pLMSoxGj&vcbNMc_-l|9XpqE(tRl>8?5mnc`!fB5QrzFJx00%lc-3z>lu7cosNBob=jvfiM|a3t0oVvI4UN+1(X zC`#s=Sd>gRsVJFkGArI0ThYp07V~5xY13Gu^l2(l8Z9YNIxWS@I$|B%W|ct|C}mVP z>Tq*N7P*$|_{wEGCdqaC$_UqkT!+G4T&K8R(b~@S5ZBSxHm>mwpifl#T#u>3u@xL| z=D1tcTeuEK<;B^`_43wBdCYdHqjHBkq>glQzEkQp$#1J!%K7RUsTmxGARasV^7#X4iWs)Gjk!XduHs0^+)s3scgYVM7M zqZc*vh+2$}u8hb_Hv*$q#W@{?aW3{{wvh0goI!1uNB;dGm>O1{Y!7?DY)YhXHuC%q z&zRYT*;{aY0+cZ*^nXlY@*C~XctbUmrfeGtd~G*=5oO zyozpuk793no=I0@p~IYO(luq_+O=iPHwoLPIC6o>JE*9ICSea1wa6swB7Z8G;C0=? z>)K|}xPMxXtmihIM>pl!Nt5ot(U7tiOS!8AtmK{&u#o#oz&aklJ-fNQmvu~fh*u#s zH+ZBhbii&dUPBA);iAw3JJ&zt4Vi>pT7d!sup28}JBdYM*HyT=LZ3-baFs5kOx|o2 zZqnUg($idJowP~Ma+PrgOnROxJA>bS5sh6hYtmtkuIB1xuG~z*q*uA>ch;M9M5+w# z;0>u#d6SMwHGu56s*t^6=J38Ys5YF*IN6pIe;;A4>eA7p1}vSA_Iw&ol~e@< zARn15OEgE|cFj>Zrnv*YRPzcr zuDKIlsksYYrMVmK(R>+vx#lb2)tcA9y_$J{t<`M9eVP++QnLg1YaYPv$9Wz;3+w1g zoQxD6vv%TSaQL1z`#7b0Dvsetz2`qd>*GC@f4GyLu5CBzcXK9V$6plGi!esgg4!Im*c{l}wf7O->$D$(fRz z;AFQ-rb+TPCwo*fU6OY>*{hNnlDyB!K9$UryOt7MiWA9M1!O3sqxQ%(-3ng= z`r1wf<0(8~y-rsdALGgDXWD4|j%TVrX_IdxUF(}d*ZJnt^}Z0@;OnBzzCpUtcMWav z-AOn3cGFhhA-dW37WMev#n;w1awq&J624K@LB$>6FDc}evyRZW' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:8: '' { match(""); @@ -1500,8 +1500,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:7: 'I' { match('I'); @@ -1521,8 +1521,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:8: 'V' { match('V'); @@ -1542,10 +1542,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1564,7 +1564,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:9: 'null' { match("null"); @@ -1573,7 +1573,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:18: 'NULL' { match("NULL"); @@ -1601,10 +1601,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1613,7 +1613,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:11: '-' { match('-'); @@ -1623,7 +1623,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1678,8 +1678,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1691,7 +1691,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1741,8 +1741,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:14: '\\n' { match('\n'); @@ -1762,8 +1762,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index 8e0b8b4..201b74a 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-27 02:11:16 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-27 22:05:45 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -819,7 +819,7 @@ else if ( (LA6_0==19) ) { // AST REWRITE - // elements: superClasse, ID, membroClasse + // elements: superClasse, membroClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1060,7 +1060,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo26.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1117,81 +1117,6 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti // $ANTLR end "membroClasse" - public static class construtorDefault_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: construtorDefault : INIT '()' VOID ; - public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { - AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token INIT27=null; - Token string_literal28=null; - Token VOID29=null; - - BytecodesAST INIT27_tree=null; - BytecodesAST string_literal28_tree=null; - BytecodesAST VOID29_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:19: ( INIT '()' VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:21: INIT '()' VOID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - INIT27=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault412); - INIT27_tree = - (BytecodesAST)adaptor.create(INIT27) - ; - adaptor.addChild(root_0, INIT27_tree); - - - string_literal28=(Token)match(input,16,FOLLOW_16_in_construtorDefault414); - string_literal28_tree = - (BytecodesAST)adaptor.create(string_literal28) - ; - adaptor.addChild(root_0, string_literal28_tree); - - - VOID29=(Token)match(input,VOID,FOLLOW_VOID_in_construtorDefault416); - VOID29_tree = - (BytecodesAST)adaptor.create(VOID29) - ; - adaptor.addChild(root_0, VOID29_tree); - - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "construtorDefault" - - public static class manipulacaoObjetos_return extends ParserRuleReturnScope { BytecodesAST tree; public Object getTree() { return tree; } @@ -1199,7 +1124,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: manipulacaoObjetos : ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: manipulacaoObjetos : ( 'getfield' campo tipo | 'putfield' campo tipo | 'invokespecial' construtorDefault VOID ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1207,42 +1132,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; + Token string_literal27=null; Token string_literal30=null; - Token ID31=null; - Token char_literal32=null; - Token ID33=null; - Token string_literal35=null; - Token ID36=null; - Token char_literal37=null; - Token ID38=null; - Token string_literal40=null; - Token ID41=null; - Token char_literal42=null; - Token INIT43=null; - Token string_literal44=null; - Token VOID45=null; - AssemblerParser.tipo_return tipo34 =null; + Token string_literal33=null; + Token VOID35=null; + AssemblerParser.campo_return campo28 =null; - AssemblerParser.tipo_return tipo39 =null; + AssemblerParser.tipo_return tipo29 =null; + AssemblerParser.campo_return campo31 =null; + AssemblerParser.tipo_return tipo32 =null; + + AssemblerParser.construtorDefault_return construtorDefault34 =null; + + + BytecodesAST string_literal27_tree=null; BytecodesAST string_literal30_tree=null; - BytecodesAST ID31_tree=null; - BytecodesAST char_literal32_tree=null; - BytecodesAST ID33_tree=null; - BytecodesAST string_literal35_tree=null; - BytecodesAST ID36_tree=null; - BytecodesAST char_literal37_tree=null; - BytecodesAST ID38_tree=null; - BytecodesAST string_literal40_tree=null; - BytecodesAST ID41_tree=null; - BytecodesAST char_literal42_tree=null; - BytecodesAST INIT43_tree=null; - BytecodesAST string_literal44_tree=null; - BytecodesAST VOID45_tree=null; + BytecodesAST string_literal33_tree=null; + BytecodesAST VOID35_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:20: ( 'getfield' ID '/' ID tipo | 'putfield' ID '/' ID tipo | 'invokespecial' ID '/' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:20: ( 'getfield' campo tipo | 'putfield' campo tipo | 'invokespecial' construtorDefault VOID ) int alt7=3; switch ( input.LA(1) ) { case 29: @@ -1270,137 +1181,88 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:22: 'getfield' ID '/' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:22: 'getfield' campo tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal30=(Token)match(input,29,FOLLOW_29_in_manipulacaoObjetos426); - string_literal30_tree = - (BytecodesAST)adaptor.create(string_literal30) - ; - adaptor.addChild(root_0, string_literal30_tree); - - - ID31=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos428); - ID31_tree = - (BytecodesAST)adaptor.create(ID31) + string_literal27=(Token)match(input,29,FOLLOW_29_in_manipulacaoObjetos412); + string_literal27_tree = + (BytecodesAST)adaptor.create(string_literal27) ; - adaptor.addChild(root_0, ID31_tree); - + adaptor.addChild(root_0, string_literal27_tree); - char_literal32=(Token)match(input,21,FOLLOW_21_in_manipulacaoObjetos430); - char_literal32_tree = - (BytecodesAST)adaptor.create(char_literal32) - ; - adaptor.addChild(root_0, char_literal32_tree); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos414); + campo28=campo(); - ID33=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos432); - ID33_tree = - (BytecodesAST)adaptor.create(ID33) - ; - adaptor.addChild(root_0, ID33_tree); + state._fsp--; + adaptor.addChild(root_0, campo28.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos434); - tipo34=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos416); + tipo29=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo34.getTree()); + adaptor.addChild(root_0, tipo29.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:22: 'putfield' ID '/' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:22: 'putfield' campo tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal35=(Token)match(input,75,FOLLOW_75_in_manipulacaoObjetos457); - string_literal35_tree = - (BytecodesAST)adaptor.create(string_literal35) - ; - adaptor.addChild(root_0, string_literal35_tree); - - - ID36=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos459); - ID36_tree = - (BytecodesAST)adaptor.create(ID36) + string_literal30=(Token)match(input,75,FOLLOW_75_in_manipulacaoObjetos439); + string_literal30_tree = + (BytecodesAST)adaptor.create(string_literal30) ; - adaptor.addChild(root_0, ID36_tree); + adaptor.addChild(root_0, string_literal30_tree); - char_literal37=(Token)match(input,21,FOLLOW_21_in_manipulacaoObjetos461); - char_literal37_tree = - (BytecodesAST)adaptor.create(char_literal37) - ; - adaptor.addChild(root_0, char_literal37_tree); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos441); + campo31=campo(); + state._fsp--; - ID38=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos463); - ID38_tree = - (BytecodesAST)adaptor.create(ID38) - ; - adaptor.addChild(root_0, ID38_tree); - + adaptor.addChild(root_0, campo31.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos465); - tipo39=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos443); + tipo32=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo39.getTree()); + adaptor.addChild(root_0, tipo32.getTree()); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:22: 'invokespecial' ID '/' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:22: 'invokespecial' construtorDefault VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal40=(Token)match(input,61,FOLLOW_61_in_manipulacaoObjetos488); - string_literal40_tree = - (BytecodesAST)adaptor.create(string_literal40) - ; - adaptor.addChild(root_0, string_literal40_tree); - - - ID41=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos490); - ID41_tree = - (BytecodesAST)adaptor.create(ID41) + string_literal33=(Token)match(input,61,FOLLOW_61_in_manipulacaoObjetos466); + string_literal33_tree = + (BytecodesAST)adaptor.create(string_literal33) ; - adaptor.addChild(root_0, ID41_tree); + adaptor.addChild(root_0, string_literal33_tree); - char_literal42=(Token)match(input,21,FOLLOW_21_in_manipulacaoObjetos492); - char_literal42_tree = - (BytecodesAST)adaptor.create(char_literal42) - ; - adaptor.addChild(root_0, char_literal42_tree); - - - INIT43=(Token)match(input,INIT,FOLLOW_INIT_in_manipulacaoObjetos494); - INIT43_tree = - (BytecodesAST)adaptor.create(INIT43) - ; - adaptor.addChild(root_0, INIT43_tree); - + pushFollow(FOLLOW_construtorDefault_in_manipulacaoObjetos468); + construtorDefault34=construtorDefault(); - string_literal44=(Token)match(input,16,FOLLOW_16_in_manipulacaoObjetos496); - string_literal44_tree = - (BytecodesAST)adaptor.create(string_literal44) - ; - adaptor.addChild(root_0, string_literal44_tree); + state._fsp--; + adaptor.addChild(root_0, construtorDefault34.getTree()); - VOID45=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos498); - VOID45_tree = - (BytecodesAST)adaptor.create(VOID45) + VOID35=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos470); + VOID35_tree = + (BytecodesAST)adaptor.create(VOID35) ; - adaptor.addChild(root_0, VOID45_tree); + adaptor.addChild(root_0, VOID35_tree); } @@ -1436,7 +1298,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: tipo : ( INT | VOID | 'L' ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1444,18 +1306,16 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT46=null; - Token VOID47=null; - Token char_literal48=null; - Token ID49=null; + Token INT36=null; + Token VOID37=null; + AssemblerParser.tipoRef_return tipoRef38 =null; + - BytecodesAST INT46_tree=null; - BytecodesAST VOID47_tree=null; - BytecodesAST char_literal48_tree=null; - BytecodesAST ID49_tree=null; + BytecodesAST INT36_tree=null; + BytecodesAST VOID37_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:6: ( INT | VOID | 'L' ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1483,54 +1343,47 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT46=(Token)match(input,INT,FOLLOW_INT_in_tipo529); - INT46_tree = - (BytecodesAST)adaptor.create(INT46) + INT36=(Token)match(input,INT,FOLLOW_INT_in_tipo501); + INT36_tree = + (BytecodesAST)adaptor.create(INT36) ; - adaptor.addChild(root_0, INT46_tree); + adaptor.addChild(root_0, INT36_tree); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID47=(Token)match(input,VOID,FOLLOW_VOID_in_tipo533); - VOID47_tree = - (BytecodesAST)adaptor.create(VOID47) + VOID37=(Token)match(input,VOID,FOLLOW_VOID_in_tipo505); + VOID37_tree = + (BytecodesAST)adaptor.create(VOID37) ; - adaptor.addChild(root_0, VOID47_tree); + adaptor.addChild(root_0, VOID37_tree); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:21: 'L' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - char_literal48=(Token)match(input,23,FOLLOW_23_in_tipo537); - char_literal48_tree = - (BytecodesAST)adaptor.create(char_literal48) - ; - adaptor.addChild(root_0, char_literal48_tree); + pushFollow(FOLLOW_tipoRef_in_tipo509); + tipoRef38=tipoRef(); + state._fsp--; - ID49=(Token)match(input,ID,FOLLOW_ID_in_tipo538); - ID49_tree = - (BytecodesAST)adaptor.create(ID49) - ; - adaptor.addChild(root_0, ID49_tree); - + adaptor.addChild(root_0, tipoRef38.getTree()); } break; @@ -1565,7 +1418,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1578,7 +1431,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { case 31: @@ -1626,12 +1479,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_aritmetica551); + a=(Token)match(input,31,FOLLOW_31_in_aritmetica522); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1643,12 +1496,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,69,FOLLOW_69_in_aritmetica572); + a=(Token)match(input,69,FOLLOW_69_in_aritmetica543); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1660,12 +1513,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_aritmetica593); + a=(Token)match(input,59,FOLLOW_59_in_aritmetica564); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1677,12 +1530,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_aritmetica614); + a=(Token)match(input,40,FOLLOW_40_in_aritmetica585); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1694,12 +1547,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_aritmetica635); + a=(Token)match(input,63,FOLLOW_63_in_aritmetica606); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1711,12 +1564,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_aritmetica656); + a=(Token)match(input,53,FOLLOW_53_in_aritmetica627); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1728,12 +1581,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,60,FOLLOW_60_in_aritmetica677); + a=(Token)match(input,60,FOLLOW_60_in_aritmetica648); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1775,7 +1628,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1784,27 +1637,27 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST root_0 = null; Token a=null; - Token INTEIRO50=null; - Token INTEIRO51=null; - Token string_literal52=null; - Token INTEIRO53=null; - Token string_literal54=null; - Token string_literal55=null; - Token string_literal56=null; - Token string_literal57=null; + Token INTEIRO39=null; + Token INTEIRO40=null; + Token string_literal41=null; + Token INTEIRO42=null; + Token string_literal43=null; + Token string_literal44=null; + Token string_literal45=null; + Token string_literal46=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO50_tree=null; - BytecodesAST INTEIRO51_tree=null; - BytecodesAST string_literal52_tree=null; - BytecodesAST INTEIRO53_tree=null; - BytecodesAST string_literal54_tree=null; - BytecodesAST string_literal55_tree=null; - BytecodesAST string_literal56_tree=null; - BytecodesAST string_literal57_tree=null; + BytecodesAST INTEIRO39_tree=null; + BytecodesAST INTEIRO40_tree=null; + BytecodesAST string_literal41_tree=null; + BytecodesAST INTEIRO42_tree=null; + BytecodesAST string_literal43_tree=null; + BytecodesAST string_literal44_tree=null; + BytecodesAST string_literal45_tree=null; + BytecodesAST string_literal46_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { case 39: @@ -1907,12 +1760,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_load714); + a=(Token)match(input,39,FOLLOW_39_in_load685); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1924,12 +1777,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_load728); + a=(Token)match(input,33,FOLLOW_33_in_load699); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1941,12 +1794,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,34,FOLLOW_34_in_load743); + a=(Token)match(input,34,FOLLOW_34_in_load714); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1958,12 +1811,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_load758); + a=(Token)match(input,35,FOLLOW_35_in_load729); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1975,12 +1828,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_load773); + a=(Token)match(input,36,FOLLOW_36_in_load744); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1992,12 +1845,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,37,FOLLOW_37_in_load787); + a=(Token)match(input,37,FOLLOW_37_in_load758); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2009,12 +1862,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_load801); + a=(Token)match(input,38,FOLLOW_38_in_load772); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2026,12 +1879,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_load815); + a=(Token)match(input,55,FOLLOW_55_in_load786); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2043,12 +1896,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_load830); + a=(Token)match(input,56,FOLLOW_56_in_load801); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2060,12 +1913,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_load845); + a=(Token)match(input,57,FOLLOW_57_in_load816); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2077,12 +1930,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_load860); + a=(Token)match(input,58,FOLLOW_58_in_load831); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2094,131 +1947,131 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_load875); + a=(Token)match(input,54,FOLLOW_54_in_load846); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO50=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load877); - INTEIRO50_tree = - (BytecodesAST)adaptor.create(INTEIRO50) + INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load848); + INTEIRO39_tree = + (BytecodesAST)adaptor.create(INTEIRO39) ; - adaptor.addChild(root_0, INTEIRO50_tree); + adaptor.addChild(root_0, INTEIRO39_tree); - escreverOpcode(a, INTEIRO50); + escreverOpcode(a, INTEIRO39); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,71,FOLLOW_71_in_load892); + a=(Token)match(input,71,FOLLOW_71_in_load863); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO51=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load894); - INTEIRO51_tree = - (BytecodesAST)adaptor.create(INTEIRO51) + INTEIRO40=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load865); + INTEIRO40_tree = + (BytecodesAST)adaptor.create(INTEIRO40) ; - adaptor.addChild(root_0, INTEIRO51_tree); + adaptor.addChild(root_0, INTEIRO40_tree); - escreverOpcode(a, INTEIRO51); + escreverOpcode(a, INTEIRO40); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - string_literal52=(Token)match(input,24,FOLLOW_24_in_load905); - string_literal52_tree = - (BytecodesAST)adaptor.create(string_literal52) + string_literal41=(Token)match(input,24,FOLLOW_24_in_load876); + string_literal41_tree = + (BytecodesAST)adaptor.create(string_literal41) ; - adaptor.addChild(root_0, string_literal52_tree); + adaptor.addChild(root_0, string_literal41_tree); - INTEIRO53=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load907); - INTEIRO53_tree = - (BytecodesAST)adaptor.create(INTEIRO53) + INTEIRO42=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load878); + INTEIRO42_tree = + (BytecodesAST)adaptor.create(INTEIRO42) ; - adaptor.addChild(root_0, INTEIRO53_tree); + adaptor.addChild(root_0, INTEIRO42_tree); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal54=(Token)match(input,25,FOLLOW_25_in_load916); - string_literal54_tree = - (BytecodesAST)adaptor.create(string_literal54) + string_literal43=(Token)match(input,25,FOLLOW_25_in_load887); + string_literal43_tree = + (BytecodesAST)adaptor.create(string_literal43) ; - adaptor.addChild(root_0, string_literal54_tree); + adaptor.addChild(root_0, string_literal43_tree); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal55=(Token)match(input,26,FOLLOW_26_in_load925); - string_literal55_tree = - (BytecodesAST)adaptor.create(string_literal55) + string_literal44=(Token)match(input,26,FOLLOW_26_in_load896); + string_literal44_tree = + (BytecodesAST)adaptor.create(string_literal44) ; - adaptor.addChild(root_0, string_literal55_tree); + adaptor.addChild(root_0, string_literal44_tree); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal56=(Token)match(input,27,FOLLOW_27_in_load934); - string_literal56_tree = - (BytecodesAST)adaptor.create(string_literal56) + string_literal45=(Token)match(input,27,FOLLOW_27_in_load905); + string_literal45_tree = + (BytecodesAST)adaptor.create(string_literal45) ; - adaptor.addChild(root_0, string_literal56_tree); + adaptor.addChild(root_0, string_literal45_tree); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal57=(Token)match(input,28,FOLLOW_28_in_load943); - string_literal57_tree = - (BytecodesAST)adaptor.create(string_literal57) + string_literal46=(Token)match(input,28,FOLLOW_28_in_load914); + string_literal46_tree = + (BytecodesAST)adaptor.create(string_literal46) ; - adaptor.addChild(root_0, string_literal57_tree); + adaptor.addChild(root_0, string_literal46_tree); } @@ -2254,7 +2107,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2263,13 +2116,13 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST root_0 = null; Token a=null; - Token INTEIRO58=null; + Token INTEIRO47=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO58_tree=null; + BytecodesAST INTEIRO47_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) int alt11=5; switch ( input.LA(1) ) { case 65: @@ -2307,12 +2160,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_store966); + a=(Token)match(input,65,FOLLOW_65_in_store937); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2324,12 +2177,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,66,FOLLOW_66_in_store982); + a=(Token)match(input,66,FOLLOW_66_in_store953); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2341,12 +2194,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_store998); + a=(Token)match(input,67,FOLLOW_67_in_store969); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2358,12 +2211,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_store1014); + a=(Token)match(input,68,FOLLOW_68_in_store985); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2375,26 +2228,26 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_store1030); + a=(Token)match(input,64,FOLLOW_64_in_store1001); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO58=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1032); - INTEIRO58_tree = - (BytecodesAST)adaptor.create(INTEIRO58) + INTEIRO47=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1003); + INTEIRO47_tree = + (BytecodesAST)adaptor.create(INTEIRO47) ; - adaptor.addChild(root_0, INTEIRO58_tree); + adaptor.addChild(root_0, INTEIRO47_tree); - verificarAumentoMemoriaGlobal(a, INTEIRO58); + verificarAumentoMemoriaGlobal(a, INTEIRO47); } break; @@ -2429,7 +2282,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2442,7 +2295,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { case 32: @@ -2470,12 +2323,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_logica1053); + a=(Token)match(input,32,FOLLOW_32_in_logica1024); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2487,12 +2340,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_logica1070); + a=(Token)match(input,62,FOLLOW_62_in_logica1041); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2504,12 +2357,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_logica1087); + a=(Token)match(input,70,FOLLOW_70_in_logica1058); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2551,7 +2404,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2566,7 +2419,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { case 47: @@ -2644,19 +2497,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_desvio1109); + a=(Token)match(input,47,FOLLOW_47_in_desvio1080); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1115); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1086); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2668,19 +2521,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_desvio1132); + a=(Token)match(input,52,FOLLOW_52_in_desvio1103); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1138); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1109); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2692,19 +2545,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1155); + a=(Token)match(input,51,FOLLOW_51_in_desvio1126); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1161); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1132); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2716,19 +2569,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_desvio1178); + a=(Token)match(input,48,FOLLOW_48_in_desvio1149); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1184); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1155); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2740,19 +2593,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1201); + a=(Token)match(input,49,FOLLOW_49_in_desvio1172); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1207); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1178); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2764,19 +2617,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1224); + a=(Token)match(input,50,FOLLOW_50_in_desvio1195); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1230); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1201); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2788,19 +2641,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_desvio1247); + a=(Token)match(input,41,FOLLOW_41_in_desvio1218); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1253); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1224); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2812,19 +2665,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_desvio1270); + a=(Token)match(input,46,FOLLOW_46_in_desvio1241); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1276); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1247); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2836,19 +2689,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_desvio1293); + a=(Token)match(input,45,FOLLOW_45_in_desvio1264); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1299); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1270); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2860,19 +2713,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_desvio1316); + a=(Token)match(input,42,FOLLOW_42_in_desvio1287); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1322); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1293); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2884,19 +2737,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_desvio1339); + a=(Token)match(input,43,FOLLOW_43_in_desvio1310); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1345); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1316); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2908,19 +2761,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_desvio1362); + a=(Token)match(input,44,FOLLOW_44_in_desvio1333); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1368); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1339); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2932,19 +2785,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_desvio1385); + a=(Token)match(input,30,FOLLOW_30_in_desvio1356); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1391); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1362); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2978,6 +2831,303 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } // $ANTLR end "desvio" + + public static class construtorDefault_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "construtorDefault" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:1: construtorDefault : ( ID '/' )* INIT '()' ; + public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { + AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token ID48=null; + Token char_literal49=null; + Token INIT50=null; + Token string_literal51=null; + + BytecodesAST ID48_tree=null; + BytecodesAST char_literal49_tree=null; + BytecodesAST INIT50_tree=null; + BytecodesAST string_literal51_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:19: ( ( ID '/' )* INIT '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:21: ( ID '/' )* INIT '()' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:21: ( ID '/' )* + loop14: + do { + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0==ID) ) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:22: ID '/' + { + ID48=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1381); + ID48_tree = + (BytecodesAST)adaptor.create(ID48) + ; + adaptor.addChild(root_0, ID48_tree); + + + char_literal49=(Token)match(input,21,FOLLOW_21_in_construtorDefault1383); + char_literal49_tree = + (BytecodesAST)adaptor.create(char_literal49) + ; + adaptor.addChild(root_0, char_literal49_tree); + + + } + break; + + default : + break loop14; + } + } while (true); + + + INIT50=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1387); + INIT50_tree = + (BytecodesAST)adaptor.create(INIT50) + ; + adaptor.addChild(root_0, INIT50_tree); + + + string_literal51=(Token)match(input,16,FOLLOW_16_in_construtorDefault1389); + string_literal51_tree = + (BytecodesAST)adaptor.create(string_literal51) + ; + adaptor.addChild(root_0, string_literal51_tree); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "construtorDefault" + + + public static class campo_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "campo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:1: campo : ID '/' ID ; + public final AssemblerParser.campo_return campo() throws RecognitionException { + AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token ID52=null; + Token char_literal53=null; + Token ID54=null; + + BytecodesAST ID52_tree=null; + BytecodesAST char_literal53_tree=null; + BytecodesAST ID54_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( ID '/' ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: ID '/' ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + ID52=(Token)match(input,ID,FOLLOW_ID_in_campo1396); + ID52_tree = + (BytecodesAST)adaptor.create(ID52) + ; + adaptor.addChild(root_0, ID52_tree); + + + char_literal53=(Token)match(input,21,FOLLOW_21_in_campo1398); + char_literal53_tree = + (BytecodesAST)adaptor.create(char_literal53) + ; + adaptor.addChild(root_0, char_literal53_tree); + + + ID54=(Token)match(input,ID,FOLLOW_ID_in_campo1400); + ID54_tree = + (BytecodesAST)adaptor.create(ID54) + ; + adaptor.addChild(root_0, ID54_tree); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "campo" + + + public static class tipoRef_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "tipoRef" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: tipoRef : 'L' ( ID '/' )* ID ; + public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { + AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token char_literal55=null; + Token ID56=null; + Token char_literal57=null; + Token ID58=null; + + BytecodesAST char_literal55_tree=null; + BytecodesAST ID56_tree=null; + BytecodesAST char_literal57_tree=null; + BytecodesAST ID58_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:11: 'L' ( ID '/' )* ID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + char_literal55=(Token)match(input,23,FOLLOW_23_in_tipoRef1408); + char_literal55_tree = + (BytecodesAST)adaptor.create(char_literal55) + ; + adaptor.addChild(root_0, char_literal55_tree); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:15: ( ID '/' )* + loop15: + do { + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==ID) ) { + int LA15_1 = input.LA(2); + + if ( (LA15_1==21) ) { + alt15=1; + } + + + } + + + switch (alt15) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:16: ID '/' + { + ID56=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1411); + ID56_tree = + (BytecodesAST)adaptor.create(ID56) + ; + adaptor.addChild(root_0, ID56_tree); + + + char_literal57=(Token)match(input,21,FOLLOW_21_in_tipoRef1413); + char_literal57_tree = + (BytecodesAST)adaptor.create(char_literal57) + ; + adaptor.addChild(root_0, char_literal57_tree); + + + } + break; + + default : + break loop15; + } + } while (true); + + + ID58=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1417); + ID58_tree = + (BytecodesAST)adaptor.create(ID58) + ; + adaptor.addChild(root_0, ID58_tree); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "tipoRef" + // Delegated rules @@ -3005,98 +3155,98 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse263 = new BitSet(new long[]{0x0000000000140000L}); public static final BitSet FOLLOW_superClasse_in_definicaoClasse265 = new BitSet(new long[]{0x0000000000040000L}); public static final BitSet FOLLOW_membroClasse_in_definicaoClasse268 = new BitSet(new long[]{0x0000000000040002L}); - public static final BitSet FOLLOW_19_in_definicaoClasse327 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_19_in_definicaoClasse327 = new BitSet(new long[]{0x0000000000000180L}); public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse329 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_20_in_superClasse370 = new BitSet(new long[]{0x0000000000000080L}); public static final BitSet FOLLOW_ID_in_superClasse372 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_18_in_membroClasse389 = new BitSet(new long[]{0x0000000000000080L}); public static final BitSet FOLLOW_ID_in_membroClasse391 = new BitSet(new long[]{0x0000000000804200L}); public static final BitSet FOLLOW_tipo_in_membroClasse393 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault412 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_construtorDefault414 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_VOID_in_construtorDefault416 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_manipulacaoObjetos426 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos428 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_manipulacaoObjetos430 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos432 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos434 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_manipulacaoObjetos457 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos459 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_manipulacaoObjetos461 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos463 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos465 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_manipulacaoObjetos488 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos490 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_manipulacaoObjetos492 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_INIT_in_manipulacaoObjetos494 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_manipulacaoObjetos496 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos498 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo529 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo533 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_tipo537 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipo538 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_aritmetica551 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_aritmetica572 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_aritmetica593 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_aritmetica614 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_aritmetica635 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_aritmetica656 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_aritmetica677 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load714 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load728 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load743 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load758 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load773 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load787 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load801 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load815 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load830 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load845 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load860 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load875 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load877 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_load892 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load894 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load905 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load907 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load916 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load925 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load934 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_load943 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_store966 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_store982 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_store998 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_store1014 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_store1030 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1032 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_logica1053 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_logica1070 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_logica1087 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1109 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1115 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1132 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1138 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1155 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1161 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1178 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1184 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1201 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1207 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1224 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1230 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_desvio1247 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1253 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1270 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1276 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_desvio1293 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1299 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_desvio1316 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1322 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_desvio1339 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1345 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_desvio1362 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1368 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_desvio1385 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1391 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_manipulacaoObjetos412 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos414 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos416 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_manipulacaoObjetos439 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos441 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos443 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_manipulacaoObjetos466 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos468 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos470 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo501 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo505 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo509 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_aritmetica522 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_aritmetica543 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_aritmetica564 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_aritmetica585 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_aritmetica606 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_aritmetica627 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_aritmetica648 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load685 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load699 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load714 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_load729 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_load744 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load758 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load772 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load786 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load801 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load816 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load831 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load846 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load848 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_load863 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load865 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load876 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load878 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load887 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load896 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load905 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_load914 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_store937 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_store953 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_store969 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_store985 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_store1001 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1003 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_logica1024 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_logica1041 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_logica1058 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1080 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1103 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1109 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1126 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1132 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1149 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1172 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1195 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1201 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_desvio1218 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1224 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1241 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1247 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_desvio1264 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1270 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_desvio1287 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1293 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_desvio1310 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1316 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_desvio1333 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1339 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_desvio1356 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1362 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_construtorDefault1381 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_construtorDefault1383 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault1387 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_construtorDefault1389 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo1396 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_campo1398 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_campo1400 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_tipoRef1408 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1411 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_tipoRef1413 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1417 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 0624ec1..17bc80e 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -44,14 +44,12 @@ superClasse : '.super' ID -> ^(EXTENDS ID) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) ; -construtorDefault : INIT '()' VOID ; - -manipulacaoObjetos : 'getfield' ID '/' ID tipo - | 'putfield' ID '/' ID tipo - | 'invokespecial' ID '/' INIT '()' VOID +manipulacaoObjetos : 'getfield' campo tipo + | 'putfield' campo tipo + | 'invokespecial' construtorDefault VOID ; -tipo : INT | VOID | 'L'ID ; +tipo : INT | VOID | tipoRef ; aritmetica : a = 'iadd' {escreverOpcode($a);} | a = 'isub' {escreverOpcode($a);} @@ -109,6 +107,12 @@ desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} | a = 'goto' b = ID {escreverOpcode($a, $b);} ; +construtorDefault : (ID '/')* INIT '()'; + +campo: ID '/' ID; + +tipoRef : 'L' (ID '/')* ID; + INIT : ''; INT : 'I'; diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index 84a6cf9..08d29d1 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-27 02:11:19 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-27 22:05:48 package br.ufpb.iged.interpretador.symboltable.parser; From 52fd4653fd8170c956a8a2489936dc0f2134be18 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Thu, 28 Jun 2012 12:17:05 -0300 Subject: [PATCH 23/79] commit --- .../asm/Definicao$Instrucao.class | Bin 1002 -> 841 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4301 -> 4409 bytes .../principal/Interpretador.class | Bin 11835 -> 11763 bytes .../bytecodeassembler/asm/Definicao.java | 19 +- .../bytecodeassembler/parser/Assembler.tokens | 104 +- .../parser/AssemblerLexer.java | 763 +++++---- .../parser/AssemblerParser.java | 1454 ++++++++++------- .../iged/interpretador/gramaticas/Assembler.g | 42 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 25 +- .../principal/Interpretador.java | 48 +- .../interpretador/symboltable/parser/Def.java | 95 +- 11 files changed, 1459 insertions(+), 1091 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class index 5ca6eee12ac7abe8eb84f77338eb50ba5b74159e..e7dfb1e0a724835ca1ac466b4e2c6adf0a3f4935 100644 GIT binary patch delta 329 zcmX|*J5Iwu6h+V2A+d)63Bo6K97y~5-+y0TfdhsU`fplGRhn? zG|Ons(W+~Ghb1zY>-@v)o1Mqtz8h%5F{gK4hGQC{LgYtbmVXEBhchjo(^jotcUWRs znPy6X_R2_DYSO|#X{@}VUgDow@nNB0RM7QVLC^OJ)}Pc2Sk#*e0~Z=UA?8wtTuFFC lhg*(Hv#&{0b22q23@Woc)eWJL8x?qyE&W#47`E9Z{sZO`A94Ty delta 504 zcmZvYxlY4C5QhKFI)}}2ClJ7i!=0>=Qa}|7S`c&*APR&GLQw!k2q7AZ)Ra~pf||mL zL_rTFC67SG6Ci%uIU1UsV`u*PX5LfZY3t+n^$ox#Hhk+dmoFb&c@JLo#%ndI_4~VK ztFgW3|2+C%_O9?ONX#iH%nQhJ<;aA9tuTU2=oJ-`NQGWWAsy$I6wKILQLvB^5a*p| zQ8lzc&7Y`svWcCxWQ)Qm-!YQxQ$^C6+LhAoV*G_c0#ke~THqKNoM4(>DK117IYw*= z0VorC9LDNUc%~PcqS9mxl+T9?@8lwc(QKq#>C{Te5^AEGBFZ}=j diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 4053990cdd3ed07266bff2f08e2ad917320d15c7..d77f011e2e76c019fea3f9fda57a94a3a9a4814d 100644 GIT binary patch delta 477 zcmYL`J4};d6o#L3KH&dbTGFDUiIl~`#1Jn*(BR_2;zFWyU@%zVhYD3LBB&J=Dg_0s za#QiLzz8XbV8UQxVoVrJ7#vw#SV)W`7C(^0}%;GXbHPO)7ea?kh`o|S}d`Jkhyk}%Z7wiRzv&S}uM~4fBHWcS z?#Ts`a*6v=N1w!bAiX@4G>>G8ewkxHK9Z8JJeD5}$`)zaVMvP@))JoRNuKIOM)WeH z+QgXl@Jxrv=nT(wo)`L=asAGOp4ntlx0%u$(bDHcQ!;1o8a^K3r@@ delta 376 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 Hd;I(_wvzZH literal 11835 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 Nl2@UboQwDP`4=6=7{~ws diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java index 2460641..b024530 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java @@ -84,24 +84,17 @@ public static class Instrucao { public Instrucao (String nome, int opcode) { - this (nome, 0, 0, opcode); + this (nome, 0, opcode); } - public Instrucao (String nome, int a, int opcode) { - - this(nome, a, 0, opcode); - - } - public Instrucao (String nome, int a, int b, int opcode) { + public Instrucao (String nome, int a, int opcode) { this.nome = nome; tipo1 = a; - - tipo2 = b; - + this.opcode = opcode; } @@ -163,8 +156,10 @@ public Instrucao (String nome, int a, int b, int opcode) { new Instrucao("astore_0", Definicao.ASTORE0), new Instrucao("astore_1", Definicao.ASTORE1), new Instrucao("astore_2", Definicao.ASTORE2), - new Instrucao("astore_3", Definicao.ASTORE3) - + new Instrucao("astore_3", Definicao.ASTORE3), + new Instrucao("getfield", Definicao.GETFIELD), + new Instrucao("putfield", Definicao.PUTFIELD), + new Instrucao("invokespecial", Definicao.INVOKESPECIAL) }; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens index d1b8cfc..8c3cbf5 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens @@ -58,6 +58,11 @@ T__72=72 T__73=73 T__74=74 T__75=75 +T__76=76 +T__77=77 +T__78=78 +T__79=79 +T__80=80 CLASSE=4 EXTENDS=5 FIELD_DECL=6 @@ -83,50 +88,55 @@ WS=15 'aload_1'=26 'aload_2'=27 'aload_3'=28 -'getfield'=29 -'goto'=30 -'iadd'=31 -'iand'=32 -'iconst_0'=33 -'iconst_1'=34 -'iconst_2'=35 -'iconst_3'=36 -'iconst_4'=37 -'iconst_5'=38 -'iconst_m1'=39 -'idiv'=40 -'if_icmpeq'=41 -'if_icmpge'=42 -'if_icmpgt'=43 -'if_icmple'=44 -'if_icmplt'=45 -'if_icmpne'=46 -'ifeq'=47 -'ifge'=48 -'ifgt'=49 -'ifle'=50 -'iflt'=51 -'ifne'=52 -'iinc'=53 -'iload'=54 -'iload_0'=55 -'iload_1'=56 -'iload_2'=57 -'iload_3'=58 -'imul'=59 -'ineg'=60 -'invokespecial'=61 -'ior'=62 -'irem'=63 -'istore'=64 -'istore_0'=65 -'istore_1'=66 -'istore_2'=67 -'istore_3'=68 -'isub'=69 -'ixor'=70 -'ldc'=71 -'nop'=72 -'pop'=73 -'pop2'=74 -'putfield'=75 +'astore'=29 +'astore_0'=30 +'astore_1'=31 +'astore_2'=32 +'astore_3'=33 +'getfield'=34 +'goto'=35 +'iadd'=36 +'iand'=37 +'iconst_0'=38 +'iconst_1'=39 +'iconst_2'=40 +'iconst_3'=41 +'iconst_4'=42 +'iconst_5'=43 +'iconst_m1'=44 +'idiv'=45 +'if_icmpeq'=46 +'if_icmpge'=47 +'if_icmpgt'=48 +'if_icmple'=49 +'if_icmplt'=50 +'if_icmpne'=51 +'ifeq'=52 +'ifge'=53 +'ifgt'=54 +'ifle'=55 +'iflt'=56 +'ifne'=57 +'iinc'=58 +'iload'=59 +'iload_0'=60 +'iload_1'=61 +'iload_2'=62 +'iload_3'=63 +'imul'=64 +'ineg'=65 +'invokespecial'=66 +'ior'=67 +'irem'=68 +'istore'=69 +'istore_0'=70 +'istore_1'=71 +'istore_2'=72 +'istore_3'=73 +'isub'=74 +'ixor'=75 +'ldc'=76 +'nop'=77 +'pop'=78 +'pop2'=79 +'putfield'=80 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index a8afce0..afd8684 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-27 22:05:46 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-28 11:58:07 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -70,6 +70,11 @@ public class AssemblerLexer extends Lexer { public static final int T__73=73; public static final int T__74=74; public static final int T__75=75; + public static final int T__76=76; + public static final int T__77=77; + public static final int T__78=78; + public static final int T__79=79; + public static final int T__80=80; public static final int CLASSE=4; public static final int EXTENDS=5; public static final int FIELD_DECL=6; @@ -396,10 +401,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'astore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'astore' { - match("getfield"); + match("astore"); @@ -419,10 +424,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'goto' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'astore_0' { - match("goto"); + match("astore_0"); @@ -442,10 +447,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'astore_1' { - match("iadd"); + match("astore_1"); @@ -465,10 +470,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'astore_2' { - match("iand"); + match("astore_2"); @@ -488,10 +493,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'astore_3' { - match("iconst_0"); + match("astore_3"); @@ -511,10 +516,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'getfield' { - match("iconst_1"); + match("getfield"); @@ -534,10 +539,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'goto' { - match("iconst_2"); + match("goto"); @@ -557,10 +562,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'iadd' { - match("iconst_3"); + match("iadd"); @@ -580,10 +585,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'iand' { - match("iconst_4"); + match("iand"); @@ -603,10 +608,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'iconst_0' { - match("iconst_5"); + match("iconst_0"); @@ -626,10 +631,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'iconst_1' { - match("iconst_m1"); + match("iconst_1"); @@ -649,10 +654,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'iconst_2' { - match("idiv"); + match("iconst_2"); @@ -672,10 +677,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'if_icmpeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'iconst_3' { - match("if_icmpeq"); + match("iconst_3"); @@ -695,10 +700,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'if_icmpge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iconst_4' { - match("if_icmpge"); + match("iconst_4"); @@ -718,10 +723,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'if_icmpgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iconst_5' { - match("if_icmpgt"); + match("iconst_5"); @@ -741,10 +746,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'if_icmple' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_m1' { - match("if_icmple"); + match("iconst_m1"); @@ -764,10 +769,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'if_icmplt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'idiv' { - match("if_icmplt"); + match("idiv"); @@ -787,10 +792,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'if_icmpne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'if_icmpeq' { - match("if_icmpne"); + match("if_icmpeq"); @@ -810,10 +815,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'ifeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'if_icmpge' { - match("ifeq"); + match("if_icmpge"); @@ -833,10 +838,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'ifge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'if_icmpgt' { - match("ifge"); + match("if_icmpgt"); @@ -856,10 +861,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'ifgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'if_icmple' { - match("ifgt"); + match("if_icmple"); @@ -879,10 +884,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'ifle' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'if_icmplt' { - match("ifle"); + match("if_icmplt"); @@ -902,10 +907,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iflt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'if_icmpne' { - match("iflt"); + match("if_icmpne"); @@ -925,10 +930,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'ifne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'ifeq' { - match("ifne"); + match("ifeq"); @@ -948,10 +953,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'ifge' { - match("iinc"); + match("ifge"); @@ -971,10 +976,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'ifgt' { - match("iload"); + match("ifgt"); @@ -994,10 +999,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'ifle' { - match("iload_0"); + match("ifle"); @@ -1017,10 +1022,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iflt' { - match("iload_1"); + match("iflt"); @@ -1040,10 +1045,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'ifne' { - match("iload_2"); + match("ifne"); @@ -1063,10 +1068,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'iinc' { - match("iload_3"); + match("iinc"); @@ -1086,10 +1091,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'iload' { - match("imul"); + match("iload"); @@ -1109,10 +1114,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'iload_0' { - match("ineg"); + match("iload_0"); @@ -1132,10 +1137,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'iload_1' { - match("invokespecial"); + match("iload_1"); @@ -1155,10 +1160,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iload_2' { - match("ior"); + match("iload_2"); @@ -1178,10 +1183,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iload_3' { - match("irem"); + match("iload_3"); @@ -1201,10 +1206,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'istore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'imul' { - match("istore"); + match("imul"); @@ -1224,10 +1229,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ineg' { - match("istore_0"); + match("ineg"); @@ -1247,10 +1252,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'invokespecial' { - match("istore_1"); + match("invokespecial"); @@ -1270,10 +1275,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ior' { - match("istore_2"); + match("ior"); @@ -1293,10 +1298,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'irem' { - match("istore_3"); + match("irem"); @@ -1316,10 +1321,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'istore' { - match("isub"); + match("istore"); @@ -1339,10 +1344,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'istore_0' { - match("ixor"); + match("istore_0"); @@ -1362,10 +1367,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ldc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'istore_1' { - match("ldc"); + match("istore_1"); @@ -1385,10 +1390,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'istore_2' { - match("nop"); + match("istore_2"); @@ -1408,10 +1413,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'istore_3' { - match("pop"); + match("istore_3"); @@ -1431,10 +1436,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'isub' { - match("pop2"); + match("isub"); @@ -1454,10 +1459,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'putfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'ixor' { - match("putfield"); + match("ixor"); @@ -1472,13 +1477,128 @@ public final void mT__75() throws RecognitionException { } // $ANTLR end "T__75" + // $ANTLR start "T__76" + public final void mT__76() throws RecognitionException { + try { + int _type = T__76; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'ldc' + { + match("ldc"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__76" + + // $ANTLR start "T__77" + public final void mT__77() throws RecognitionException { + try { + int _type = T__77; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'nop' + { + match("nop"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__77" + + // $ANTLR start "T__78" + public final void mT__78() throws RecognitionException { + try { + int _type = T__78; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'pop' + { + match("pop"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__78" + + // $ANTLR start "T__79" + public final void mT__79() throws RecognitionException { + try { + int _type = T__79; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'pop2' + { + match("pop2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__79" + + // $ANTLR start "T__80" + public final void mT__80() throws RecognitionException { + try { + int _type = T__80; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'putfield' + { + match("putfield"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__80" + // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: '' { match(""); @@ -1500,8 +1620,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:7: 'I' { match('I'); @@ -1521,8 +1641,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:8: 'V' { match('V'); @@ -1542,10 +1662,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1564,7 +1684,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:9: 'null' { match("null"); @@ -1573,7 +1693,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:18: 'NULL' { match("NULL"); @@ -1601,10 +1721,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1613,7 +1733,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:11: '-' { match('-'); @@ -1623,7 +1743,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1678,8 +1798,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1691,7 +1811,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1741,8 +1861,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: '\\n' { match('\n'); @@ -1762,8 +1882,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -1789,8 +1909,8 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) - int alt5=68; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + int alt5=73; alt5 = dfa5.predict(input); switch (alt5) { case 1 : @@ -2274,63 +2394,103 @@ public void mTokens() throws RecognitionException { } break; case 61 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: INIT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__76 { - mINIT(); + mT__76(); } break; case 62 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:375: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__77 { - mINT(); + mT__77(); } break; case 63 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:379: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__78 { - mVOID(); + mT__78(); } break; case 64 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:384: NULL + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__79 { - mNULL(); + mT__79(); } break; case 65 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:389: INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__80 { - mINTEIRO(); + mT__80(); } break; case 66 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:397: ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: INIT { - mID(); + mINIT(); } break; case 67 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:405: INT { - mNOVA_LINHA(); + mINT(); } break; case 68 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:411: WS + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:409: VOID + { + mVOID(); + + + } + break; + case 69 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:414: NULL + { + mNULL(); + + + } + break; + case 70 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:419: INTEIRO + { + mINTEIRO(); + + + } + break; + case 71 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:427: ID + { + mID(); + + + } + break; + case 72 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: NOVA_LINHA + { + mNOVA_LINHA(); + + + } + break; + case 73 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:441: WS { mWS(); @@ -2345,57 +2505,58 @@ public void mTokens() throws RecognitionException { protected DFA5 dfa5 = new DFA5(this); static final String DFA5_eotS = - "\5\uffff\1\30\6\21\1\uffff\1\55\1\56\1\21\11\uffff\24\21\2\uffff"+ - "\10\21\1\uffff\11\21\1\137\4\21\1\144\1\145\1\21\1\150\4\21\1\155"+ - "\1\156\1\157\1\21\1\161\1\uffff\1\163\1\164\1\165\1\166\1\167\1"+ - "\170\1\171\1\21\1\173\1\174\1\21\1\uffff\1\176\1\21\1\u0080\1\u0081"+ - "\2\uffff\1\u0082\1\u0083\1\uffff\1\21\1\u0082\1\u0086\1\21\3\uffff"+ - "\1\21\11\uffff\1\u008b\2\uffff\1\21\1\uffff\1\21\4\uffff\1\21\2"+ - "\uffff\2\21\3\uffff\1\21\1\u009c\1\21\4\uffff\1\21\6\uffff\1\21"+ - "\2\uffff\1\21\1\u00b0\13\uffff\1\21\4\uffff\1\u00b6\5\uffff\1\21"+ - "\1\uffff\3\21\1\u00bb\1\uffff"; + "\5\uffff\1\30\6\21\1\uffff\1\56\1\57\1\21\11\uffff\25\21\2\uffff"+ + "\11\21\1\uffff\11\21\1\142\4\21\1\147\1\150\1\21\1\153\5\21\1\161"+ + "\1\162\1\163\1\21\1\165\1\uffff\1\167\1\170\1\171\1\172\1\173\1"+ + "\174\1\175\1\21\1\177\1\u0080\1\21\1\uffff\1\u0082\1\21\1\u0084"+ + "\1\u0085\2\uffff\1\u0086\1\u0087\1\uffff\1\21\1\u0086\1\u008a\2"+ + "\21\3\uffff\1\21\11\uffff\1\u0090\2\uffff\1\21\1\uffff\1\21\4\uffff"+ + "\1\21\2\uffff\1\u0099\2\21\3\uffff\1\21\1\u00a3\1\21\6\uffff\1\21"+ + "\6\uffff\1\21\2\uffff\1\21\4\uffff\1\u00bb\13\uffff\1\21\4\uffff"+ + "\1\u00c1\5\uffff\1\21\1\uffff\3\21\1\u00c6\1\uffff"; static final String DFA5_eofS = - "\u00bc\uffff"; + "\u00c7\uffff"; static final String DFA5_minS = "\1\11\1\uffff\1\143\2\uffff\1\56\1\154\1\145\1\141\1\144\2\157\1"+ - "\uffff\2\56\1\125\11\uffff\1\157\2\164\1\144\1\157\1\151\1\137\1"+ + "\uffff\2\56\1\125\11\uffff\1\157\3\164\1\144\1\157\1\151\1\137\1"+ "\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\160\1\154"+ - "\1\160\1\164\2\uffff\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1"+ - "\151\1\161\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157"+ - "\1\142\1\162\2\56\1\154\1\56\1\146\1\114\1\144\1\151\3\56\1\163"+ - "\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff\1\56\1\162\2\56\2\uffff"+ - "\2\56\1\uffff\1\151\2\56\1\145\3\uffff\1\164\1\uffff\1\155\7\uffff"+ - "\1\56\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1\60\1\uffff\1\154"+ - "\1\137\1\160\1\60\1\uffff\1\163\1\56\1\154\4\uffff\1\144\1\60\1"+ - "\145\4\uffff\1\160\1\60\1\uffff\1\144\1\56\10\uffff\2\145\1\uffff"+ - "\1\145\4\uffff\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56"+ - "\1\uffff"; + "\1\160\1\164\2\uffff\1\114\1\141\1\157\1\146\1\157\2\144\1\156\1"+ + "\166\1\151\1\161\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155"+ + "\1\157\1\142\1\162\2\56\1\154\1\56\1\146\1\114\1\144\1\162\1\151"+ + "\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff\1\56\1\162"+ + "\2\56\2\uffff\2\56\1\uffff\1\151\2\56\2\145\3\uffff\1\164\1\uffff"+ + "\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1"+ + "\60\1\uffff\1\56\1\154\1\137\1\160\1\60\1\uffff\1\163\1\56\1\154"+ + "\4\uffff\1\60\1\uffff\1\144\1\60\1\145\4\uffff\1\160\1\60\1\uffff"+ + "\1\144\4\uffff\1\56\10\uffff\2\145\1\uffff\1\145\4\uffff\1\56\5"+ + "\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56\1\uffff"; static final String DFA5_maxS = - "\1\172\1\uffff\1\163\2\uffff\1\172\1\154\1\157\1\170\1\144\2\165"+ - "\1\uffff\2\172\1\125\11\uffff\1\157\2\164\1\156\1\157\1\151\2\156"+ + "\1\172\1\uffff\1\163\2\uffff\1\172\1\163\1\157\1\170\1\144\2\165"+ + "\1\uffff\2\172\1\125\11\uffff\1\157\3\164\1\156\1\157\1\151\2\156"+ "\1\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143\1\160\1\154\1\160"+ - "\1\164\2\uffff\1\114\1\141\1\146\1\157\2\144\1\156\1\166\1\151\1"+ - "\161\2\164\1\145\1\143\1\141\1\154\1\147\1\157\1\172\1\155\1\157"+ - "\1\142\1\162\2\172\1\154\1\172\1\146\1\114\1\144\1\151\3\172\1\163"+ - "\1\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1\172\1\162\2\172\2"+ - "\uffff\2\172\1\uffff\1\151\2\172\1\145\3\uffff\1\164\1\uffff\1\155"+ - "\7\uffff\1\172\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1\63\1"+ - "\uffff\1\154\1\137\1\160\1\63\1\uffff\1\163\1\172\1\154\4\uffff"+ - "\1\144\1\155\1\156\4\uffff\1\160\1\63\1\uffff\1\144\1\172\10\uffff"+ - "\2\164\1\uffff\1\145\4\uffff\1\172\5\uffff\1\143\1\uffff\1\151\1"+ - "\141\1\154\1\172\1\uffff"; + "\1\164\2\uffff\1\114\1\141\1\157\1\146\1\157\2\144\1\156\1\166\1"+ + "\151\1\161\2\164\1\145\1\143\1\141\1\154\1\147\1\157\1\172\1\155"+ + "\1\157\1\142\1\162\2\172\1\154\1\172\1\146\1\114\1\144\1\162\1\151"+ + "\3\172\1\163\1\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1\172\1"+ + "\162\2\172\2\uffff\2\172\1\uffff\1\151\2\172\2\145\3\uffff\1\164"+ + "\1\uffff\1\155\7\uffff\1\172\2\uffff\1\145\1\uffff\1\145\4\uffff"+ + "\1\145\1\63\1\uffff\1\172\1\154\1\137\1\160\1\63\1\uffff\1\163\1"+ + "\172\1\154\4\uffff\1\63\1\uffff\1\144\1\155\1\156\4\uffff\1\160"+ + "\1\63\1\uffff\1\144\4\uffff\1\172\10\uffff\2\164\1\uffff\1\145\4"+ + "\uffff\1\172\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; static final String DFA5_acceptS = - "\1\uffff\1\1\1\uffff\1\6\1\7\7\uffff\1\75\3\uffff\1\101\1\102\1"+ - "\103\1\104\1\2\1\3\1\4\1\5\1\10\24\uffff\1\76\1\77\60\uffff\1\57"+ - "\4\uffff\1\70\1\71\2\uffff\1\72\4\uffff\1\17\1\20\1\21\1\uffff\1"+ - "\31\1\uffff\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\uffff\1\54\1\55"+ - "\1\uffff\1\60\1\uffff\1\66\1\67\1\100\1\73\2\uffff\1\11\4\uffff"+ - "\1\47\3\uffff\1\12\1\13\1\14\1\15\3\uffff\1\50\1\51\1\52\1\53\2"+ - "\uffff\1\61\2\uffff\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\32\2\uffff"+ - "\1\37\1\uffff\1\62\1\63\1\64\1\65\1\uffff\1\16\1\33\1\34\1\35\1"+ - "\36\1\uffff\1\74\4\uffff\1\56"; + "\1\uffff\1\1\1\uffff\1\6\1\7\7\uffff\1\102\3\uffff\1\106\1\107\1"+ + "\110\1\111\1\2\1\3\1\4\1\5\1\10\25\uffff\1\103\1\104\62\uffff\1"+ + "\64\4\uffff\1\75\1\76\2\uffff\1\77\5\uffff\1\24\1\25\1\26\1\uffff"+ + "\1\36\1\uffff\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\uffff\1\61\1"+ + "\62\1\uffff\1\65\1\uffff\1\73\1\74\1\105\1\100\2\uffff\1\11\5\uffff"+ + "\1\54\3\uffff\1\12\1\13\1\14\1\15\1\uffff\1\16\3\uffff\1\55\1\56"+ + "\1\57\1\60\2\uffff\1\66\1\uffff\1\17\1\20\1\21\1\22\1\uffff\1\27"+ + "\1\30\1\31\1\32\1\33\1\34\1\35\1\37\2\uffff\1\44\1\uffff\1\67\1"+ + "\70\1\71\1\72\1\uffff\1\23\1\40\1\41\1\42\1\43\1\uffff\1\101\4\uffff"+ + "\1\63"; static final String DFA5_specialS = - "\u00bc\uffff}>"; + "\u00c7\uffff}>"; static final String[] DFA5_transitionS = { "\1\23\1\22\2\uffff\1\23\22\uffff\1\23\7\uffff\1\1\4\uffff\1"+ "\20\1\2\1\3\12\20\1\4\1\uffff\1\14\4\uffff\10\21\1\15\2\21\1"+ @@ -2406,17 +2567,17 @@ public void mTokens() throws RecognitionException { "", "", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\31", - "\1\32\11\uffff\1\33", - "\1\34\1\uffff\1\35\1\36\1\uffff\1\37\2\uffff\1\40\2\uffff\1"+ - "\41\1\42\1\43\1\44\2\uffff\1\45\1\46\4\uffff\1\47", - "\1\50", - "\1\51\5\uffff\1\52", - "\1\53\5\uffff\1\54", + "\1\31\6\uffff\1\32", + "\1\33\11\uffff\1\34", + "\1\35\1\uffff\1\36\1\37\1\uffff\1\40\2\uffff\1\41\2\uffff\1"+ + "\42\1\43\1\44\1\45\2\uffff\1\46\1\47\4\uffff\1\50", + "\1\51", + "\1\52\5\uffff\1\53", + "\1\54\5\uffff\1\55", "", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\57", + "\1\60", "", "", "", @@ -2426,30 +2587,29 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\60", "\1\61", "\1\62", - "\1\63\11\uffff\1\64", - "\1\65", - "\1\66", - "\1\67\5\uffff\1\70\1\uffff\1\71\4\uffff\1\72\1\uffff\1\73", - "\1\74", - "\1\75", + "\1\63", + "\1\64", + "\1\65\11\uffff\1\66", + "\1\67", + "\1\70", + "\1\71\5\uffff\1\72\1\uffff\1\73\4\uffff\1\74\1\uffff\1\75", "\1\76", - "\1\77\20\uffff\1\100", - "\1\101", - "\1\102", - "\1\103\1\104", - "\1\105", - "\1\106", + "\1\77", + "\1\100", + "\1\101\20\uffff\1\102", + "\1\103", + "\1\104", + "\1\105\1\106", "\1\107", "\1\110", "\1\111", "\1\112", - "", - "", "\1\113", "\1\114", + "", + "", "\1\115", "\1\116", "\1\117", @@ -2458,33 +2618,37 @@ public void mTokens() throws RecognitionException { "\1\122", "\1\123", "\1\124", - "\1\125\16\uffff\1\126", - "\1\127\16\uffff\1\130", - "\1\131", - "\1\132", - "\1\133", + "\1\125", + "\1\126", + "\1\127", + "\1\130\16\uffff\1\131", + "\1\132\16\uffff\1\133", "\1\134", "\1\135", "\1\136", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\137", "\1\140", "\1\141", - "\1\142", + "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\143", + "\1\144", + "\1\145", + "\1\146", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\146", - "\1\21\1\uffff\2\21\1\147\7\21\7\uffff\32\21\6\uffff\32\21", "\1\151", - "\1\152", - "\1\153", + "\1\21\1\uffff\2\21\1\152\7\21\7\uffff\32\21\6\uffff\32\21", "\1\154", + "\1\155", + "\1\156", + "\1\157", + "\1\160", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\160", + "\1\164", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\162", + "\1\166", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", @@ -2492,13 +2656,13 @@ public void mTokens() throws RecognitionException { "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\172", + "\1\176", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\175", + "\1\u0081", "", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\177", + "\1\u0083", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", @@ -2506,17 +2670,18 @@ public void mTokens() throws RecognitionException { "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", - "\1\u0084", + "\1\u0088", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u0085\1\uffff\32"+ + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u0089\1\uffff\32"+ "\21", - "\1\u0087", + "\1\u008b", + "\1\u008c", "", "", "", - "\1\u0088", + "\1\u008d", "", - "\1\u0089", + "\1\u008e", "", "", "", @@ -2524,45 +2689,53 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u008a\1\uffff\32"+ + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u008f\1\uffff\32"+ "\21", "", "", - "\1\u008c", - "", - "\1\u008d", + "\1\u0091", "", + "\1\u0092", "", "", "", - "\1\u008e", - "\1\u008f\1\u0090\1\u0091\1\u0092", "", "\1\u0093", - "\1\u0094", - "\1\u0095", - "\1\u0096\1\u0097\1\u0098\1\u0099", + "\1\u0094\1\u0095\1\u0096\1\u0097", "", + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u0098\1\uffff\32"+ + "\21", "\1\u009a", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u009b\1\uffff\32"+ + "\1\u009b", + "\1\u009c", + "\1\u009d\1\u009e\1\u009f\1\u00a0", + "", + "\1\u00a1", + "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u00a2\1\uffff\32"+ "\21", - "\1\u009d", + "\1\u00a4", "", "", "", "", - "\1\u009e", - "\1\u009f\1\u00a0\1\u00a1\1\u00a2\1\u00a3\1\u00a4\67\uffff\1"+ - "\u00a5", - "\1\u00a6\1\uffff\1\u00a7\4\uffff\1\u00a8\1\uffff\1\u00a9", + "\1\u00a5\1\u00a6\1\u00a7\1\u00a8", "", + "\1\u00a9", + "\1\u00aa\1\u00ab\1\u00ac\1\u00ad\1\u00ae\1\u00af\67\uffff\1"+ + "\u00b0", + "\1\u00b1\1\uffff\1\u00b2\4\uffff\1\u00b3\1\uffff\1\u00b4", + "", + "", + "", + "", + "\1\u00b5", + "\1\u00b6\1\u00b7\1\u00b8\1\u00b9", + "", + "\1\u00ba", "", "", "", - "\1\u00aa", - "\1\u00ab\1\u00ac\1\u00ad\1\u00ae", "", - "\1\u00af", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", "", @@ -2572,10 +2745,10 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00b1\16\uffff\1\u00b2", - "\1\u00b3\16\uffff\1\u00b4", + "\1\u00bc\16\uffff\1\u00bd", + "\1\u00be\16\uffff\1\u00bf", "", - "\1\u00b5", + "\1\u00c0", "", "", "", @@ -2586,11 +2759,11 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00b7", + "\1\u00c2", "", - "\1\u00b8", - "\1\u00b9", - "\1\u00ba", + "\1\u00c3", + "\1\u00c4", + "\1\u00c5", "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "" }; @@ -2625,7 +2798,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index 201b74a..076c749 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,7 +1,8 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-27 22:05:45 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-28 11:58:06 package br.ufpb.iged.interpretador.bytecodeassembler.parser; + import org.antlr.runtime.*; import java.util.Stack; import java.util.List; @@ -17,7 +18,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; @@ -81,6 +82,11 @@ public abstract class AssemblerParser extends Parser { public static final int T__73=73; public static final int T__74=74; public static final int T__75=75; + public static final int T__76=76; + public static final int T__77=77; + public static final int T__78=78; + public static final int T__79=79; + public static final int T__80=80; public static final int CLASSE=4; public static final int EXTENDS=5; public static final int FIELD_DECL=6; @@ -137,7 +143,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:1: programa : ( comando )* ; public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -150,28 +156,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:12: ( comando )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==17||LA1_0==19||(LA1_0 >= 24 && LA1_0 <= 75)) ) { + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==17||LA1_0==19||(LA1_0 >= 24 && LA1_0 <= 80)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:12: comando { - pushFollow(FOLLOW_comando_in_programa64); + pushFollow(FOLLOW_comando_in_programa69); comando1=comando(); state._fsp--; @@ -218,7 +224,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:1: comando : ( label instrucao | instrucao ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:1: comando : ( label instrucao | instrucao ) ; public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -235,20 +241,20 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==ID) ) { alt2=1; } - else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 75)) ) { + else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80)) ) { alt2=2; } else { @@ -260,16 +266,16 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 75) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:12: label instrucao { - pushFollow(FOLLOW_label_in_comando84); + pushFollow(FOLLOW_label_in_comando89); label2=label(); state._fsp--; adaptor.addChild(root_0, label2.getTree()); - pushFollow(FOLLOW_instrucao_in_comando86); + pushFollow(FOLLOW_instrucao_in_comando91); instrucao3=instrucao(); state._fsp--; @@ -279,9 +285,9 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 75) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:30: instrucao { - pushFollow(FOLLOW_instrucao_in_comando90); + pushFollow(FOLLOW_instrucao_in_comando95); instrucao4=instrucao(); state._fsp--; @@ -325,7 +331,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:1: label : a= ID ':' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:1: label : a= ID ':' ; public final AssemblerParser.label_return label() throws RecognitionException, LabelException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -340,20 +346,20 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: a= ID ':' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,ID,FOLLOW_ID_in_label112); + a=(Token)match(input,ID,FOLLOW_ID_in_label117); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - char_literal5=(Token)match(input,22,FOLLOW_22_in_label114); + char_literal5=(Token)match(input,22,FOLLOW_22_in_label119); char_literal5_tree = (BytecodesAST)adaptor.create(char_literal5) ; @@ -393,7 +399,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -424,13 +430,13 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? int alt3=11; switch ( input.LA(1) ) { case 17: @@ -439,20 +445,20 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce alt3=1; } break; - case 29: - case 61: - case 75: + case 34: + case 66: + case 80: { alt3=2; } break; - case 31: - case 40: - case 53: - case 59: - case 60: - case 63: - case 69: + case 36: + case 45: + case 58: + case 64: + case 65: + case 68: + case 74: { alt3=3; } @@ -462,38 +468,38 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce case 26: case 27: case 28: - case 33: - case 34: - case 35: - case 36: - case 37: case 38: case 39: - case 54: - case 55: - case 56: - case 57: - case 58: - case 71: + case 40: + case 41: + case 42: + case 43: + case 44: + case 59: + case 60: + case 61: + case 62: + case 63: + case 76: { alt3=4; } break; - case 64: - case 65: - case 66: - case 67: - case 68: + case 29: + case 30: + case 31: + case 32: + case 33: + case 69: + case 70: + case 71: + case 72: + case 73: { alt3=5; } break; - case 30: - case 41: - case 42: - case 43: - case 44: - case 45: + case 35: case 46: case 47: case 48: @@ -501,28 +507,33 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce case 50: case 51: case 52: + case 53: + case 54: + case 55: + case 56: + case 57: { alt3=6; } break; - case 32: - case 62: - case 70: + case 37: + case 67: + case 75: { alt3=7; } break; - case 72: + case 77: { alt3=8; } break; - case 73: + case 78: { alt3=9; } break; - case 74: + case 79: { alt3=10; } @@ -531,9 +542,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:13: definicaoClasse { - pushFollow(FOLLOW_definicaoClasse_in_instrucao124); + pushFollow(FOLLOW_definicaoClasse_in_instrucao129); definicaoClasse6=definicaoClasse(); state._fsp--; @@ -543,9 +554,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:31: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao128); + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao133); manipulacaoObjetos7=manipulacaoObjetos(); state._fsp--; @@ -555,9 +566,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:52: aritmetica { - pushFollow(FOLLOW_aritmetica_in_instrucao132); + pushFollow(FOLLOW_aritmetica_in_instrucao137); aritmetica8=aritmetica(); state._fsp--; @@ -567,9 +578,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:65: load { - pushFollow(FOLLOW_load_in_instrucao136); + pushFollow(FOLLOW_load_in_instrucao141); load9=load(); state._fsp--; @@ -579,9 +590,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:72: store { - pushFollow(FOLLOW_store_in_instrucao140); + pushFollow(FOLLOW_store_in_instrucao145); store10=store(); state._fsp--; @@ -591,9 +602,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:80: desvio { - pushFollow(FOLLOW_desvio_in_instrucao144); + pushFollow(FOLLOW_desvio_in_instrucao149); desvio11=desvio(); state._fsp--; @@ -603,9 +614,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:89: logica { - pushFollow(FOLLOW_logica_in_instrucao148); + pushFollow(FOLLOW_logica_in_instrucao153); logica12=logica(); state._fsp--; @@ -615,9 +626,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:21: 'nop' { - string_literal13=(Token)match(input,72,FOLLOW_72_in_instrucao171); + string_literal13=(Token)match(input,77,FOLLOW_77_in_instrucao176); string_literal13_tree = (BytecodesAST)adaptor.create(string_literal13) ; @@ -627,9 +638,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:17: a= 'pop' { - a=(Token)match(input,73,FOLLOW_73_in_instrucao193); + a=(Token)match(input,78,FOLLOW_78_in_instrucao198); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -641,9 +652,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:17: a= 'pop2' { - a=(Token)match(input,74,FOLLOW_74_in_instrucao217); + a=(Token)match(input,79,FOLLOW_79_in_instrucao222); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -658,7 +669,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } - NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao237); + NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao242); NOVA_LINHA14_tree = (BytecodesAST)adaptor.create(NOVA_LINHA14) ; @@ -696,7 +707,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -708,24 +719,28 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec Token ID16=null; Token NOVA_LINHA17=null; Token string_literal20=null; + Token INIT21=null; + Token string_literal22=null; + Token VOID23=null; AssemblerParser.superClasse_return superClasse18 =null; AssemblerParser.membroClasse_return membroClasse19 =null; - AssemblerParser.construtorDefault_return construtorDefault21 =null; - BytecodesAST string_literal15_tree=null; BytecodesAST ID16_tree=null; BytecodesAST NOVA_LINHA17_tree=null; BytecodesAST string_literal20_tree=null; + BytecodesAST INIT21_tree=null; + BytecodesAST string_literal22_tree=null; + BytecodesAST VOID23_tree=null; RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' construtorDefault ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) int alt6=2; int LA6_0 = input.LA(1); @@ -744,21 +759,21 @@ else if ( (LA6_0==19) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { - string_literal15=(Token)match(input,17,FOLLOW_17_in_definicaoClasse259); + string_literal15=(Token)match(input,17,FOLLOW_17_in_definicaoClasse264); stream_17.add(string_literal15); - ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse261); + ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse266); stream_ID.add(ID16); - NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse263); + NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse268); stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); @@ -767,9 +782,9 @@ else if ( (LA6_0==19) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:42: superClasse { - pushFollow(FOLLOW_superClasse_in_definicaoClasse265); + pushFollow(FOLLOW_superClasse_in_definicaoClasse270); superClasse18=superClasse(); state._fsp--; @@ -782,7 +797,7 @@ else if ( (LA6_0==19) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:55: ( membroClasse )+ int cnt5=0; loop5: do { @@ -796,9 +811,9 @@ else if ( (LA6_0==19) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:55: membroClasse { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse268); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse273); membroClasse19=membroClasse(); state._fsp--; @@ -819,7 +834,7 @@ else if ( (LA6_0==19) ) { // AST REWRITE - // elements: superClasse, membroClasse, ID + // elements: ID, membroClasse, superClasse // token labels: // rule labels: retval // token list labels: @@ -829,9 +844,9 @@ else if ( (LA6_0==19) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 39:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 43:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -842,14 +857,14 @@ else if ( (LA6_0==19) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:34: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:34: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -879,24 +894,38 @@ else if ( (LA6_0==19) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:19: '.method' construtorDefault + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:19: '.method' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal20=(Token)match(input,19,FOLLOW_19_in_definicaoClasse327); + string_literal20=(Token)match(input,19,FOLLOW_19_in_definicaoClasse332); string_literal20_tree = (BytecodesAST)adaptor.create(string_literal20) ; adaptor.addChild(root_0, string_literal20_tree); - pushFollow(FOLLOW_construtorDefault_in_definicaoClasse329); - construtorDefault21=construtorDefault(); + INIT21=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse334); + INIT21_tree = + (BytecodesAST)adaptor.create(INIT21) + ; + adaptor.addChild(root_0, INIT21_tree); - state._fsp--; - adaptor.addChild(root_0, construtorDefault21.getTree()); + string_literal22=(Token)match(input,16,FOLLOW_16_in_definicaoClasse336); + string_literal22_tree = + (BytecodesAST)adaptor.create(string_literal22) + ; + adaptor.addChild(root_0, string_literal22_tree); + + + VOID23=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse338); + VOID23_tree = + (BytecodesAST)adaptor.create(VOID23) + ; + adaptor.addChild(root_0, VOID23_tree); + } break; @@ -931,7 +960,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -939,24 +968,24 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST root_0 = null; - Token string_literal22=null; - Token ID23=null; + Token string_literal24=null; + Token ID25=null; - BytecodesAST string_literal22_tree=null; - BytecodesAST ID23_tree=null; + BytecodesAST string_literal24_tree=null; + BytecodesAST ID25_tree=null; RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:15: '.super' ID { - string_literal22=(Token)match(input,20,FOLLOW_20_in_superClasse370); - stream_20.add(string_literal22); + string_literal24=(Token)match(input,20,FOLLOW_20_in_superClasse379); + stream_20.add(string_literal24); - ID23=(Token)match(input,ID,FOLLOW_ID_in_superClasse372); - stream_ID.add(ID23); + ID25=(Token)match(input,ID,FOLLOW_ID_in_superClasse381); + stream_ID.add(ID25); // AST REWRITE @@ -970,9 +999,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 43:27: -> ^( EXTENDS ID ) + // 47:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1022,7 +1051,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1030,34 +1059,34 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST root_0 = null; - Token string_literal24=null; - Token ID25=null; - AssemblerParser.tipo_return tipo26 =null; + Token string_literal26=null; + Token ID27=null; + AssemblerParser.tipo_return tipo28 =null; - BytecodesAST string_literal24_tree=null; - BytecodesAST ID25_tree=null; + BytecodesAST string_literal26_tree=null; + BytecodesAST ID27_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_18=new RewriteRuleTokenStream(adaptor,"token 18"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:16: '.field' ID tipo { - string_literal24=(Token)match(input,18,FOLLOW_18_in_membroClasse389); - stream_18.add(string_literal24); + string_literal26=(Token)match(input,18,FOLLOW_18_in_membroClasse398); + stream_18.add(string_literal26); - ID25=(Token)match(input,ID,FOLLOW_ID_in_membroClasse391); - stream_ID.add(ID25); + ID27=(Token)match(input,ID,FOLLOW_ID_in_membroClasse400); + stream_ID.add(ID27); - pushFollow(FOLLOW_tipo_in_membroClasse393); - tipo26=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse402); + tipo28=tipo(); state._fsp--; - stream_tipo.add(tipo26.getTree()); + stream_tipo.add(tipo28.getTree()); // AST REWRITE // elements: ID, tipo @@ -1070,9 +1099,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 45:33: -> ^( FIELD_DECL ID tipo ) + // 49:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1124,7 +1153,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: manipulacaoObjetos : ( 'getfield' campo tipo | 'putfield' campo tipo | 'invokespecial' construtorDefault VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: manipulacaoObjetos : ( 'getfield' a= campo tipo | 'putfield' a= campo tipo | 'invokespecial' b= construtorDefault VOID ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1132,41 +1161,39 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; - Token string_literal27=null; - Token string_literal30=null; + Token string_literal29=null; + Token string_literal31=null; Token string_literal33=null; - Token VOID35=null; - AssemblerParser.campo_return campo28 =null; + Token VOID34=null; + AssemblerParser.campo_return a =null; - AssemblerParser.tipo_return tipo29 =null; + AssemblerParser.construtorDefault_return b =null; - AssemblerParser.campo_return campo31 =null; + AssemblerParser.tipo_return tipo30 =null; AssemblerParser.tipo_return tipo32 =null; - AssemblerParser.construtorDefault_return construtorDefault34 =null; - - BytecodesAST string_literal27_tree=null; - BytecodesAST string_literal30_tree=null; + BytecodesAST string_literal29_tree=null; + BytecodesAST string_literal31_tree=null; BytecodesAST string_literal33_tree=null; - BytecodesAST VOID35_tree=null; + BytecodesAST VOID34_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:20: ( 'getfield' campo tipo | 'putfield' campo tipo | 'invokespecial' construtorDefault VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:20: ( 'getfield' a= campo tipo | 'putfield' a= campo tipo | 'invokespecial' b= construtorDefault VOID ) int alt7=3; switch ( input.LA(1) ) { - case 29: + case 34: { alt7=1; } break; - case 75: + case 80: { alt7=2; } break; - case 61: + case 66: { alt7=3; } @@ -1181,55 +1208,55 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:22: 'getfield' campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:22: 'getfield' a= campo tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal27=(Token)match(input,29,FOLLOW_29_in_manipulacaoObjetos412); - string_literal27_tree = - (BytecodesAST)adaptor.create(string_literal27) + string_literal29=(Token)match(input,34,FOLLOW_34_in_manipulacaoObjetos421); + string_literal29_tree = + (BytecodesAST)adaptor.create(string_literal29) ; - adaptor.addChild(root_0, string_literal27_tree); + adaptor.addChild(root_0, string_literal29_tree); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos414); - campo28=campo(); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos427); + a=campo(); state._fsp--; - adaptor.addChild(root_0, campo28.getTree()); + adaptor.addChild(root_0, a.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos416); - tipo29=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos429); + tipo30=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo29.getTree()); + adaptor.addChild(root_0, tipo30.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:22: 'putfield' campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:22: 'putfield' a= campo tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal30=(Token)match(input,75,FOLLOW_75_in_manipulacaoObjetos439); - string_literal30_tree = - (BytecodesAST)adaptor.create(string_literal30) + string_literal31=(Token)match(input,80,FOLLOW_80_in_manipulacaoObjetos452); + string_literal31_tree = + (BytecodesAST)adaptor.create(string_literal31) ; - adaptor.addChild(root_0, string_literal30_tree); + adaptor.addChild(root_0, string_literal31_tree); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos441); - campo31=campo(); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos458); + a=campo(); state._fsp--; - adaptor.addChild(root_0, campo31.getTree()); + adaptor.addChild(root_0, a.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos443); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos460); tipo32=tipo(); state._fsp--; @@ -1239,30 +1266,30 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:22: 'invokespecial' construtorDefault VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:22: 'invokespecial' b= construtorDefault VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal33=(Token)match(input,61,FOLLOW_61_in_manipulacaoObjetos466); + string_literal33=(Token)match(input,66,FOLLOW_66_in_manipulacaoObjetos483); string_literal33_tree = (BytecodesAST)adaptor.create(string_literal33) ; adaptor.addChild(root_0, string_literal33_tree); - pushFollow(FOLLOW_construtorDefault_in_manipulacaoObjetos468); - construtorDefault34=construtorDefault(); + pushFollow(FOLLOW_construtorDefault_in_manipulacaoObjetos489); + b=construtorDefault(); state._fsp--; - adaptor.addChild(root_0, construtorDefault34.getTree()); + adaptor.addChild(root_0, b.getTree()); - VOID35=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos470); - VOID35_tree = - (BytecodesAST)adaptor.create(VOID35) + VOID34=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos491); + VOID34_tree = + (BytecodesAST)adaptor.create(VOID34) ; - adaptor.addChild(root_0, VOID35_tree); + adaptor.addChild(root_0, VOID34_tree); } @@ -1298,7 +1325,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1306,16 +1333,16 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT36=null; - Token VOID37=null; - AssemblerParser.tipoRef_return tipoRef38 =null; + Token INT35=null; + Token VOID36=null; + AssemblerParser.tipoRef_return tipoRef37 =null; - BytecodesAST INT36_tree=null; - BytecodesAST VOID37_tree=null; + BytecodesAST INT35_tree=null; + BytecodesAST VOID36_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1343,47 +1370,47 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT36=(Token)match(input,INT,FOLLOW_INT_in_tipo501); - INT36_tree = - (BytecodesAST)adaptor.create(INT36) + INT35=(Token)match(input,INT,FOLLOW_INT_in_tipo522); + INT35_tree = + (BytecodesAST)adaptor.create(INT35) ; - adaptor.addChild(root_0, INT36_tree); + adaptor.addChild(root_0, INT35_tree); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID37=(Token)match(input,VOID,FOLLOW_VOID_in_tipo505); - VOID37_tree = - (BytecodesAST)adaptor.create(VOID37) + VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_tipo526); + VOID36_tree = + (BytecodesAST)adaptor.create(VOID36) ; - adaptor.addChild(root_0, VOID37_tree); + adaptor.addChild(root_0, VOID36_tree); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo509); - tipoRef38=tipoRef(); + pushFollow(FOLLOW_tipoRef_in_tipo530); + tipoRef37=tipoRef(); state._fsp--; - adaptor.addChild(root_0, tipoRef38.getTree()); + adaptor.addChild(root_0, tipoRef37.getTree()); } break; @@ -1418,7 +1445,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1431,40 +1458,40 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { - case 31: + case 36: { alt9=1; } break; - case 69: + case 74: { alt9=2; } break; - case 59: + case 64: { alt9=3; } break; - case 40: + case 45: { alt9=4; } break; - case 63: + case 68: { alt9=5; } break; - case 53: + case 58: { alt9=6; } break; - case 60: + case 65: { alt9=7; } @@ -1479,12 +1506,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_aritmetica522); + a=(Token)match(input,36,FOLLOW_36_in_aritmetica543); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1496,12 +1523,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,69,FOLLOW_69_in_aritmetica543); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica564); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1513,12 +1540,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_aritmetica564); + a=(Token)match(input,64,FOLLOW_64_in_aritmetica585); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1530,12 +1557,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_aritmetica585); + a=(Token)match(input,45,FOLLOW_45_in_aritmetica606); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1547,12 +1574,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_aritmetica606); + a=(Token)match(input,68,FOLLOW_68_in_aritmetica627); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1564,12 +1591,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_aritmetica627); + a=(Token)match(input,58,FOLLOW_58_in_aritmetica648); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1581,12 +1608,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,60,FOLLOW_60_in_aritmetica648); + a=(Token)match(input,65,FOLLOW_65_in_aritmetica669); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1628,7 +1655,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1637,90 +1664,80 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST root_0 = null; Token a=null; + Token INTEIRO38=null; Token INTEIRO39=null; Token INTEIRO40=null; - Token string_literal41=null; - Token INTEIRO42=null; - Token string_literal43=null; - Token string_literal44=null; - Token string_literal45=null; - Token string_literal46=null; BytecodesAST a_tree=null; + BytecodesAST INTEIRO38_tree=null; BytecodesAST INTEIRO39_tree=null; BytecodesAST INTEIRO40_tree=null; - BytecodesAST string_literal41_tree=null; - BytecodesAST INTEIRO42_tree=null; - BytecodesAST string_literal43_tree=null; - BytecodesAST string_literal44_tree=null; - BytecodesAST string_literal45_tree=null; - BytecodesAST string_literal46_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO | 'aload' INTEIRO | 'aload_0' | 'aload_1' | 'aload_2' | 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { - case 39: + case 44: { alt10=1; } break; - case 33: + case 38: { alt10=2; } break; - case 34: + case 39: { alt10=3; } break; - case 35: + case 40: { alt10=4; } break; - case 36: + case 41: { alt10=5; } break; - case 37: + case 42: { alt10=6; } break; - case 38: + case 43: { alt10=7; } break; - case 55: + case 60: { alt10=8; } break; - case 56: + case 61: { alt10=9; } break; - case 57: + case 62: { alt10=10; } break; - case 58: + case 63: { alt10=11; } break; - case 54: + case 59: { alt10=12; } break; - case 71: + case 76: { alt10=13; } @@ -1760,12 +1777,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_load685); + a=(Token)match(input,44,FOLLOW_44_in_load706); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1777,12 +1794,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_load699); + a=(Token)match(input,38,FOLLOW_38_in_load720); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1794,12 +1811,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,34,FOLLOW_34_in_load714); + a=(Token)match(input,39,FOLLOW_39_in_load735); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1811,12 +1828,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_load729); + a=(Token)match(input,40,FOLLOW_40_in_load750); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1828,12 +1845,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_load744); + a=(Token)match(input,41,FOLLOW_41_in_load765); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1845,12 +1862,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,37,FOLLOW_37_in_load758); + a=(Token)match(input,42,FOLLOW_42_in_load779); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1862,12 +1879,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_load772); + a=(Token)match(input,43,FOLLOW_43_in_load793); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1879,12 +1896,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_load786); + a=(Token)match(input,60,FOLLOW_60_in_load807); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1896,12 +1913,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_load801); + a=(Token)match(input,61,FOLLOW_61_in_load822); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1913,12 +1930,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_load816); + a=(Token)match(input,62,FOLLOW_62_in_load837); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1930,12 +1947,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_load831); + a=(Token)match(input,63,FOLLOW_63_in_load852); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1947,133 +1964,143 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_load846); + a=(Token)match(input,59,FOLLOW_59_in_load867); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load848); - INTEIRO39_tree = - (BytecodesAST)adaptor.create(INTEIRO39) + INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load869); + INTEIRO38_tree = + (BytecodesAST)adaptor.create(INTEIRO38) ; - adaptor.addChild(root_0, INTEIRO39_tree); + adaptor.addChild(root_0, INTEIRO38_tree); - escreverOpcode(a, INTEIRO39); + escreverOpcode(a, INTEIRO38); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,71,FOLLOW_71_in_load863); + a=(Token)match(input,76,FOLLOW_76_in_load884); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO40=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load865); - INTEIRO40_tree = - (BytecodesAST)adaptor.create(INTEIRO40) + INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load886); + INTEIRO39_tree = + (BytecodesAST)adaptor.create(INTEIRO39) ; - adaptor.addChild(root_0, INTEIRO40_tree); + adaptor.addChild(root_0, INTEIRO39_tree); - escreverOpcode(a, INTEIRO40); + escreverOpcode(a, INTEIRO39); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - string_literal41=(Token)match(input,24,FOLLOW_24_in_load876); - string_literal41_tree = - (BytecodesAST)adaptor.create(string_literal41) + a=(Token)match(input,24,FOLLOW_24_in_load901); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, string_literal41_tree); + adaptor.addChild(root_0, a_tree); - INTEIRO42=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load878); - INTEIRO42_tree = - (BytecodesAST)adaptor.create(INTEIRO42) + INTEIRO40=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load903); + INTEIRO40_tree = + (BytecodesAST)adaptor.create(INTEIRO40) ; - adaptor.addChild(root_0, INTEIRO42_tree); + adaptor.addChild(root_0, INTEIRO40_tree); + + escreverOpcode(a, INTEIRO40); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal43=(Token)match(input,25,FOLLOW_25_in_load887); - string_literal43_tree = - (BytecodesAST)adaptor.create(string_literal43) + a=(Token)match(input,25,FOLLOW_25_in_load918); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, string_literal43_tree); + adaptor.addChild(root_0, a_tree); + + escreverOpcode(a); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal44=(Token)match(input,26,FOLLOW_26_in_load896); - string_literal44_tree = - (BytecodesAST)adaptor.create(string_literal44) + a=(Token)match(input,26,FOLLOW_26_in_load933); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, string_literal44_tree); + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); + } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal45=(Token)match(input,27,FOLLOW_27_in_load905); - string_literal45_tree = - (BytecodesAST)adaptor.create(string_literal45) + a=(Token)match(input,27,FOLLOW_27_in_load948); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, string_literal45_tree); + adaptor.addChild(root_0, a_tree); + + escreverOpcode(a); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal46=(Token)match(input,28,FOLLOW_28_in_load914); - string_literal46_tree = - (BytecodesAST)adaptor.create(string_literal46) + a=(Token)match(input,28,FOLLOW_28_in_load962); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, string_literal46_tree); + adaptor.addChild(root_0, a_tree); + escreverOpcode(a); + } break; @@ -2107,7 +2134,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2116,40 +2143,67 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST root_0 = null; Token a=null; - Token INTEIRO47=null; + Token INTEIRO41=null; + Token INTEIRO42=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO47_tree=null; + BytecodesAST INTEIRO41_tree=null; + BytecodesAST INTEIRO42_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO ) - int alt11=5; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + int alt11=10; switch ( input.LA(1) ) { - case 65: + case 70: { alt11=1; } break; - case 66: + case 71: { alt11=2; } break; - case 67: + case 72: { alt11=3; } break; - case 68: + case 73: { alt11=4; } break; - case 64: + case 69: { alt11=5; } break; + case 29: + { + alt11=6; + } + break; + case 30: + { + alt11=7; + } + break; + case 31: + { + alt11=8; + } + break; + case 32: + { + alt11=9; + } + break; + case 33: + { + alt11=10; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 11, 0, input); @@ -2160,12 +2214,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_store937); + a=(Token)match(input,70,FOLLOW_70_in_store986); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2177,12 +2231,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,66,FOLLOW_66_in_store953); + a=(Token)match(input,71,FOLLOW_71_in_store1002); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2194,12 +2248,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_store969); + a=(Token)match(input,72,FOLLOW_72_in_store1018); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2211,12 +2265,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_store985); + a=(Token)match(input,73,FOLLOW_73_in_store1034); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2228,26 +2282,118 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:9: a= 'istore' INTEIRO + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,69,FOLLOW_69_in_store1050); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + INTEIRO41=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1052); + INTEIRO41_tree = + (BytecodesAST)adaptor.create(INTEIRO41) + ; + adaptor.addChild(root_0, INTEIRO41_tree); + + + verificarAumentoMemoriaGlobal(a, INTEIRO41); + + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:9: a= 'astore' INTEIRO + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,29,FOLLOW_29_in_store1068); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + INTEIRO42=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1070); + INTEIRO42_tree = + (BytecodesAST)adaptor.create(INTEIRO42) + ; + adaptor.addChild(root_0, INTEIRO42_tree); + + + verificarAumentoMemoriaGlobal(a, INTEIRO42); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:9: a= 'astore_0' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,30,FOLLOW_30_in_store1086); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:9: a= 'astore_1' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,31,FOLLOW_31_in_store1102); + a_tree = + (BytecodesAST)adaptor.create(a) + ; + adaptor.addChild(root_0, a_tree); + + + verificarAumentoMemoriaGlobal(a); + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= 'astore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_store1001); + a=(Token)match(input,32,FOLLOW_32_in_store1118); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO47=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1003); - INTEIRO47_tree = - (BytecodesAST)adaptor.create(INTEIRO47) + verificarAumentoMemoriaGlobal(a); + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= 'astore_3' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + a=(Token)match(input,33,FOLLOW_33_in_store1134); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, INTEIRO47_tree); + adaptor.addChild(root_0, a_tree); - verificarAumentoMemoriaGlobal(a, INTEIRO47); + verificarAumentoMemoriaGlobal(a); } break; @@ -2282,7 +2428,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2295,20 +2441,20 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { - case 32: + case 37: { alt12=1; } break; - case 62: + case 67: { alt12=2; } break; - case 70: + case 75: { alt12=3; } @@ -2323,12 +2469,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_logica1024); + a=(Token)match(input,37,FOLLOW_37_in_logica1155); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2340,12 +2486,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_logica1041); + a=(Token)match(input,67,FOLLOW_67_in_logica1172); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2357,12 +2503,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_logica1058); + a=(Token)match(input,75,FOLLOW_75_in_logica1189); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2404,7 +2550,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2419,70 +2565,70 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { - case 47: + case 52: { alt13=1; } break; - case 52: + case 57: { alt13=2; } break; - case 51: + case 56: { alt13=3; } break; - case 48: + case 53: { alt13=4; } break; - case 49: + case 54: { alt13=5; } break; - case 50: + case 55: { alt13=6; } break; - case 41: + case 46: { alt13=7; } break; - case 46: + case 51: { alt13=8; } break; - case 45: + case 50: { alt13=9; } break; - case 42: + case 47: { alt13=10; } break; - case 43: + case 48: { alt13=11; } break; - case 44: + case 49: { alt13=12; } break; - case 30: + case 35: { alt13=13; } @@ -2497,19 +2643,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_desvio1080); + a=(Token)match(input,52,FOLLOW_52_in_desvio1211); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1086); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1217); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2521,19 +2667,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_desvio1103); + a=(Token)match(input,57,FOLLOW_57_in_desvio1234); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1109); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1240); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2545,19 +2691,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1126); + a=(Token)match(input,56,FOLLOW_56_in_desvio1257); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1132); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1263); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2569,19 +2715,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_desvio1149); + a=(Token)match(input,53,FOLLOW_53_in_desvio1280); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1155); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1286); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2593,19 +2739,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1172); + a=(Token)match(input,54,FOLLOW_54_in_desvio1303); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1178); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1309); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2617,19 +2763,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1195); + a=(Token)match(input,55,FOLLOW_55_in_desvio1326); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1201); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1332); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2641,19 +2787,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_desvio1218); + a=(Token)match(input,46,FOLLOW_46_in_desvio1349); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1224); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1355); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2665,19 +2811,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_desvio1241); + a=(Token)match(input,51,FOLLOW_51_in_desvio1372); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1247); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1378); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2689,19 +2835,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_desvio1264); + a=(Token)match(input,50,FOLLOW_50_in_desvio1395); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1270); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1401); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2713,19 +2859,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_desvio1287); + a=(Token)match(input,47,FOLLOW_47_in_desvio1418); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1293); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1424); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2737,19 +2883,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_desvio1310); + a=(Token)match(input,48,FOLLOW_48_in_desvio1441); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1316); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1447); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2761,19 +2907,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_desvio1333); + a=(Token)match(input,49,FOLLOW_49_in_desvio1464); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1339); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1470); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2785,19 +2931,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_desvio1356); + a=(Token)match(input,35,FOLLOW_35_in_desvio1487); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1362); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1493); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2833,13 +2979,14 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, public static class construtorDefault_return extends ParserRuleReturnScope { + public List classe; BytecodesAST tree; public Object getTree() { return tree; } }; // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:1: construtorDefault : ( ID '/' )* INIT '()' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:1: construtorDefault returns [List classe] : (cls+= ID '/' )+ INIT '()' ; public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); retval.start = input.LT(1); @@ -2847,24 +2994,29 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws BytecodesAST root_0 = null; - Token ID48=null; - Token char_literal49=null; - Token INIT50=null; - Token string_literal51=null; + Token char_literal43=null; + Token INIT44=null; + Token string_literal45=null; + Token cls=null; + List list_cls=null; - BytecodesAST ID48_tree=null; - BytecodesAST char_literal49_tree=null; - BytecodesAST INIT50_tree=null; - BytecodesAST string_literal51_tree=null; + BytecodesAST char_literal43_tree=null; + BytecodesAST INIT44_tree=null; + BytecodesAST string_literal45_tree=null; + BytecodesAST cls_tree=null; + + retval.classe = new ArrayList(); + try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:19: ( ( ID '/' )* INIT '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:21: ( ID '/' )* INIT '()' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:6: ( (cls+= ID '/' )+ INIT '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:8: (cls+= ID '/' )+ INIT '()' { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:21: ( ID '/' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:8: (cls+= ID '/' )+ + int cnt14=0; loop14: do { int alt14=2; @@ -2877,44 +3029,53 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:22: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:9: cls+= ID '/' { - ID48=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1381); - ID48_tree = - (BytecodesAST)adaptor.create(ID48) + cls=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1535); + cls_tree = + (BytecodesAST)adaptor.create(cls) ; - adaptor.addChild(root_0, ID48_tree); + adaptor.addChild(root_0, cls_tree); + if (list_cls==null) list_cls=new ArrayList(); + list_cls.add(cls); - char_literal49=(Token)match(input,21,FOLLOW_21_in_construtorDefault1383); - char_literal49_tree = - (BytecodesAST)adaptor.create(char_literal49) + + char_literal43=(Token)match(input,21,FOLLOW_21_in_construtorDefault1537); + char_literal43_tree = + (BytecodesAST)adaptor.create(char_literal43) ; - adaptor.addChild(root_0, char_literal49_tree); + adaptor.addChild(root_0, char_literal43_tree); } break; default : - break loop14; + if ( cnt14 >= 1 ) break loop14; + EarlyExitException eee = + new EarlyExitException(14, input); + throw eee; } + cnt14++; } while (true); - INIT50=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1387); - INIT50_tree = - (BytecodesAST)adaptor.create(INIT50) + INIT44=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1541); + INIT44_tree = + (BytecodesAST)adaptor.create(INIT44) ; - adaptor.addChild(root_0, INIT50_tree); + adaptor.addChild(root_0, INIT44_tree); - string_literal51=(Token)match(input,16,FOLLOW_16_in_construtorDefault1389); - string_literal51_tree = - (BytecodesAST)adaptor.create(string_literal51) + string_literal45=(Token)match(input,16,FOLLOW_16_in_construtorDefault1543); + string_literal45_tree = + (BytecodesAST)adaptor.create(string_literal45) ; - adaptor.addChild(root_0, string_literal51_tree); + adaptor.addChild(root_0, string_literal45_tree); + + retval.classe = list_cls; } @@ -2941,13 +3102,15 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws public static class campo_return extends ParserRuleReturnScope { + public List classe; + public String campo; BytecodesAST tree; public Object getTree() { return tree; } }; // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:1: campo : ID '/' ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -2955,41 +3118,86 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; - Token ID52=null; - Token char_literal53=null; - Token ID54=null; + Token cmp=null; + Token char_literal46=null; + Token cls=null; + List list_cls=null; - BytecodesAST ID52_tree=null; - BytecodesAST char_literal53_tree=null; - BytecodesAST ID54_tree=null; + BytecodesAST cmp_tree=null; + BytecodesAST char_literal46_tree=null; + BytecodesAST cls_tree=null; + + retval.classe = new ArrayList(); + retval.campo =""; + try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( ID '/' ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: ID '/' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - ID52=(Token)match(input,ID,FOLLOW_ID_in_campo1396); - ID52_tree = - (BytecodesAST)adaptor.create(ID52) - ; - adaptor.addChild(root_0, ID52_tree); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:8: (cls+= ID '/' )+ + int cnt15=0; + loop15: + do { + int alt15=2; + int LA15_0 = input.LA(1); + if ( (LA15_0==ID) ) { + int LA15_1 = input.LA(2); + + if ( (LA15_1==21) ) { + alt15=1; + } + + + } - char_literal53=(Token)match(input,21,FOLLOW_21_in_campo1398); - char_literal53_tree = - (BytecodesAST)adaptor.create(char_literal53) - ; - adaptor.addChild(root_0, char_literal53_tree); + switch (alt15) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:9: cls+= ID '/' + { + cls=(Token)match(input,ID,FOLLOW_ID_in_campo1583); + cls_tree = + (BytecodesAST)adaptor.create(cls) + ; + adaptor.addChild(root_0, cls_tree); + + if (list_cls==null) list_cls=new ArrayList(); + list_cls.add(cls); + + + char_literal46=(Token)match(input,21,FOLLOW_21_in_campo1585); + char_literal46_tree = + (BytecodesAST)adaptor.create(char_literal46) + ; + adaptor.addChild(root_0, char_literal46_tree); + + + } + break; - ID54=(Token)match(input,ID,FOLLOW_ID_in_campo1400); - ID54_tree = - (BytecodesAST)adaptor.create(ID54) + default : + if ( cnt15 >= 1 ) break loop15; + EarlyExitException eee = + new EarlyExitException(15, input); + throw eee; + } + cnt15++; + } while (true); + + + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1593); + cmp_tree = + (BytecodesAST)adaptor.create(cmp) ; - adaptor.addChild(root_0, ID54_tree); + adaptor.addChild(root_0, cmp_tree); + + retval.classe = list_cls; retval.campo = (cmp!=null?cmp.getText():null); } @@ -3022,7 +3230,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3030,79 +3238,79 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST root_0 = null; - Token char_literal55=null; - Token ID56=null; - Token char_literal57=null; - Token ID58=null; + Token char_literal47=null; + Token ID48=null; + Token char_literal49=null; + Token ID50=null; - BytecodesAST char_literal55_tree=null; - BytecodesAST ID56_tree=null; - BytecodesAST char_literal57_tree=null; - BytecodesAST ID58_tree=null; + BytecodesAST char_literal47_tree=null; + BytecodesAST ID48_tree=null; + BytecodesAST char_literal49_tree=null; + BytecodesAST ID50_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal55=(Token)match(input,23,FOLLOW_23_in_tipoRef1408); - char_literal55_tree = - (BytecodesAST)adaptor.create(char_literal55) + char_literal47=(Token)match(input,23,FOLLOW_23_in_tipoRef1609); + char_literal47_tree = + (BytecodesAST)adaptor.create(char_literal47) ; - adaptor.addChild(root_0, char_literal55_tree); + adaptor.addChild(root_0, char_literal47_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:15: ( ID '/' )* - loop15: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:15: ( ID '/' )* + loop16: do { - int alt15=2; - int LA15_0 = input.LA(1); + int alt16=2; + int LA16_0 = input.LA(1); - if ( (LA15_0==ID) ) { - int LA15_1 = input.LA(2); + if ( (LA16_0==ID) ) { + int LA16_1 = input.LA(2); - if ( (LA15_1==21) ) { - alt15=1; + if ( (LA16_1==21) ) { + alt16=1; } } - switch (alt15) { + switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:16: ID '/' { - ID56=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1411); - ID56_tree = - (BytecodesAST)adaptor.create(ID56) + ID48=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1612); + ID48_tree = + (BytecodesAST)adaptor.create(ID48) ; - adaptor.addChild(root_0, ID56_tree); + adaptor.addChild(root_0, ID48_tree); - char_literal57=(Token)match(input,21,FOLLOW_21_in_tipoRef1413); - char_literal57_tree = - (BytecodesAST)adaptor.create(char_literal57) + char_literal49=(Token)match(input,21,FOLLOW_21_in_tipoRef1614); + char_literal49_tree = + (BytecodesAST)adaptor.create(char_literal49) ; - adaptor.addChild(root_0, char_literal57_tree); + adaptor.addChild(root_0, char_literal49_tree); } break; default : - break loop15; + break loop16; } } while (true); - ID58=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1417); - ID58_tree = - (BytecodesAST)adaptor.create(ID58) + ID50=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1618); + ID50_tree = + (BytecodesAST)adaptor.create(ID50) ; - adaptor.addChild(root_0, ID58_tree); + adaptor.addChild(root_0, ID50_tree); } @@ -3133,120 +3341,128 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio - public static final BitSet FOLLOW_comando_in_programa64 = new BitSet(new long[]{0xFFFFFFFFFF0A1082L,0x0000000000000FFFL}); - public static final BitSet FOLLOW_label_in_comando84 = new BitSet(new long[]{0xFFFFFFFFFF0A1000L,0x0000000000000FFFL}); - public static final BitSet FOLLOW_instrucao_in_comando86 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando90 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label112 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_22_in_label114 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao124 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao128 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao132 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_load_in_instrucao136 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_store_in_instrucao140 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_desvio_in_instrucao144 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_logica_in_instrucao148 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_72_in_instrucao171 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_73_in_instrucao193 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_74_in_instrucao217 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_definicaoClasse259 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse261 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse263 = new BitSet(new long[]{0x0000000000140000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse265 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse268 = new BitSet(new long[]{0x0000000000040002L}); - public static final BitSet FOLLOW_19_in_definicaoClasse327 = new BitSet(new long[]{0x0000000000000180L}); - public static final BitSet FOLLOW_construtorDefault_in_definicaoClasse329 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_20_in_superClasse370 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_superClasse372 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_18_in_membroClasse389 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_membroClasse391 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_membroClasse393 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_manipulacaoObjetos412 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos414 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos416 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_manipulacaoObjetos439 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos441 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos443 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_manipulacaoObjetos466 = new BitSet(new long[]{0x0000000000000180L}); - public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos468 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos470 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo501 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo505 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo509 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_aritmetica522 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_aritmetica543 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_aritmetica564 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_aritmetica585 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_aritmetica606 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_aritmetica627 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_aritmetica648 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load685 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load699 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load714 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load729 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load744 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load758 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load772 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load786 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load801 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load816 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load831 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load846 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load848 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_load863 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load865 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load876 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load878 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load887 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load896 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load905 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_load914 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_store937 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_store953 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_store969 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_store985 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_store1001 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1003 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_logica1024 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_logica1041 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_logica1058 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1080 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1086 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1103 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1109 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1126 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1132 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1149 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1155 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1172 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1178 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1195 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1201 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_desvio1218 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1224 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1241 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1247 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_desvio1264 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1270 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_desvio1287 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1293 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_desvio1310 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1316 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_desvio1333 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1339 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_desvio1356 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1362 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_construtorDefault1381 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_construtorDefault1383 = new BitSet(new long[]{0x0000000000000180L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault1387 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_construtorDefault1389 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo1396 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_campo1398 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_campo1400 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_tipoRef1408 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1411 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_tipoRef1413 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1417 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_programa69 = new BitSet(new long[]{0xFFFFFFFFFF0A1082L,0x000000000001FFFFL}); + public static final BitSet FOLLOW_label_in_comando89 = new BitSet(new long[]{0xFFFFFFFFFF0A1000L,0x000000000001FFFFL}); + public static final BitSet FOLLOW_instrucao_in_comando91 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando95 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label117 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_22_in_label119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao129 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao133 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao137 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_load_in_instrucao141 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_store_in_instrucao145 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_desvio_in_instrucao149 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_logica_in_instrucao153 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_77_in_instrucao176 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_78_in_instrucao198 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_79_in_instrucao222 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao242 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_definicaoClasse264 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse266 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse268 = new BitSet(new long[]{0x0000000000140000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse270 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse273 = new BitSet(new long[]{0x0000000000040002L}); + public static final BitSet FOLLOW_19_in_definicaoClasse332 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_INIT_in_definicaoClasse334 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_definicaoClasse336 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_VOID_in_definicaoClasse338 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_superClasse379 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_superClasse381 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_18_in_membroClasse398 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_membroClasse400 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_membroClasse402 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_manipulacaoObjetos421 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos427 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos429 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_manipulacaoObjetos452 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos458 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos460 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_manipulacaoObjetos483 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos489 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos491 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo522 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo526 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo530 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_aritmetica543 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica564 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_aritmetica585 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_aritmetica606 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_aritmetica627 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_aritmetica648 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_aritmetica669 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load706 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load720 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load735 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load750 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load765 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load793 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load807 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load822 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load837 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load852 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load867 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load869 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load884 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load886 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load901 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load903 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load918 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load933 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load948 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_load962 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_store986 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_store1002 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_store1018 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_store1034 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_store1050 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1052 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_store1068 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1070 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_store1086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_store1102 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_store1118 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_store1134 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_logica1155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_logica1172 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_logica1189 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1211 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1217 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio1234 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1240 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio1257 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1263 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_desvio1280 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1286 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_desvio1303 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1309 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio1326 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1332 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1349 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1355 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1372 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1378 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1395 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1401 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1418 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1424 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1441 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1447 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1464 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1470 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_desvio1487 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1493 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_construtorDefault1535 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_construtorDefault1537 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault1541 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_construtorDefault1543 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo1583 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_campo1585 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_campo1593 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_tipoRef1609 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1612 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_tipoRef1614 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1618 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 17bc80e..a1e42be 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -12,6 +12,10 @@ tokens { EXTENDS; } +@header{ + package br.ufpb.iged.interpretador.bytecodeassembler.parser; +} + @members { protected void escreverOpcode(Token opc); @@ -37,16 +41,16 @@ instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | d definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ -> ^(CLASSE ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) - | '.method' construtorDefault + | '.method' INIT '()' VOID ; superClasse : '.super' ID -> ^(EXTENDS ID) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) ; -manipulacaoObjetos : 'getfield' campo tipo - | 'putfield' campo tipo - | 'invokespecial' construtorDefault VOID +manipulacaoObjetos : 'getfield' a = campo tipo + | 'putfield' a = campo tipo + | 'invokespecial' b = construtorDefault VOID ; tipo : INT | VOID | tipoRef ; @@ -73,11 +77,11 @@ load : a = 'iconst_m1'{escreverOpcode($a);} | a = 'iload_3' {escreverOpcode($a);} | a = 'iload' INTEIRO {escreverOpcode($a, $INTEIRO);} | a = 'ldc' INTEIRO {escreverOpcode($a, $INTEIRO);} - | 'aload' INTEIRO - | 'aload_0' - | 'aload_1' - | 'aload_2' - | 'aload_3' + | a = 'aload' INTEIRO {escreverOpcode($a, $INTEIRO);} + | a = 'aload_0' {escreverOpcode($a);} + | a = 'aload_1' {escreverOpcode($a);} + | a = 'aload_2'{escreverOpcode($a);} + | a = 'aload_3'{escreverOpcode($a);} ; store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} @@ -85,6 +89,11 @@ store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} | a = 'istore_2' {verificarAumentoMemoriaGlobal($a);} | a = 'istore_3' {verificarAumentoMemoriaGlobal($a);} | a = 'istore' INTEIRO {verificarAumentoMemoriaGlobal($a, $INTEIRO);} + | a = 'astore' INTEIRO {verificarAumentoMemoriaGlobal($a, $INTEIRO);} + | a = 'astore_0' {verificarAumentoMemoriaGlobal($a);} + | a = 'astore_1' {verificarAumentoMemoriaGlobal($a);} + | a = 'astore_2' {verificarAumentoMemoriaGlobal($a);} + | a = 'astore_3' {verificarAumentoMemoriaGlobal($a);} ; logica : a = 'iand' {escreverOpcode($a);} @@ -107,9 +116,20 @@ desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} | a = 'goto' b = ID {escreverOpcode($a, $b);} ; -construtorDefault : (ID '/')* INIT '()'; +construtorDefault returns [List classe] + @init { + $classe = new ArrayList(); + } + : (cls += ID '/')+ INIT '()' {$classe = $cls;} + ; -campo: ID '/' ID; +campo returns [List classe, String campo] + @init { + $classe = new ArrayList(); + $campo=""; + } + : (cls += ID '/')+ cmp = ID {$classe = $cls; $campo = $cmp.text;} + ; tipoRef : 'L' (ID '/')* ID; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index def6fc0..e1a3fe4 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -7,6 +7,10 @@ options { filter=true; } +@header{ + package br.ufpb.iged.interpretador.symboltable.parser; +} + @members { TabelaSimbolos tabelaSimbolos; Escopo escopoAtual; @@ -23,34 +27,25 @@ topdown : entraNaClasse bottomup : saiDaClasse; -// START: class entraNaClasse : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) - { // def class but leave superclass blank until ref phase + { System.out.println("line "+$nome.getLine()+ ": def class "+$nome.text); - // record scope in AST for next pass - // if ( $sup!=null ) - // $sup.escopo = escopoAtual; + if ( $sup!=null ) + $sup.escopo = escopoAtual; SimboloClasse classe = new SimboloClasse($nome.text,escopoAtual,null); - //classe.def = $nome; // point from symbol table into AST - //$nome.simbolo = classe; // point from AST into symbol table - escopoAtual.definir(classe); // def class in current scope - escopoAtual = classe; // set current scope to class scope + escopoAtual.definir(classe); + escopoAtual = classe; } ; -// END: class - -declaracaoVariavel // global, parameter, or local variable +declaracaoVariavel : ^(FIELD_DECL ID tipo =.) { System.out.println("line "+$ID.getLine()+": def "+$ID.text); - //$var.escopo = escopoAtual; SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo($tipo.getText()); SimboloVariavel variavel = new SimboloVariavel($ID.text,tipoPrimitivo); - //variavel.def = $ID; // track AST location of def's ID - //$ID.simbolo = variavel; // track in AST escopoAtual.definir(variavel); } ; diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 92dde14..112d19e 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -29,27 +29,11 @@ import br.ufpb.iged.interpretador.symboltable.parser.Def; public class Interpretador { - - public static final String NOME_ARQUIVO_ENTRADA = "entrada.txt"; static TabelaSimbolos tabelaSimbolos; static EscopoGlobal global; - /*public static final int TAMANHO_INICIAL_PILHA_OPERANDOS = 100; - - int global.ip = 0; - - byte[] global.codigo; - - int tamanhoCodigo; - - Object[] global.memoriaGlobal; - - Object[] global.pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA_OPERANDOS]; - - int global.sp = -1;*/ - public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { public Object create(Token token) { @@ -67,15 +51,12 @@ public Object errorNode(TokenStream input, Token start, Token stop, RecognitionException e) { BytecodesErrorNode t = new BytecodesErrorNode(input, start, stop, e); - //System.out.println("returning error node '"+t+"' @index="+input.index()); return t; } }; public static void main(String[] args) throws Exception { - - //InputStream entrada = new FileInputStream(NOME_ARQUIVO_ENTRADA); if (carregar()) { @@ -90,24 +71,7 @@ public static void main(String[] args) throws Exception { public static boolean carregar() { - //AssemblerLexer assemblerLexer = new AssemblerLexer( - // new ANTLRInputStream(input)); - //CommonTokenStream tokens = new CommonTokenStream(assemblerLexer); - //BytecodeAssembler assembler = new BytecodeAssembler(tokens, - // Definicao.instrucoes); - //assembler.setTreeAdaptor(bytecodesAdaptor); - //RuleReturnScope r = assembler.programa(); - //assembler.programa(); - //assembler.programa(); - //if (assembler.getNumberOfSyntaxErrors() > 0) - //return false; - //CommonTree tree = (CommonTree)r.getTree(); - //CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); - //nos.setTokenStream(tokens); - tabelaSimbolos = new TabelaSimbolos(); // init symbol table - //Def def = new Def(nos, tabelaSimbolos); // create Def phase - //def.downup(tree); // Do pass 1 - //nos.reset(); // rewind AST node stream to root + tabelaSimbolos = new TabelaSimbolos(); BytecodeAssembler assembler = carregarClasse("Main.class"); global = tabelaSimbolos.global; global.codigo = assembler.obterCodigoMaquina(); @@ -148,14 +112,14 @@ public static BytecodeAssembler carregarClasse(String nomeArquivo) { CommonTokenStream tokens = new CommonTokenStream(lexer); parser = new BytecodeAssembler(tokens, Definicao.instrucoes); parser.setTreeAdaptor(bytecodesAdaptor); - RuleReturnScope r = parser.programa(); // launch parser by calling start rule - CommonTree tree = (CommonTree)r.getTree(); // get tree result + RuleReturnScope r = parser.programa(); + CommonTree tree = (CommonTree)r.getTree(); CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); nos.setTokenStream(tokens); - Def def = new Def(nos, tabelaSimbolos); // create Def phase - def.downup(tree); // Do pass 1 - nos.reset(); // rewind AST node stream to root + Def def = new Def(nos, tabelaSimbolos); + def.downup(tree); + nos.reset(); } catch(IOException ioe) { diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index 08d29d1..a6c0c9c 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,7 +1,8 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-27 22:05:48 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-28 11:58:09 package br.ufpb.iged.interpretador.symboltable.parser; + import org.antlr.runtime.*; import org.antlr.runtime.tree.*; @@ -60,10 +61,10 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:1: topdown : ( entraNaClasse | declaracaoVariavel ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:1: topdown : ( entraNaClasse | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:9: ( entraNaClasse | declaracaoVariavel ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:9: ( entraNaClasse | declaracaoVariavel ) int alt1=2; int LA1_0 = input.LA(1); @@ -83,9 +84,9 @@ else if ( (LA1_0==FIELD_DECL) ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:20:11: entraNaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:11: entraNaClasse { - pushFollow(FOLLOW_entraNaClasse_in_topdown43); + pushFollow(FOLLOW_entraNaClasse_in_topdown48); entraNaClasse(); state._fsp--; @@ -94,9 +95,9 @@ else if ( (LA1_0==FIELD_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:21:11: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:25:11: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown55); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown60); declaracaoVariavel(); state._fsp--; @@ -122,13 +123,13 @@ else if ( (LA1_0==FIELD_DECL) ) { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:1: bottomup : saiDaClasse ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:1: bottomup : saiDaClasse ; public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:10: ( saiDaClasse ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:12: saiDaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:10: ( saiDaClasse ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup72); + pushFollow(FOLLOW_saiDaClasse_in_bottomup77); saiDaClasse(); state._fsp--; @@ -152,21 +153,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:27:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse97); if (state.failed) return ; + match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse101); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse101); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse105); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:26: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:26: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -191,12 +192,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:27: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:27: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse105); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse109); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse109); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse113); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -212,17 +213,14 @@ public final void entraNaClasse() throws RecognitionException { match(input, Token.UP, null); if (state.failed) return ; - if ( state.backtracking==1 ) { // def class but leave superclass blank until ref phase + if ( state.backtracking==1 ) { System.out.println("line "+nome.getLine()+ ": def class "+(nome!=null?nome.getText():null)); - // record scope in AST for next pass - // if ( sup!=null ) - // sup.escopo = escopoAtual; + if ( sup!=null ) + sup.escopo = escopoAtual; SimboloClasse classe = new SimboloClasse((nome!=null?nome.getText():null),escopoAtual,null); - //classe.def = nome; // point from symbol table into AST - //nome.simbolo = classe; // point from AST into symbol table - escopoAtual.definir(classe); // def class in current scope - escopoAtual = classe; // set current scope to class scope + escopoAtual.definir(classe); + escopoAtual = classe; } } @@ -243,19 +241,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:43:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:9: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:9: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel148); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel149); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel150); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel151); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -266,11 +264,8 @@ public final void declaracaoVariavel() throws RecognitionException { if ( state.backtracking==1 ) { System.out.println("line "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); - //$var.escopo = escopoAtual; SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo(tipo.getText()); SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),tipoPrimitivo); - //variavel.def = ID1; // track AST location of def's ID - //ID1.simbolo = variavel; // track in AST escopoAtual.definir(variavel); } @@ -292,13 +287,13 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:1: saiDaClasse : CLASSE ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:1: saiDaClasse : CLASSE ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:13: ( CLASSE ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:57:15: CLASSE + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:13: ( CLASSE ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:15: CLASSE { - match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse178); if (state.failed) return ; + match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse179); if (state.failed) return ; } @@ -320,15 +315,15 @@ public final void saiDaClasse() throws RecognitionException { - public static final BitSet FOLLOW_entraNaClasse_in_topdown43 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown55 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDaClasse_in_bottomup72 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CLASSE_in_entraNaClasse97 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse101 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse105 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse109 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel148 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel150 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_CLASSE_in_saiDaClasse178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown48 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown60 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup77 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CLASSE_in_entraNaClasse101 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse105 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse109 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse113 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel149 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel151 = new BitSet(new long[]{0x00000000000000F0L}); + public static final BitSet FOLLOW_CLASSE_in_saiDaClasse179 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file From 6a6802841ac53923d32c7d6211b30e1e2de760f3 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sat, 30 Jun 2012 01:21:03 -0300 Subject: [PATCH 24/79] commit --- .../asm/BytecodeAssembler.class | Bin 6166 -> 6460 bytes .../asm/BytecodeAssembler.java | 11 +++++++++++ .../iged/interpretador/gramaticas/Assembler.g | 2 ++ 3 files changed, 13 insertions(+) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 1b49237bc09eed85ac85b08aef0d2823285ad432..8ae102fc660595ab9c4d38411cd2577a32a6ed25 100644 GIT binary patch literal 6460 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 OxA@7t9)G}}Q1XAQ=Z%m6 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index cad42df..ca72be1 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -23,11 +23,16 @@ public class BytecodeAssembler extends AssemblerParser{ new HashMap(); protected Map enderecosMap = new HashMap(); + + protected Map classesMap = + new HashMap(); + protected static int ip = 0; public static byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; protected int tamMemoriaGlobalEstruturas = 0; protected int tamMemoriaGlobalReferencias = 0; protected int tamMemoriaGlobal = 0; + protected int idProximaClasse = 0; public BytecodeAssembler(TokenStream lexer, Definicao.Instrucao[] instrucoes) { @@ -169,6 +174,12 @@ protected int obterEndereco(String id) throws LabelException { return label.address; } + + protected void inserirNovaClasse(Token nomeClasse) { + + classesMap.put(idProximaClasse++, nomeClasse.getText()); + + } protected static void verificarAumentoTamanhoMemoria(int indice) { diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index a1e42be..4bc3b93 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -23,6 +23,7 @@ tokens { protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected void definirLabel(Token id) throws LabelException; + protected void inserirNovaClasse(Token nomeClasse); } @@ -41,6 +42,7 @@ instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | d definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ -> ^(CLASSE ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) + {inserirNovaClasse($ID);} | '.method' INIT '()' VOID ; From 3cd540d86e28156577e9300e79055cb4d8a9e109 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sat, 30 Jun 2012 12:06:41 -0300 Subject: [PATCH 25/79] commit --- .../asm/BytecodeAssembler.class | Bin 6460 -> 8005 bytes .../principal/Interpretador.class | Bin 11763 -> 11763 bytes .../asm/BytecodeAssembler.java | 35 +- .../parser/AssemblerLexer.java | 48 +- .../parser/AssemblerParser.java | 881 +++++++++--------- .../iged/interpretador/gramaticas/Assembler.g | 9 +- .../principal/Interpretador.java | 2 +- .../symboltable/classes/SimboloClasse.java | 12 + .../interpretador/symboltable/parser/Def.java | 2 +- 9 files changed, 514 insertions(+), 475 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 8ae102fc660595ab9c4d38411cd2577a32a6ed25..04c1e5cd62cfa08c28a71ce1973181aad9c396cf 100644 GIT binary patch literal 8005 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 CY0lRG literal 6460 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 enderecosMap = new HashMap(); - protected Map classesMap = - new HashMap(); + protected List constantPool = new ArrayList(); protected static int ip = 0; public static byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; @@ -175,9 +179,32 @@ protected int obterEndereco(String id) throws LabelException { } - protected void inserirNovaClasse(Token nomeClasse) { + protected void acessarCampo(Token opc, List classe, String campo) { + + escreverOpcode(opc); + + String nomeClasse = (classe.get(classe.size() - 1)); + + SimboloClasse simboloClasse = + (SimboloClasse) Interpretador.tabelaSimbolos.global.resolver(nomeClasse); + + if(!constantPool.contains(simboloClasse)) + + constantPool.add(simboloClasse); + + escreverInteiro(codigo, ip, constantPool.indexOf(simboloClasse)); + + + SimboloVariavel simboloVariavel = + (SimboloVariavel) simboloClasse.resolver(campo); + + if (!simboloClasse.getConstantPool().contains(simboloVariavel)) + + simboloClasse.getConstantPool().add(simboloVariavel); + + escreverInteiro( + codigo, ip, simboloClasse.getConstantPool().indexOf(simboloVariavel)); - classesMap.put(idProximaClasse++, nomeClasse.getText()); } diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index afd8684..3102ffb 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-28 11:58:07 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 11:58:22 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -1597,8 +1597,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:8: '' { match(""); @@ -1620,8 +1620,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:7: 'I' { match('I'); @@ -1641,8 +1641,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:8: 'V' { match('V'); @@ -1662,10 +1662,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1684,7 +1684,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:9: 'null' { match("null"); @@ -1693,7 +1693,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:18: 'NULL' { match("NULL"); @@ -1721,10 +1721,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1733,7 +1733,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: '-' { match('-'); @@ -1743,7 +1743,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1798,8 +1798,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1811,7 +1811,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1861,8 +1861,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: '\\n' { match('\n'); @@ -1882,8 +1882,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index 076c749..99b6f19 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-28 11:58:06 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 11:58:21 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -133,6 +133,7 @@ public TreeAdaptor getTreeAdaptor() { protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected abstract void definirLabel(Token id) throws LabelException; + protected abstract void acessarCampo(Token opc, List classe, String campo); @@ -143,7 +144,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:1: programa : ( comando )* ; public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -156,13 +157,13 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:12: ( comando )* loop1: do { int alt1=2; @@ -175,7 +176,7 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:12: comando { pushFollow(FOLLOW_comando_in_programa69); comando1=comando(); @@ -224,7 +225,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:1: comando : ( label instrucao | instrucao ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:1: comando : ( label instrucao | instrucao ) ; public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -241,13 +242,13 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); @@ -266,7 +267,7 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:12: label instrucao { pushFollow(FOLLOW_label_in_comando89); label2=label(); @@ -285,7 +286,7 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:30: instrucao { pushFollow(FOLLOW_instrucao_in_comando95); instrucao4=instrucao(); @@ -331,7 +332,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:1: label : a= ID ':' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:1: label : a= ID ':' ; public final AssemblerParser.label_return label() throws RecognitionException, LabelException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -346,8 +347,8 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: a= ID ':' { root_0 = (BytecodesAST)adaptor.nil(); @@ -399,7 +400,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -430,13 +431,13 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? int alt3=11; switch ( input.LA(1) ) { case 17: @@ -542,7 +543,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:13: definicaoClasse { pushFollow(FOLLOW_definicaoClasse_in_instrucao129); definicaoClasse6=definicaoClasse(); @@ -554,7 +555,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:31: manipulacaoObjetos { pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao133); manipulacaoObjetos7=manipulacaoObjetos(); @@ -566,7 +567,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:52: aritmetica { pushFollow(FOLLOW_aritmetica_in_instrucao137); aritmetica8=aritmetica(); @@ -578,7 +579,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:65: load { pushFollow(FOLLOW_load_in_instrucao141); load9=load(); @@ -590,7 +591,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:72: store { pushFollow(FOLLOW_store_in_instrucao145); store10=store(); @@ -602,7 +603,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:80: desvio { pushFollow(FOLLOW_desvio_in_instrucao149); desvio11=desvio(); @@ -614,7 +615,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:89: logica { pushFollow(FOLLOW_logica_in_instrucao153); logica12=logica(); @@ -626,7 +627,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:21: 'nop' { string_literal13=(Token)match(input,77,FOLLOW_77_in_instrucao176); string_literal13_tree = @@ -638,7 +639,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:17: a= 'pop' { a=(Token)match(input,78,FOLLOW_78_in_instrucao198); a_tree = @@ -652,7 +653,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:17: a= 'pop2' { a=(Token)match(input,79,FOLLOW_79_in_instrucao222); a_tree = @@ -707,7 +708,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -740,7 +741,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) int alt6=2; int LA6_0 = input.LA(1); @@ -759,7 +760,7 @@ else if ( (LA6_0==19) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { string_literal15=(Token)match(input,17,FOLLOW_17_in_definicaoClasse264); stream_17.add(string_literal15); @@ -773,7 +774,7 @@ else if ( (LA6_0==19) ) { stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); @@ -782,7 +783,7 @@ else if ( (LA6_0==19) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:42: superClasse { pushFollow(FOLLOW_superClasse_in_definicaoClasse270); superClasse18=superClasse(); @@ -797,7 +798,7 @@ else if ( (LA6_0==19) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:55: ( membroClasse )+ int cnt5=0; loop5: do { @@ -811,7 +812,7 @@ else if ( (LA6_0==19) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:55: membroClasse { pushFollow(FOLLOW_membroClasse_in_definicaoClasse273); membroClasse19=membroClasse(); @@ -834,7 +835,7 @@ else if ( (LA6_0==19) ) { // AST REWRITE - // elements: ID, membroClasse, superClasse + // elements: ID, superClasse, membroClasse // token labels: // rule labels: retval // token list labels: @@ -844,9 +845,9 @@ else if ( (LA6_0==19) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 43:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 44:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -857,14 +858,14 @@ else if ( (LA6_0==19) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:34: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:34: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -894,7 +895,7 @@ else if ( (LA6_0==19) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:19: '.method' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:19: '.method' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); @@ -960,7 +961,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -977,8 +978,8 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:15: '.super' ID { string_literal24=(Token)match(input,20,FOLLOW_20_in_superClasse379); stream_20.add(string_literal24); @@ -999,9 +1000,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 47:27: -> ^( EXTENDS ID ) + // 48:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1051,7 +1052,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1070,8 +1071,8 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleTokenStream stream_18=new RewriteRuleTokenStream(adaptor,"token 18"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:16: '.field' ID tipo { string_literal26=(Token)match(input,18,FOLLOW_18_in_membroClasse398); stream_18.add(string_literal26); @@ -1089,7 +1090,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo28.getTree()); // AST REWRITE - // elements: ID, tipo + // elements: tipo, ID // token labels: // rule labels: retval // token list labels: @@ -1099,9 +1100,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 49:33: -> ^( FIELD_DECL ID tipo ) + // 50:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1153,7 +1154,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: manipulacaoObjetos : ( 'getfield' a= campo tipo | 'putfield' a= campo tipo | 'invokespecial' b= construtorDefault VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1161,26 +1162,22 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; - Token string_literal29=null; - Token string_literal31=null; - Token string_literal33=null; - Token VOID34=null; - AssemblerParser.campo_return a =null; + Token a=null; + Token VOID31=null; + AssemblerParser.campo_return b =null; - AssemblerParser.construtorDefault_return b =null; + AssemblerParser.construtorDefault_return c =null; - AssemblerParser.tipo_return tipo30 =null; + AssemblerParser.tipo_return tipo29 =null; - AssemblerParser.tipo_return tipo32 =null; + AssemblerParser.tipo_return tipo30 =null; - BytecodesAST string_literal29_tree=null; - BytecodesAST string_literal31_tree=null; - BytecodesAST string_literal33_tree=null; - BytecodesAST VOID34_tree=null; + BytecodesAST a_tree=null; + BytecodesAST VOID31_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:20: ( 'getfield' a= campo tipo | 'putfield' a= campo tipo | 'invokespecial' b= construtorDefault VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:20: (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ) int alt7=3; switch ( input.LA(1) ) { case 34: @@ -1208,88 +1205,92 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:22: 'getfield' a= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:22: a= 'getfield' b= campo tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal29=(Token)match(input,34,FOLLOW_34_in_manipulacaoObjetos421); - string_literal29_tree = - (BytecodesAST)adaptor.create(string_literal29) + a=(Token)match(input,34,FOLLOW_34_in_manipulacaoObjetos425); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, string_literal29_tree); + adaptor.addChild(root_0, a_tree); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos427); - a=campo(); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos431); + b=campo(); state._fsp--; - adaptor.addChild(root_0, a.getTree()); + adaptor.addChild(root_0, b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos429); - tipo30=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos433); + tipo29=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo30.getTree()); + adaptor.addChild(root_0, tipo29.getTree()); + + acessarCampo(a, (b!=null?b.classe:null), (b!=null?b.campo:null)); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:22: 'putfield' a= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:22: a= 'putfield' b= campo tipo { root_0 = (BytecodesAST)adaptor.nil(); - string_literal31=(Token)match(input,80,FOLLOW_80_in_manipulacaoObjetos452); - string_literal31_tree = - (BytecodesAST)adaptor.create(string_literal31) + a=(Token)match(input,80,FOLLOW_80_in_manipulacaoObjetos462); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, string_literal31_tree); + adaptor.addChild(root_0, a_tree); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos458); - a=campo(); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos468); + b=campo(); state._fsp--; - adaptor.addChild(root_0, a.getTree()); + adaptor.addChild(root_0, b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos460); - tipo32=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos470); + tipo30=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo32.getTree()); + adaptor.addChild(root_0, tipo30.getTree()); + + acessarCampo(a, (b!=null?b.classe:null), (b!=null?b.campo:null)); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:22: 'invokespecial' b= construtorDefault VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:22: a= 'invokespecial' c= construtorDefault VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal33=(Token)match(input,66,FOLLOW_66_in_manipulacaoObjetos483); - string_literal33_tree = - (BytecodesAST)adaptor.create(string_literal33) + a=(Token)match(input,66,FOLLOW_66_in_manipulacaoObjetos499); + a_tree = + (BytecodesAST)adaptor.create(a) ; - adaptor.addChild(root_0, string_literal33_tree); + adaptor.addChild(root_0, a_tree); - pushFollow(FOLLOW_construtorDefault_in_manipulacaoObjetos489); - b=construtorDefault(); + pushFollow(FOLLOW_construtorDefault_in_manipulacaoObjetos505); + c=construtorDefault(); state._fsp--; - adaptor.addChild(root_0, b.getTree()); + adaptor.addChild(root_0, c.getTree()); - VOID34=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos491); - VOID34_tree = - (BytecodesAST)adaptor.create(VOID34) + VOID31=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos507); + VOID31_tree = + (BytecodesAST)adaptor.create(VOID31) ; - adaptor.addChild(root_0, VOID34_tree); + adaptor.addChild(root_0, VOID31_tree); } @@ -1325,7 +1326,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1333,16 +1334,16 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT35=null; - Token VOID36=null; - AssemblerParser.tipoRef_return tipoRef37 =null; + Token INT32=null; + Token VOID33=null; + AssemblerParser.tipoRef_return tipoRef34 =null; - BytecodesAST INT35_tree=null; - BytecodesAST VOID36_tree=null; + BytecodesAST INT32_tree=null; + BytecodesAST VOID33_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1370,47 +1371,47 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT35=(Token)match(input,INT,FOLLOW_INT_in_tipo522); - INT35_tree = - (BytecodesAST)adaptor.create(INT35) + INT32=(Token)match(input,INT,FOLLOW_INT_in_tipo538); + INT32_tree = + (BytecodesAST)adaptor.create(INT32) ; - adaptor.addChild(root_0, INT35_tree); + adaptor.addChild(root_0, INT32_tree); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_tipo526); - VOID36_tree = - (BytecodesAST)adaptor.create(VOID36) + VOID33=(Token)match(input,VOID,FOLLOW_VOID_in_tipo542); + VOID33_tree = + (BytecodesAST)adaptor.create(VOID33) ; - adaptor.addChild(root_0, VOID36_tree); + adaptor.addChild(root_0, VOID33_tree); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo530); - tipoRef37=tipoRef(); + pushFollow(FOLLOW_tipoRef_in_tipo546); + tipoRef34=tipoRef(); state._fsp--; - adaptor.addChild(root_0, tipoRef37.getTree()); + adaptor.addChild(root_0, tipoRef34.getTree()); } break; @@ -1445,7 +1446,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1458,7 +1459,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { case 36: @@ -1506,12 +1507,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_aritmetica543); + a=(Token)match(input,36,FOLLOW_36_in_aritmetica559); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1523,12 +1524,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,74,FOLLOW_74_in_aritmetica564); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica580); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1540,12 +1541,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_aritmetica585); + a=(Token)match(input,64,FOLLOW_64_in_aritmetica601); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1557,12 +1558,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_aritmetica606); + a=(Token)match(input,45,FOLLOW_45_in_aritmetica622); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1574,12 +1575,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_aritmetica627); + a=(Token)match(input,68,FOLLOW_68_in_aritmetica643); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1591,12 +1592,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_aritmetica648); + a=(Token)match(input,58,FOLLOW_58_in_aritmetica664); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1608,12 +1609,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_aritmetica669); + a=(Token)match(input,65,FOLLOW_65_in_aritmetica685); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1655,7 +1656,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1664,17 +1665,17 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST root_0 = null; Token a=null; - Token INTEIRO38=null; - Token INTEIRO39=null; - Token INTEIRO40=null; + Token INTEIRO35=null; + Token INTEIRO36=null; + Token INTEIRO37=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO38_tree=null; - BytecodesAST INTEIRO39_tree=null; - BytecodesAST INTEIRO40_tree=null; + BytecodesAST INTEIRO35_tree=null; + BytecodesAST INTEIRO36_tree=null; + BytecodesAST INTEIRO37_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { case 44: @@ -1777,12 +1778,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_load706); + a=(Token)match(input,44,FOLLOW_44_in_load722); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1794,12 +1795,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_load720); + a=(Token)match(input,38,FOLLOW_38_in_load736); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1811,12 +1812,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_load735); + a=(Token)match(input,39,FOLLOW_39_in_load751); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1828,12 +1829,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_load750); + a=(Token)match(input,40,FOLLOW_40_in_load766); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1845,12 +1846,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_load765); + a=(Token)match(input,41,FOLLOW_41_in_load781); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1862,12 +1863,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_load779); + a=(Token)match(input,42,FOLLOW_42_in_load795); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1879,12 +1880,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_load793); + a=(Token)match(input,43,FOLLOW_43_in_load809); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1896,12 +1897,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,60,FOLLOW_60_in_load807); + a=(Token)match(input,60,FOLLOW_60_in_load823); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1913,12 +1914,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,61,FOLLOW_61_in_load822); + a=(Token)match(input,61,FOLLOW_61_in_load838); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1930,12 +1931,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_load837); + a=(Token)match(input,62,FOLLOW_62_in_load853); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1947,12 +1948,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_load852); + a=(Token)match(input,63,FOLLOW_63_in_load868); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1964,84 +1965,84 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_load867); + a=(Token)match(input,59,FOLLOW_59_in_load883); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load869); - INTEIRO38_tree = - (BytecodesAST)adaptor.create(INTEIRO38) + INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load885); + INTEIRO35_tree = + (BytecodesAST)adaptor.create(INTEIRO35) ; - adaptor.addChild(root_0, INTEIRO38_tree); + adaptor.addChild(root_0, INTEIRO35_tree); - escreverOpcode(a, INTEIRO38); + escreverOpcode(a, INTEIRO35); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,76,FOLLOW_76_in_load884); + a=(Token)match(input,76,FOLLOW_76_in_load900); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load886); - INTEIRO39_tree = - (BytecodesAST)adaptor.create(INTEIRO39) + INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load902); + INTEIRO36_tree = + (BytecodesAST)adaptor.create(INTEIRO36) ; - adaptor.addChild(root_0, INTEIRO39_tree); + adaptor.addChild(root_0, INTEIRO36_tree); - escreverOpcode(a, INTEIRO39); + escreverOpcode(a, INTEIRO36); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,24,FOLLOW_24_in_load901); + a=(Token)match(input,24,FOLLOW_24_in_load917); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO40=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load903); - INTEIRO40_tree = - (BytecodesAST)adaptor.create(INTEIRO40) + INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load919); + INTEIRO37_tree = + (BytecodesAST)adaptor.create(INTEIRO37) ; - adaptor.addChild(root_0, INTEIRO40_tree); + adaptor.addChild(root_0, INTEIRO37_tree); - escreverOpcode(a, INTEIRO40); + escreverOpcode(a, INTEIRO37); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,25,FOLLOW_25_in_load918); + a=(Token)match(input,25,FOLLOW_25_in_load934); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2053,12 +2054,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,26,FOLLOW_26_in_load933); + a=(Token)match(input,26,FOLLOW_26_in_load949); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2070,12 +2071,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,27,FOLLOW_27_in_load948); + a=(Token)match(input,27,FOLLOW_27_in_load964); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2087,12 +2088,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,28,FOLLOW_28_in_load962); + a=(Token)match(input,28,FOLLOW_28_in_load978); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2134,7 +2135,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2143,15 +2144,15 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST root_0 = null; Token a=null; - Token INTEIRO41=null; - Token INTEIRO42=null; + Token INTEIRO38=null; + Token INTEIRO39=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO41_tree=null; - BytecodesAST INTEIRO42_tree=null; + BytecodesAST INTEIRO38_tree=null; + BytecodesAST INTEIRO39_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt11=10; switch ( input.LA(1) ) { case 70: @@ -2214,12 +2215,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_store986); + a=(Token)match(input,70,FOLLOW_70_in_store1002); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2231,12 +2232,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,71,FOLLOW_71_in_store1002); + a=(Token)match(input,71,FOLLOW_71_in_store1018); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2248,12 +2249,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,72,FOLLOW_72_in_store1018); + a=(Token)match(input,72,FOLLOW_72_in_store1034); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2265,12 +2266,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,73,FOLLOW_73_in_store1034); + a=(Token)match(input,73,FOLLOW_73_in_store1050); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2282,60 +2283,60 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,69,FOLLOW_69_in_store1050); + a=(Token)match(input,69,FOLLOW_69_in_store1066); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO41=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1052); - INTEIRO41_tree = - (BytecodesAST)adaptor.create(INTEIRO41) + INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1068); + INTEIRO38_tree = + (BytecodesAST)adaptor.create(INTEIRO38) ; - adaptor.addChild(root_0, INTEIRO41_tree); + adaptor.addChild(root_0, INTEIRO38_tree); - verificarAumentoMemoriaGlobal(a, INTEIRO41); + verificarAumentoMemoriaGlobal(a, INTEIRO38); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:9: a= 'astore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:9: a= 'astore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,29,FOLLOW_29_in_store1068); + a=(Token)match(input,29,FOLLOW_29_in_store1084); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO42=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1070); - INTEIRO42_tree = - (BytecodesAST)adaptor.create(INTEIRO42) + INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1086); + INTEIRO39_tree = + (BytecodesAST)adaptor.create(INTEIRO39) ; - adaptor.addChild(root_0, INTEIRO42_tree); + adaptor.addChild(root_0, INTEIRO39_tree); - verificarAumentoMemoriaGlobal(a, INTEIRO42); + verificarAumentoMemoriaGlobal(a, INTEIRO39); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:9: a= 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:9: a= 'astore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_store1086); + a=(Token)match(input,30,FOLLOW_30_in_store1102); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2347,12 +2348,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:9: a= 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= 'astore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_store1102); + a=(Token)match(input,31,FOLLOW_31_in_store1118); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2364,12 +2365,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= 'astore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_store1118); + a=(Token)match(input,32,FOLLOW_32_in_store1134); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2381,12 +2382,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:9: a= 'astore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_store1134); + a=(Token)match(input,33,FOLLOW_33_in_store1150); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2428,7 +2429,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2441,7 +2442,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { case 37: @@ -2469,12 +2470,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,37,FOLLOW_37_in_logica1155); + a=(Token)match(input,37,FOLLOW_37_in_logica1171); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2486,12 +2487,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_logica1172); + a=(Token)match(input,67,FOLLOW_67_in_logica1188); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2503,12 +2504,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,75,FOLLOW_75_in_logica1189); + a=(Token)match(input,75,FOLLOW_75_in_logica1205); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2550,7 +2551,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2565,7 +2566,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { case 52: @@ -2643,19 +2644,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_desvio1211); + a=(Token)match(input,52,FOLLOW_52_in_desvio1227); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1217); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1233); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2667,19 +2668,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_desvio1234); + a=(Token)match(input,57,FOLLOW_57_in_desvio1250); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1240); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1256); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2691,19 +2692,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_desvio1257); + a=(Token)match(input,56,FOLLOW_56_in_desvio1273); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1263); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1279); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2715,19 +2716,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_desvio1280); + a=(Token)match(input,53,FOLLOW_53_in_desvio1296); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1286); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1302); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2739,19 +2740,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_desvio1303); + a=(Token)match(input,54,FOLLOW_54_in_desvio1319); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1309); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1325); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2763,19 +2764,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_desvio1326); + a=(Token)match(input,55,FOLLOW_55_in_desvio1342); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1332); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1348); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2787,19 +2788,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_desvio1349); + a=(Token)match(input,46,FOLLOW_46_in_desvio1365); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1355); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1371); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2811,19 +2812,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1372); + a=(Token)match(input,51,FOLLOW_51_in_desvio1388); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1378); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1394); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2835,19 +2836,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1395); + a=(Token)match(input,50,FOLLOW_50_in_desvio1411); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1401); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1417); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2859,19 +2860,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_desvio1418); + a=(Token)match(input,47,FOLLOW_47_in_desvio1434); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1424); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1440); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2883,19 +2884,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_desvio1441); + a=(Token)match(input,48,FOLLOW_48_in_desvio1457); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1447); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1463); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2907,19 +2908,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1464); + a=(Token)match(input,49,FOLLOW_49_in_desvio1480); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1470); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1486); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2931,19 +2932,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_desvio1487); + a=(Token)match(input,35,FOLLOW_35_in_desvio1503); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1493); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1509); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2986,7 +2987,7 @@ public static class construtorDefault_return extends ParserRuleReturnScope { // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:1: construtorDefault returns [List classe] : (cls+= ID '/' )+ INIT '()' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:1: construtorDefault returns [List classe] : (cls+= ID '/' )+ INIT '()' ; public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); retval.start = input.LT(1); @@ -2994,28 +2995,28 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws BytecodesAST root_0 = null; - Token char_literal43=null; - Token INIT44=null; - Token string_literal45=null; + Token char_literal40=null; + Token INIT41=null; + Token string_literal42=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal43_tree=null; - BytecodesAST INIT44_tree=null; - BytecodesAST string_literal45_tree=null; + BytecodesAST char_literal40_tree=null; + BytecodesAST INIT41_tree=null; + BytecodesAST string_literal42_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:6: ( (cls+= ID '/' )+ INIT '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:8: (cls+= ID '/' )+ INIT '()' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:6: ( (cls+= ID '/' )+ INIT '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:8: (cls+= ID '/' )+ INIT '()' { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:8: (cls+= ID '/' )+ int cnt14=0; loop14: do { @@ -3029,9 +3030,9 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1535); + cls=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1551); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3041,11 +3042,11 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws list_cls.add(cls); - char_literal43=(Token)match(input,21,FOLLOW_21_in_construtorDefault1537); - char_literal43_tree = - (BytecodesAST)adaptor.create(char_literal43) + char_literal40=(Token)match(input,21,FOLLOW_21_in_construtorDefault1553); + char_literal40_tree = + (BytecodesAST)adaptor.create(char_literal40) ; - adaptor.addChild(root_0, char_literal43_tree); + adaptor.addChild(root_0, char_literal40_tree); } @@ -3061,18 +3062,18 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws } while (true); - INIT44=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1541); - INIT44_tree = - (BytecodesAST)adaptor.create(INIT44) + INIT41=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1557); + INIT41_tree = + (BytecodesAST)adaptor.create(INIT41) ; - adaptor.addChild(root_0, INIT44_tree); + adaptor.addChild(root_0, INIT41_tree); - string_literal45=(Token)match(input,16,FOLLOW_16_in_construtorDefault1543); - string_literal45_tree = - (BytecodesAST)adaptor.create(string_literal45) + string_literal42=(Token)match(input,16,FOLLOW_16_in_construtorDefault1559); + string_literal42_tree = + (BytecodesAST)adaptor.create(string_literal42) ; - adaptor.addChild(root_0, string_literal45_tree); + adaptor.addChild(root_0, string_literal42_tree); retval.classe = list_cls; @@ -3110,7 +3111,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3119,12 +3120,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal46=null; + Token char_literal43=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal46_tree=null; + BytecodesAST char_literal43_tree=null; BytecodesAST cls_tree=null; @@ -3132,13 +3133,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:8: (cls+= ID '/' )+ int cnt15=0; loop15: do { @@ -3158,9 +3159,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo1583); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo1599); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3170,11 +3171,11 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal46=(Token)match(input,21,FOLLOW_21_in_campo1585); - char_literal46_tree = - (BytecodesAST)adaptor.create(char_literal46) + char_literal43=(Token)match(input,21,FOLLOW_21_in_campo1601); + char_literal43_tree = + (BytecodesAST)adaptor.create(char_literal43) ; - adaptor.addChild(root_0, char_literal46_tree); + adaptor.addChild(root_0, char_literal43_tree); } @@ -3190,7 +3191,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1593); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1609); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3230,7 +3231,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3238,31 +3239,31 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST root_0 = null; - Token char_literal47=null; - Token ID48=null; - Token char_literal49=null; - Token ID50=null; + Token char_literal44=null; + Token ID45=null; + Token char_literal46=null; + Token ID47=null; - BytecodesAST char_literal47_tree=null; - BytecodesAST ID48_tree=null; - BytecodesAST char_literal49_tree=null; - BytecodesAST ID50_tree=null; + BytecodesAST char_literal44_tree=null; + BytecodesAST ID45_tree=null; + BytecodesAST char_literal46_tree=null; + BytecodesAST ID47_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal47=(Token)match(input,23,FOLLOW_23_in_tipoRef1609); - char_literal47_tree = - (BytecodesAST)adaptor.create(char_literal47) + char_literal44=(Token)match(input,23,FOLLOW_23_in_tipoRef1625); + char_literal44_tree = + (BytecodesAST)adaptor.create(char_literal44) ; - adaptor.addChild(root_0, char_literal47_tree); + adaptor.addChild(root_0, char_literal44_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:15: ( ID '/' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:15: ( ID '/' )* loop16: do { int alt16=2; @@ -3281,20 +3282,20 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:16: ID '/' { - ID48=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1612); - ID48_tree = - (BytecodesAST)adaptor.create(ID48) + ID45=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1628); + ID45_tree = + (BytecodesAST)adaptor.create(ID45) ; - adaptor.addChild(root_0, ID48_tree); + adaptor.addChild(root_0, ID45_tree); - char_literal49=(Token)match(input,21,FOLLOW_21_in_tipoRef1614); - char_literal49_tree = - (BytecodesAST)adaptor.create(char_literal49) + char_literal46=(Token)match(input,21,FOLLOW_21_in_tipoRef1630); + char_literal46_tree = + (BytecodesAST)adaptor.create(char_literal46) ; - adaptor.addChild(root_0, char_literal49_tree); + adaptor.addChild(root_0, char_literal46_tree); } @@ -3306,11 +3307,11 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio } while (true); - ID50=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1618); - ID50_tree = - (BytecodesAST)adaptor.create(ID50) + ID47=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1634); + ID47_tree = + (BytecodesAST)adaptor.create(ID47) ; - adaptor.addChild(root_0, ID50_tree); + adaptor.addChild(root_0, ID47_tree); } @@ -3372,97 +3373,97 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio public static final BitSet FOLLOW_18_in_membroClasse398 = new BitSet(new long[]{0x0000000000000080L}); public static final BitSet FOLLOW_ID_in_membroClasse400 = new BitSet(new long[]{0x0000000000804200L}); public static final BitSet FOLLOW_tipo_in_membroClasse402 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_manipulacaoObjetos421 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos427 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos429 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_manipulacaoObjetos452 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos458 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos460 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_manipulacaoObjetos483 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos489 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos491 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo522 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo526 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo530 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_aritmetica543 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica564 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_aritmetica585 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_aritmetica606 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_aritmetica627 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_aritmetica648 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_aritmetica669 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load706 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load720 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load735 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load750 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load765 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load779 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load793 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load807 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load822 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load837 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load852 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load867 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load869 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load884 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load886 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load901 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load903 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load918 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load933 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load948 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_load962 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_store986 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_store1002 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_store1018 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_store1034 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_store1050 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1052 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_store1068 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1070 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_store1086 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_store1102 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_store1118 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_store1134 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_logica1155 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_logica1172 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_logica1189 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1211 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1217 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio1234 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1240 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio1257 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1263 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_desvio1280 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1286 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_desvio1303 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1309 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio1326 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1332 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1349 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1355 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1372 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1378 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1395 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1401 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1418 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1424 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1441 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1447 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1464 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1470 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_desvio1487 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1493 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_construtorDefault1535 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_construtorDefault1537 = new BitSet(new long[]{0x0000000000000180L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault1541 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_construtorDefault1543 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo1583 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_campo1585 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_campo1593 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_tipoRef1609 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1612 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_tipoRef1614 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1618 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_manipulacaoObjetos425 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos431 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos433 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_manipulacaoObjetos462 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos468 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos470 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_manipulacaoObjetos499 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos505 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos507 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo538 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo542 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo546 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_aritmetica559 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica580 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_aritmetica601 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_aritmetica622 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_aritmetica643 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_aritmetica664 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_aritmetica685 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load722 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load736 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load751 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load766 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load781 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load795 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load809 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load823 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load838 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load853 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load868 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load883 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load885 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load900 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load902 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load917 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load919 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load934 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load949 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load964 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_load978 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_store1002 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_store1018 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_store1034 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_store1050 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_store1066 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1068 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_store1084 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_store1102 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_store1118 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_store1134 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_store1150 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_logica1171 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_logica1188 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_logica1205 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1227 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1233 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio1250 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1256 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio1273 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1279 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_desvio1296 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1302 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_desvio1319 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1325 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio1342 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1348 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1365 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1371 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1388 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1394 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1411 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1417 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1434 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1440 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1457 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1463 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1480 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1486 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_desvio1503 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1509 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_construtorDefault1551 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_construtorDefault1553 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault1557 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_construtorDefault1559 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo1599 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_campo1601 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_campo1609 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_tipoRef1625 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1628 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_tipoRef1630 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1634 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 4bc3b93..0a52239 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -23,7 +23,7 @@ tokens { protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected void definirLabel(Token id) throws LabelException; - protected void inserirNovaClasse(Token nomeClasse); + protected void acessarCampo(Token opc, List classe, String campo); } @@ -42,7 +42,6 @@ instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | d definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ -> ^(CLASSE ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) - {inserirNovaClasse($ID);} | '.method' INIT '()' VOID ; @@ -50,9 +49,9 @@ superClasse : '.super' ID -> ^(EXTENDS ID) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) ; -manipulacaoObjetos : 'getfield' a = campo tipo - | 'putfield' a = campo tipo - | 'invokespecial' b = construtorDefault VOID +manipulacaoObjetos : a = 'getfield' b = campo tipo {acessarCampo($a, $b.classe, $b.campo);} + | a = 'putfield' b = campo tipo {acessarCampo($a, $b.classe, $b.campo);} + | a = 'invokespecial' c = construtorDefault VOID ; tipo : INT | VOID | tipoRef ; diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 112d19e..73f2f5c 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -30,7 +30,7 @@ public class Interpretador { - static TabelaSimbolos tabelaSimbolos; + public static TabelaSimbolos tabelaSimbolos; static EscopoGlobal global; diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java index ddc8056..f37ee12 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -10,6 +10,10 @@ public class SimboloClasse extends SimboloComEscopo implements Escopo, Tipo { /** List of all fields and methods */ public Map membros=new LinkedHashMap(); + + protected List constantPool = new ArrayList (); + + protected int proximoElementoConstPool = 0; public SimboloClasse(String nome, Escopo escopoEnvolvente, SimboloClasse superClasse) { @@ -58,6 +62,14 @@ public String obterNome() { return nome; } + public List getConstantPool() { + return constantPool; + } + + public void setConstantPool(List constantPool) { + this.constantPool = constantPool; + } + } diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index a6c0c9c..831cd3f 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-28 11:58:09 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 11:58:24 package br.ufpb.iged.interpretador.symboltable.parser; From ba4c59be87f18470efeb8682b3791182aa1309ae Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sat, 30 Jun 2012 16:57:32 -0300 Subject: [PATCH 26/79] commit --- .../asm/BytecodeAssembler.class | Bin 8005 -> 8386 bytes .../asm/BytecodeAssembler.java | 17 + .../parser/AssemblerLexer.java | 48 +- .../parser/AssemblerParser.java | 611 +++++++++--------- .../iged/interpretador/gramaticas/Assembler.g | 3 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 4 +- .../interpretador/symboltable/parser/Def.java | 6 +- 7 files changed, 355 insertions(+), 334 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 04c1e5cd62cfa08c28a71ce1973181aad9c396cf..d19084e694ea79eeb40acfb3ffdb74c2a92638a6 100644 GIT binary patch delta 903 zcmZuu$xake6g{_wuAZbPsREj6+6G!$hE9~YKt&*FVlN;uO6$Uf6(kbEV3ZhKsNY~7 zD-$;^WX%wR#t=0jG3theArPX*1yP)$B7z8ds~BWKE#5uvy>rezukK|1)5hTQ^@kGx z4w0!rA~cD8f#`7Mvp|^OZ|}5vtjjGO{e2hu2vwrnmvS9R

Q7>swPfFMeS~!!jYS z%erc%yRF`f=@zTM(~sX+CCEM2070$DW>Z-&*6>%uIwAOk24>id{_ zjOjY%z!(k}Di1It;Wh$WyEzGGMi3uCZ0qEWgmK&*W*-F!UK4Qh`ih;WVPF}$*3h7#SHrXjM9a@FshvlokK8SsRj!hGofyZTs!_!4pt2LR2rkC+9QQpU_`uy3 zIP6DM;Hwib&O9JRlEaH2pJYbFybvj3FglP~WbG1ko?{u7aS$swhE>kHwnN`cDl_b_ z*>SSp*Nh={lHeg1Y2svYdlwOWe64ef1SzOtQ4_fwn-kDjk|Fn|O=i=^hdS~&HagPe zWn@3AlzfcX0S5UQu@7Y0!-%6(9tA|qOcd~eJ%Ww@sBDgaC@9XFIaErDK#3vl#N3oG?y)Adt44P; cE3BzzO$}>G41@DZR6vDXz1+2til`W#f0g*1KmY&$ delta 618 zcmYk2$!ior7{%Y$Jv}{JGSiuKk6C7_&1S-c4Cp}#DkLz$0dtagPNR|#jTfUtFa8A{ zr2dE;O`MB}#EpP>@D^MSUc?1aP-9$U^i>lub*Osqz4znQ_h4-8XyNhp?NtB=q|=2Z z7}tCAT`Sc``QsUU#Wxq5g4Vg{QdBz^ou8>qMhmk!e8&%gJs&L!oWVw8sFA@hY`OR? zDE#-HxO`#Z%zO@iu-&{@Sd+va!KlGsuLioBOzVejOX4@r76(%LT6f>{hBJG(>rQI& zCPI7I=Dm6gKZlzLSJ=-+5ARMSd9NddrzqkXN_dVwyuct{qL-79K41ucV_y-zfJ*4| zM6_34tiNLRH3Gb0?k)D?9gg5V>iDoLKOq(!=1jySLa3HVvXB;A68cH`)Kz>!7N2SS z!fG2B;kw4L8DoyYWuz|74yL|?$zoKJF(yDwTq^UeUP)0UNGM5~$|1*=3>B+OR&xA6 znYdVS%zM&v{=~EcPqZM==Dm!Sg~%^o*EEW-&elm^>i5M)5>$Qa3rU%C?y5X zeSJfDoEnc8dp;_!znvaG?jP`@W^q$E$=9e3(}iu?;`E`=(+5=`MP~Qui>h0d;<+X5 SbX($!Szm^UF)2w0(*FR|>v9JG diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index d1ce7ac..f8d6cb7 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -206,6 +206,23 @@ protected void acessarCampo(Token opc, List classe, String campo) { codigo, ip, simboloClasse.getConstantPool().indexOf(simboloVariavel)); + } + + protected void chamarMetodo(Token opc, List classe) { + + escreverOpcode(opc); + + String nomeClasse = (classe.get(classe.size() - 1)); + + SimboloClasse simboloClasse = + (SimboloClasse) Interpretador.tabelaSimbolos.global.resolver(nomeClasse); + + if(!constantPool.contains(simboloClasse)) + + constantPool.add(simboloClasse); + + escreverInteiro(codigo, ip, constantPool.indexOf(simboloClasse)); + } protected static void verificarAumentoTamanhoMemoria(int indice) { diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index 3102ffb..3a6c9db 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 11:58:22 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 16:49:22 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -1597,8 +1597,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:8: '' { match(""); @@ -1620,8 +1620,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:7: 'I' { match('I'); @@ -1641,8 +1641,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:8: 'V' { match('V'); @@ -1662,10 +1662,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1684,7 +1684,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:9: 'null' { match("null"); @@ -1693,7 +1693,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:18: 'NULL' { match("NULL"); @@ -1721,10 +1721,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1733,7 +1733,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: '-' { match('-'); @@ -1743,7 +1743,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1798,8 +1798,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1811,7 +1811,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1861,8 +1861,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: '\\n' { match('\n'); @@ -1882,8 +1882,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index 99b6f19..aae3baf 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 11:58:21 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 16:49:21 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -134,6 +134,7 @@ public TreeAdaptor getTreeAdaptor() { protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected abstract void definirLabel(Token id) throws LabelException; protected abstract void acessarCampo(Token opc, List classe, String campo); + protected abstract void chamarMetodo(Token opc, List classe); @@ -144,7 +145,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:1: programa : ( comando )* ; public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -157,13 +158,13 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: ( comando )* loop1: do { int alt1=2; @@ -176,7 +177,7 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: comando { pushFollow(FOLLOW_comando_in_programa69); comando1=comando(); @@ -225,7 +226,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:1: comando : ( label instrucao | instrucao ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:1: comando : ( label instrucao | instrucao ) ; public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -242,13 +243,13 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); @@ -267,7 +268,7 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:12: label instrucao { pushFollow(FOLLOW_label_in_comando89); label2=label(); @@ -286,7 +287,7 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:30: instrucao { pushFollow(FOLLOW_instrucao_in_comando95); instrucao4=instrucao(); @@ -332,7 +333,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:1: label : a= ID ':' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:1: label : a= ID ':' ; public final AssemblerParser.label_return label() throws RecognitionException, LabelException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -347,8 +348,8 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: a= ID ':' { root_0 = (BytecodesAST)adaptor.nil(); @@ -400,7 +401,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -431,13 +432,13 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? int alt3=11; switch ( input.LA(1) ) { case 17: @@ -543,7 +544,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:13: definicaoClasse { pushFollow(FOLLOW_definicaoClasse_in_instrucao129); definicaoClasse6=definicaoClasse(); @@ -555,7 +556,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:31: manipulacaoObjetos { pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao133); manipulacaoObjetos7=manipulacaoObjetos(); @@ -567,7 +568,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:52: aritmetica { pushFollow(FOLLOW_aritmetica_in_instrucao137); aritmetica8=aritmetica(); @@ -579,7 +580,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:65: load { pushFollow(FOLLOW_load_in_instrucao141); load9=load(); @@ -591,7 +592,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:72: store { pushFollow(FOLLOW_store_in_instrucao145); store10=store(); @@ -603,7 +604,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:80: desvio { pushFollow(FOLLOW_desvio_in_instrucao149); desvio11=desvio(); @@ -615,7 +616,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:89: logica { pushFollow(FOLLOW_logica_in_instrucao153); logica12=logica(); @@ -627,7 +628,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:21: 'nop' { string_literal13=(Token)match(input,77,FOLLOW_77_in_instrucao176); string_literal13_tree = @@ -639,7 +640,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:17: a= 'pop' { a=(Token)match(input,78,FOLLOW_78_in_instrucao198); a_tree = @@ -653,7 +654,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:17: a= 'pop2' { a=(Token)match(input,79,FOLLOW_79_in_instrucao222); a_tree = @@ -708,7 +709,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -741,7 +742,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) int alt6=2; int LA6_0 = input.LA(1); @@ -760,7 +761,7 @@ else if ( (LA6_0==19) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { string_literal15=(Token)match(input,17,FOLLOW_17_in_definicaoClasse264); stream_17.add(string_literal15); @@ -774,7 +775,7 @@ else if ( (LA6_0==19) ) { stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); @@ -783,7 +784,7 @@ else if ( (LA6_0==19) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:42: superClasse { pushFollow(FOLLOW_superClasse_in_definicaoClasse270); superClasse18=superClasse(); @@ -798,7 +799,7 @@ else if ( (LA6_0==19) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:55: ( membroClasse )+ int cnt5=0; loop5: do { @@ -812,7 +813,7 @@ else if ( (LA6_0==19) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:55: membroClasse { pushFollow(FOLLOW_membroClasse_in_definicaoClasse273); membroClasse19=membroClasse(); @@ -845,9 +846,9 @@ else if ( (LA6_0==19) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 44:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 45:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -858,14 +859,14 @@ else if ( (LA6_0==19) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:34: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:34: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -895,7 +896,7 @@ else if ( (LA6_0==19) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:19: '.method' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:19: '.method' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); @@ -961,7 +962,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -978,8 +979,8 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:15: '.super' ID { string_literal24=(Token)match(input,20,FOLLOW_20_in_superClasse379); stream_20.add(string_literal24); @@ -1000,9 +1001,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 48:27: -> ^( EXTENDS ID ) + // 49:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1052,7 +1053,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1071,8 +1072,8 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleTokenStream stream_18=new RewriteRuleTokenStream(adaptor,"token 18"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:16: '.field' ID tipo { string_literal26=(Token)match(input,18,FOLLOW_18_in_membroClasse398); stream_18.add(string_literal26); @@ -1090,7 +1091,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo28.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1100,9 +1101,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 50:33: -> ^( FIELD_DECL ID tipo ) + // 51:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1154,7 +1155,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1177,7 +1178,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST VOID31_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:20: (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:20: (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ) int alt7=3; switch ( input.LA(1) ) { case 34: @@ -1205,7 +1206,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:22: a= 'getfield' b= campo tipo { root_0 = (BytecodesAST)adaptor.nil(); @@ -1236,7 +1237,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:22: a= 'putfield' b= campo tipo { root_0 = (BytecodesAST)adaptor.nil(); @@ -1267,7 +1268,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:22: a= 'invokespecial' c= construtorDefault VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:22: a= 'invokespecial' c= construtorDefault VOID { root_0 = (BytecodesAST)adaptor.nil(); @@ -1293,6 +1294,8 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro adaptor.addChild(root_0, VOID31_tree); + chamarMetodo(a, (c!=null?c.classe:null)); + } break; @@ -1326,7 +1329,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1343,7 +1346,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST VOID33_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1371,12 +1374,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT32=(Token)match(input,INT,FOLLOW_INT_in_tipo538); + INT32=(Token)match(input,INT,FOLLOW_INT_in_tipo539); INT32_tree = (BytecodesAST)adaptor.create(INT32) ; @@ -1386,12 +1389,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID33=(Token)match(input,VOID,FOLLOW_VOID_in_tipo542); + VOID33=(Token)match(input,VOID,FOLLOW_VOID_in_tipo543); VOID33_tree = (BytecodesAST)adaptor.create(VOID33) ; @@ -1401,12 +1404,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo546); + pushFollow(FOLLOW_tipoRef_in_tipo547); tipoRef34=tipoRef(); state._fsp--; @@ -1446,7 +1449,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1459,7 +1462,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { case 36: @@ -1507,12 +1510,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_aritmetica559); + a=(Token)match(input,36,FOLLOW_36_in_aritmetica560); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1524,12 +1527,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,74,FOLLOW_74_in_aritmetica580); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica581); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1541,12 +1544,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_aritmetica601); + a=(Token)match(input,64,FOLLOW_64_in_aritmetica602); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1558,12 +1561,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_aritmetica622); + a=(Token)match(input,45,FOLLOW_45_in_aritmetica623); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1575,12 +1578,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_aritmetica643); + a=(Token)match(input,68,FOLLOW_68_in_aritmetica644); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1592,12 +1595,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_aritmetica664); + a=(Token)match(input,58,FOLLOW_58_in_aritmetica665); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1609,12 +1612,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_aritmetica685); + a=(Token)match(input,65,FOLLOW_65_in_aritmetica686); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1656,7 +1659,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1675,7 +1678,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST INTEIRO37_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { case 44: @@ -1778,12 +1781,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_load722); + a=(Token)match(input,44,FOLLOW_44_in_load723); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1795,12 +1798,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_load736); + a=(Token)match(input,38,FOLLOW_38_in_load737); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1812,12 +1815,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_load751); + a=(Token)match(input,39,FOLLOW_39_in_load752); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1829,12 +1832,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_load766); + a=(Token)match(input,40,FOLLOW_40_in_load767); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1846,12 +1849,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_load781); + a=(Token)match(input,41,FOLLOW_41_in_load782); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1863,12 +1866,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_load795); + a=(Token)match(input,42,FOLLOW_42_in_load796); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1880,12 +1883,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_load809); + a=(Token)match(input,43,FOLLOW_43_in_load810); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1897,12 +1900,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,60,FOLLOW_60_in_load823); + a=(Token)match(input,60,FOLLOW_60_in_load824); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1914,12 +1917,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,61,FOLLOW_61_in_load838); + a=(Token)match(input,61,FOLLOW_61_in_load839); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1931,12 +1934,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_load853); + a=(Token)match(input,62,FOLLOW_62_in_load854); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1948,12 +1951,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_load868); + a=(Token)match(input,63,FOLLOW_63_in_load869); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1965,19 +1968,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_load883); + a=(Token)match(input,59,FOLLOW_59_in_load884); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load885); + INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load886); INTEIRO35_tree = (BytecodesAST)adaptor.create(INTEIRO35) ; @@ -1989,19 +1992,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,76,FOLLOW_76_in_load900); + a=(Token)match(input,76,FOLLOW_76_in_load901); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load902); + INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load903); INTEIRO36_tree = (BytecodesAST)adaptor.create(INTEIRO36) ; @@ -2013,19 +2016,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,24,FOLLOW_24_in_load917); + a=(Token)match(input,24,FOLLOW_24_in_load918); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load919); + INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load920); INTEIRO37_tree = (BytecodesAST)adaptor.create(INTEIRO37) ; @@ -2037,12 +2040,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,25,FOLLOW_25_in_load934); + a=(Token)match(input,25,FOLLOW_25_in_load935); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2054,12 +2057,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,26,FOLLOW_26_in_load949); + a=(Token)match(input,26,FOLLOW_26_in_load950); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2071,12 +2074,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,27,FOLLOW_27_in_load964); + a=(Token)match(input,27,FOLLOW_27_in_load965); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2088,12 +2091,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,28,FOLLOW_28_in_load978); + a=(Token)match(input,28,FOLLOW_28_in_load979); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2135,7 +2138,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2152,7 +2155,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST INTEIRO39_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt11=10; switch ( input.LA(1) ) { case 70: @@ -2215,12 +2218,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_store1002); + a=(Token)match(input,70,FOLLOW_70_in_store1003); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2232,12 +2235,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,71,FOLLOW_71_in_store1018); + a=(Token)match(input,71,FOLLOW_71_in_store1019); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2249,12 +2252,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,72,FOLLOW_72_in_store1034); + a=(Token)match(input,72,FOLLOW_72_in_store1035); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2266,12 +2269,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,73,FOLLOW_73_in_store1050); + a=(Token)match(input,73,FOLLOW_73_in_store1051); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2283,19 +2286,19 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,69,FOLLOW_69_in_store1066); + a=(Token)match(input,69,FOLLOW_69_in_store1067); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1068); + INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1069); INTEIRO38_tree = (BytecodesAST)adaptor.create(INTEIRO38) ; @@ -2307,19 +2310,19 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:9: a= 'astore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:9: a= 'astore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,29,FOLLOW_29_in_store1084); + a=(Token)match(input,29,FOLLOW_29_in_store1085); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1086); + INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1087); INTEIRO39_tree = (BytecodesAST)adaptor.create(INTEIRO39) ; @@ -2331,12 +2334,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:9: a= 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= 'astore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_store1102); + a=(Token)match(input,30,FOLLOW_30_in_store1103); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2348,12 +2351,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= 'astore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_store1118); + a=(Token)match(input,31,FOLLOW_31_in_store1119); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2365,12 +2368,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:9: a= 'astore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_store1134); + a=(Token)match(input,32,FOLLOW_32_in_store1135); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2382,12 +2385,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:9: a= 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: a= 'astore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_store1150); + a=(Token)match(input,33,FOLLOW_33_in_store1151); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2429,7 +2432,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2442,7 +2445,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { case 37: @@ -2470,12 +2473,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,37,FOLLOW_37_in_logica1171); + a=(Token)match(input,37,FOLLOW_37_in_logica1172); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2487,12 +2490,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_logica1188); + a=(Token)match(input,67,FOLLOW_67_in_logica1189); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2504,12 +2507,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,75,FOLLOW_75_in_logica1205); + a=(Token)match(input,75,FOLLOW_75_in_logica1206); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2551,7 +2554,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2566,7 +2569,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { case 52: @@ -2644,19 +2647,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_desvio1227); + a=(Token)match(input,52,FOLLOW_52_in_desvio1228); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1233); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1234); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2668,19 +2671,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_desvio1250); + a=(Token)match(input,57,FOLLOW_57_in_desvio1251); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1256); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1257); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2692,19 +2695,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_desvio1273); + a=(Token)match(input,56,FOLLOW_56_in_desvio1274); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1279); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1280); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2716,19 +2719,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_desvio1296); + a=(Token)match(input,53,FOLLOW_53_in_desvio1297); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1302); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1303); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2740,19 +2743,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_desvio1319); + a=(Token)match(input,54,FOLLOW_54_in_desvio1320); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1325); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1326); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2764,19 +2767,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_desvio1342); + a=(Token)match(input,55,FOLLOW_55_in_desvio1343); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1348); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1349); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2788,19 +2791,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_desvio1365); + a=(Token)match(input,46,FOLLOW_46_in_desvio1366); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1371); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1372); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2812,19 +2815,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1388); + a=(Token)match(input,51,FOLLOW_51_in_desvio1389); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1394); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1395); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2836,19 +2839,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1411); + a=(Token)match(input,50,FOLLOW_50_in_desvio1412); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1417); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1418); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2860,19 +2863,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_desvio1434); + a=(Token)match(input,47,FOLLOW_47_in_desvio1435); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1440); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1441); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2884,19 +2887,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_desvio1457); + a=(Token)match(input,48,FOLLOW_48_in_desvio1458); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1463); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1464); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2908,19 +2911,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1480); + a=(Token)match(input,49,FOLLOW_49_in_desvio1481); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1486); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1487); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2932,19 +2935,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_desvio1503); + a=(Token)match(input,35,FOLLOW_35_in_desvio1504); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1509); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1510); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2987,7 +2990,7 @@ public static class construtorDefault_return extends ParserRuleReturnScope { // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:1: construtorDefault returns [List classe] : (cls+= ID '/' )+ INIT '()' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:1: construtorDefault returns [List classe] : (cls+= ID '/' )+ INIT '()' ; public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); retval.start = input.LT(1); @@ -3010,13 +3013,13 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:6: ( (cls+= ID '/' )+ INIT '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:8: (cls+= ID '/' )+ INIT '()' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:6: ( (cls+= ID '/' )+ INIT '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (cls+= ID '/' )+ INIT '()' { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (cls+= ID '/' )+ int cnt14=0; loop14: do { @@ -3030,9 +3033,9 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1551); + cls=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1552); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3042,7 +3045,7 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws list_cls.add(cls); - char_literal40=(Token)match(input,21,FOLLOW_21_in_construtorDefault1553); + char_literal40=(Token)match(input,21,FOLLOW_21_in_construtorDefault1554); char_literal40_tree = (BytecodesAST)adaptor.create(char_literal40) ; @@ -3062,14 +3065,14 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws } while (true); - INIT41=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1557); + INIT41=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1558); INIT41_tree = (BytecodesAST)adaptor.create(INIT41) ; adaptor.addChild(root_0, INIT41_tree); - string_literal42=(Token)match(input,16,FOLLOW_16_in_construtorDefault1559); + string_literal42=(Token)match(input,16,FOLLOW_16_in_construtorDefault1560); string_literal42_tree = (BytecodesAST)adaptor.create(string_literal42) ; @@ -3111,7 +3114,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3133,13 +3136,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:8: (cls+= ID '/' )+ int cnt15=0; loop15: do { @@ -3159,9 +3162,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo1599); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo1600); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3171,7 +3174,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal43=(Token)match(input,21,FOLLOW_21_in_campo1601); + char_literal43=(Token)match(input,21,FOLLOW_21_in_campo1602); char_literal43_tree = (BytecodesAST)adaptor.create(char_literal43) ; @@ -3191,7 +3194,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1609); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1610); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3231,7 +3234,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3250,20 +3253,20 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST ID47_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal44=(Token)match(input,23,FOLLOW_23_in_tipoRef1625); + char_literal44=(Token)match(input,23,FOLLOW_23_in_tipoRef1626); char_literal44_tree = (BytecodesAST)adaptor.create(char_literal44) ; adaptor.addChild(root_0, char_literal44_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:15: ( ID '/' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:15: ( ID '/' )* loop16: do { int alt16=2; @@ -3282,16 +3285,16 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:16: ID '/' { - ID45=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1628); + ID45=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1629); ID45_tree = (BytecodesAST)adaptor.create(ID45) ; adaptor.addChild(root_0, ID45_tree); - char_literal46=(Token)match(input,21,FOLLOW_21_in_tipoRef1630); + char_literal46=(Token)match(input,21,FOLLOW_21_in_tipoRef1631); char_literal46_tree = (BytecodesAST)adaptor.create(char_literal46) ; @@ -3307,7 +3310,7 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio } while (true); - ID47=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1634); + ID47=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1635); ID47_tree = (BytecodesAST)adaptor.create(ID47) ; @@ -3382,88 +3385,88 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio public static final BitSet FOLLOW_66_in_manipulacaoObjetos499 = new BitSet(new long[]{0x0000000000000080L}); public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos505 = new BitSet(new long[]{0x0000000000004000L}); public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos507 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo538 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo542 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo546 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_aritmetica559 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica580 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_aritmetica601 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_aritmetica622 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_aritmetica643 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_aritmetica664 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_aritmetica685 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load722 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load736 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load751 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load766 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load781 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load795 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load809 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load823 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load838 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load853 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load868 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load883 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load885 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load900 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load902 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load917 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load919 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load934 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load949 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load964 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_load978 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_store1002 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_store1018 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_store1034 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_store1050 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_store1066 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1068 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_store1084 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1086 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_store1102 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_store1118 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_store1134 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_store1150 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_logica1171 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_logica1188 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_logica1205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1227 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1233 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio1250 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1256 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio1273 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1279 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_desvio1296 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1302 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_desvio1319 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1325 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio1342 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1348 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1365 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1371 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1388 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1394 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1411 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1417 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1434 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1440 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1457 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1463 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1480 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1486 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_desvio1503 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1509 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_construtorDefault1551 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_construtorDefault1553 = new BitSet(new long[]{0x0000000000000180L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault1557 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_construtorDefault1559 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo1599 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_campo1601 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_campo1609 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_tipoRef1625 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1628 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_tipoRef1630 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1634 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo539 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo543 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo547 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_aritmetica560 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica581 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_aritmetica602 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_aritmetica623 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_aritmetica644 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_aritmetica665 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_aritmetica686 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load723 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load737 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load752 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load767 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load782 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load796 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load810 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load824 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load854 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load869 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load884 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load886 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load901 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load903 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load918 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load920 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load935 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load950 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load965 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_load979 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_store1003 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_store1019 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_store1035 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_store1051 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_store1067 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1069 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_store1085 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1087 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_store1103 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_store1119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_store1135 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_store1151 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_logica1172 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_logica1189 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_logica1206 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1228 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1234 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio1251 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1257 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio1274 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1280 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_desvio1297 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1303 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_desvio1320 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1326 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio1343 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1349 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1366 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1372 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1389 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1395 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1412 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1418 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1435 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1441 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1458 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1464 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1481 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1487 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_desvio1504 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1510 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_construtorDefault1552 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_construtorDefault1554 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault1558 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_construtorDefault1560 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo1600 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_campo1602 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_campo1610 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_tipoRef1626 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1629 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_tipoRef1631 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1635 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 0a52239..a5d740c 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -24,6 +24,7 @@ tokens { protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected void definirLabel(Token id) throws LabelException; protected void acessarCampo(Token opc, List classe, String campo); + protected void chamarMetodo(Token opc, List classe); } @@ -51,7 +52,7 @@ membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) ; manipulacaoObjetos : a = 'getfield' b = campo tipo {acessarCampo($a, $b.classe, $b.campo);} | a = 'putfield' b = campo tipo {acessarCampo($a, $b.classe, $b.campo);} - | a = 'invokespecial' c = construtorDefault VOID + | a = 'invokespecial' c = construtorDefault VOID {chamarMetodo($a, $c.classe);} ; tipo : INT | VOID | tipoRef ; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index e1a3fe4..846498f 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -30,7 +30,7 @@ bottomup : saiDaClasse; entraNaClasse : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) { - System.out.println("line "+$nome.getLine()+ + System.out.println("linha "+$nome.getLine()+ ": def class "+$nome.text); if ( $sup!=null ) $sup.escopo = escopoAtual; @@ -43,7 +43,7 @@ entraNaClasse declaracaoVariavel : ^(FIELD_DECL ID tipo =.) { - System.out.println("line "+$ID.getLine()+": def "+$ID.text); + System.out.println("linha "+$ID.getLine()+": def "+$ID.text); SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo($tipo.getText()); SimboloVariavel variavel = new SimboloVariavel($ID.text,tipoPrimitivo); escopoAtual.definir(variavel); diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index 831cd3f..d49837b 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 11:58:24 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 16:49:24 package br.ufpb.iged.interpretador.symboltable.parser; @@ -214,7 +214,7 @@ public final void entraNaClasse() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("line "+nome.getLine()+ + System.out.println("linha "+nome.getLine()+ ": def class "+(nome!=null?nome.getText():null)); if ( sup!=null ) sup.escopo = escopoAtual; @@ -263,7 +263,7 @@ public final void declaracaoVariavel() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("line "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); + System.out.println("linha "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo(tipo.getText()); SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),tipoPrimitivo); escopoAtual.definir(variavel); From dc90bf33789611af76cc7fbf64f8adf72a12a688 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sat, 30 Jun 2012 17:41:35 -0300 Subject: [PATCH 27/79] commit --- Main.class | 8 ++++++++ .../asm/BytecodeAssembler.class | Bin 8386 -> 8417 bytes .../asm/BytecodeAssembler.java | 8 ++++---- .../parser/AssemblerLexer.java | 2 +- .../parser/AssemblerParser.java | 12 ++++++------ .../iged/interpretador/gramaticas/Assembler.g | 8 ++++---- .../interpretador/symboltable/parser/Def.java | 2 +- 7 files changed, 24 insertions(+), 16 deletions(-) diff --git a/Main.class b/Main.class index 32ffc57..2fa6289 100755 --- a/Main.class +++ b/Main.class @@ -49,4 +49,12 @@ L2: ineg ldc -23 iadd ifeq L1 + aload_0 + invokespecial Main/() V + ldc 5 + putfield Main/abc I + iconst_3 + putfield Main/xyz I + getfield Main/abc I + \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index d19084e694ea79eeb40acfb3ffdb74c2a92638a6..dd83f90ea1e8d4f6a6715c74087488c3186cf262 100644 GIT binary patch delta 407 zcmaKn&nts*9LHbJ_H5Fl*j%t@2U&_|TFFJ0np&fFM7FuCW;NSE*&GNZ`2#$P3ui~Q zQY#B1TB00D!qNPi`^wj|JV&?p=hNr?e!o7Yz;oartw<3)qiFh`y)D15bjuDcJR4t# z`*PV-#urY_XZ`xFy?30#G6pEXh`$U2R4!0&nI8lsk+2zlWF}H)@iYEV5t$(*Ik{Sig4P*D*E3e=dSTF zm3w-)6VE&_$fKxyBEpLSJW!7?fukmHlsd4=uz_hs)8lHZ^LPJ8qaf7?<~LNo`~wf& BU-SR~ delta 467 zcmZ{fy-Px27{z~AuSpnWElL(rNks}mNK=FwL4#9yor1U!h$#|f4Mn-M2VQFIPl!Me zgrqVkDhisSi0A_v`nKKZ^-9uE@ASNfbI$X7?gGWYR@@?uY6*+mI;GC5-h`TrddE^T zv1By6Y3Y_bTp?YbOT`l2P;53eQ2qb%X=WUT2@X&>Vww|{IAfJlGMv*X`bMg)D8gBJns6*5 z>C+R<81(6xVT{;W*!rbeuzG}M0s?=B&s;o8!bwZ=adv!vYQVpx(`oXdw WmGPTNnz<0vYpe_MHnO=^xBLxRHE|UH diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index f8d6cb7..41d224f 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -179,11 +179,11 @@ protected int obterEndereco(String id) throws LabelException { } - protected void acessarCampo(Token opc, List classe, String campo) { + protected void acessarCampo(Token opc, List classe, String campo) { escreverOpcode(opc); - String nomeClasse = (classe.get(classe.size() - 1)); + String nomeClasse = (classe.get(classe.size() - 1)).getText(); SimboloClasse simboloClasse = (SimboloClasse) Interpretador.tabelaSimbolos.global.resolver(nomeClasse); @@ -208,11 +208,11 @@ protected void acessarCampo(Token opc, List classe, String campo) { } - protected void chamarMetodo(Token opc, List classe) { + protected void chamarMetodo(Token opc, List classe) { escreverOpcode(opc); - String nomeClasse = (classe.get(classe.size() - 1)); + String nomeClasse = (classe.get(classe.size() - 1)).getText(); SimboloClasse simboloClasse = (SimboloClasse) Interpretador.tabelaSimbolos.global.resolver(nomeClasse); diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index 3a6c9db..e9244b9 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 16:49:22 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 17:20:13 package br.ufpb.iged.interpretador.bytecodeassembler.parser; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index aae3baf..facf76c 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 16:49:21 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 17:20:12 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -133,8 +133,8 @@ public TreeAdaptor getTreeAdaptor() { protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected abstract void definirLabel(Token id) throws LabelException; - protected abstract void acessarCampo(Token opc, List classe, String campo); - protected abstract void chamarMetodo(Token opc, List classe); + protected abstract void acessarCampo(Token opc, List classe, String campo); + protected abstract void chamarMetodo(Token opc, List classe); @@ -1091,7 +1091,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo28.getTree()); // AST REWRITE - // elements: ID, tipo + // elements: tipo, ID // token labels: // rule labels: retval // token list labels: @@ -3010,7 +3010,7 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws BytecodesAST cls_tree=null; - retval.classe = new ArrayList(); + retval.classe = new ArrayList(); try { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:6: ( (cls+= ID '/' )+ INIT '()' ) @@ -3132,7 +3132,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST cls_tree=null; - retval.classe = new ArrayList(); + retval.classe = new ArrayList(); retval.campo =""; try { diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index a5d740c..0a93658 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -23,8 +23,8 @@ tokens { protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected void definirLabel(Token id) throws LabelException; - protected void acessarCampo(Token opc, List classe, String campo); - protected void chamarMetodo(Token opc, List classe); + protected void acessarCampo(Token opc, List classe, String campo); + protected void chamarMetodo(Token opc, List classe); } @@ -120,14 +120,14 @@ desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} construtorDefault returns [List classe] @init { - $classe = new ArrayList(); + $classe = new ArrayList(); } : (cls += ID '/')+ INIT '()' {$classe = $cls;} ; campo returns [List classe, String campo] @init { - $classe = new ArrayList(); + $classe = new ArrayList(); $campo=""; } : (cls += ID '/')+ cmp = ID {$classe = $cls; $campo = $cmp.text;} diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index d49837b..8c37a40 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 16:49:24 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 17:20:15 package br.ufpb.iged.interpretador.symboltable.parser; From a8928419df8f17c3464e4f92cdfffa13427d6635 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sat, 30 Jun 2012 18:40:00 -0300 Subject: [PATCH 28/79] commit --- Main.class | 10 +---- instropcode_set.txt | 10 ++++- .../parser/AssemblerLexer.java | 2 +- .../parser/AssemblerParser.java | 6 +-- .../ufpb/iged/interpretador/gramaticas/Def.g | 30 +++++++++----- .../ufpb/iged/interpretador/gramaticas/Ref.g | 32 +++++++-------- .../interpretador/symboltable/parser/Def.java | 41 ++++++++++--------- 7 files changed, 71 insertions(+), 60 deletions(-) diff --git a/Main.class b/Main.class index 2fa6289..2724e01 100755 --- a/Main.class +++ b/Main.class @@ -49,12 +49,4 @@ L2: ineg ldc -23 iadd ifeq L1 - aload_0 - invokespecial Main/() V - ldc 5 - putfield Main/abc I - iconst_3 - putfield Main/xyz I - getfield Main/abc I - - \ No newline at end of file + \ No newline at end of file diff --git a/instropcode_set.txt b/instropcode_set.txt index 9bf739a..b26be78 100755 --- a/instropcode_set.txt +++ b/instropcode_set.txt @@ -79,4 +79,12 @@ return ; Return to the caller .end method getfield -putfield \ No newline at end of file +putfield + +aload_0 + invokespecial Main/() V + ldc 5 + putfield Main/abc I + iconst_3 + putfield Main/xyz I + getfield Main/abc I \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index e9244b9..468ba18 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 17:20:13 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 17:55:41 package br.ufpb.iged.interpretador.bytecodeassembler.parser; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index facf76c..d6d0d48 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 17:20:12 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 17:55:40 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -836,7 +836,7 @@ else if ( (LA6_0==19) ) { // AST REWRITE - // elements: ID, superClasse, membroClasse + // elements: ID, membroClasse, superClasse // token labels: // rule labels: retval // token list labels: @@ -1091,7 +1091,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo28.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 846498f..f588a1a 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -30,24 +30,32 @@ bottomup : saiDaClasse; entraNaClasse : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) { - System.out.println("linha "+$nome.getLine()+ - ": def class "+$nome.text); - if ( $sup!=null ) - $sup.escopo = escopoAtual; - SimboloClasse classe = new SimboloClasse($nome.text,escopoAtual,null); - escopoAtual.definir(classe); - escopoAtual = classe; + System.out.println("linha "+$nome.getLine()+ + ": def class "+$nome.text); + if ( $sup!=null ) + $sup.escopo = escopoAtual; + SimboloClasse classe = new SimboloClasse($nome.text,escopoAtual,null); + classe.def = $nome; + $nome.simbolo = classe; + escopoAtual.definir(classe); + escopoAtual = classe; } ; declaracaoVariavel : ^(FIELD_DECL ID tipo =.) { - System.out.println("linha "+$ID.getLine()+": def "+$ID.text); - SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo($tipo.getText()); - SimboloVariavel variavel = new SimboloVariavel($ID.text,tipoPrimitivo); - escopoAtual.definir(variavel); + System.out.println("linha "+$ID.getLine()+": def "+$ID.text); + $tipo.escopo = escopoAtual; + SimboloVariavel variavel = new SimboloVariavel($ID.text,null); + variavel.def = $ID; + $ID.simbolo = variavel; + escopoAtual.definir(variavel); } ; saiDaClasse : CLASSE + { + System.out.println("Saindo da classe.. membros: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 11e0cc1..3217e0b 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -21,27 +21,27 @@ topdown ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=ID))? ^(MEMBRO_CLASSE .*)) + : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) { - if ( $sup!=null ) { - // look up superclass (if any) - $sup.simbolo = $sup.escopo.resolver($sup.text); - ((SimboloClasse)$nome.simbolo).superClasse = - (SimboloClasse)$sup.simbolo; // set superclass - System.out.println("line "+$nome.getLine()+": set "+$nome.text+ - " super to "+((SimboloClasse)$nome.simbolo).superClasse.nome); - } - else { - System.out.println("line "+$nome.getLine()+": set "+$nome.text); - } + if ( $sup!=null ) { + // look up superclass (if any) + $sup.simbolo = $sup.escopo.resolver($sup.text); + ((SimboloClasse)$nome.simbolo).superClasse = + (SimboloClasse)$sup.simbolo; + System.out.println("linha "+$nome.getLine()+": set "+$nome.text+ + " super to "+((SimboloClasse)$nome.simbolo).superClasse.nome); + } + else { + System.out.println("linha "+$nome.getLine()+": set "+$nome.text); + } } ; declaracaoVariavel // global, parameter, or local variable - : ^((FIELD_DECL) tipo ID .?) + : ^(FIELD_DECL ID tipo =.) { - $ID.simbolo.tipo = $tipo.tsym; // set return type of variable - System.out.println("line "+$ID.getLine()+": set var type "+$ID.simbolo); + $ID.simbolo.tipo = $tipo.tsym; // set return type of variable + System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); } ; @@ -51,6 +51,6 @@ tipo returns [Tipo tsym] $start.simbolo = $start.escopo.resolver($start.getText()); $tsym = (Tipo)$start.simbolo; // return Type from this rule } - : 'int' + : 'I' | ID // struct name ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index 8c37a40..c6f00f0 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 17:20:15 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 17:55:43 package br.ufpb.iged.interpretador.symboltable.parser; @@ -9,7 +9,6 @@ import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; import br.ufpb.iged.interpretador.symboltable.classes.Escopo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; -import br.ufpb.iged.interpretador.symboltable.classes.SimboloTipoPrimitvo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; @@ -214,13 +213,15 @@ public final void entraNaClasse() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("linha "+nome.getLine()+ - ": def class "+(nome!=null?nome.getText():null)); - if ( sup!=null ) - sup.escopo = escopoAtual; - SimboloClasse classe = new SimboloClasse((nome!=null?nome.getText():null),escopoAtual,null); - escopoAtual.definir(classe); - escopoAtual = classe; + System.out.println("linha "+nome.getLine()+ + ": def class "+(nome!=null?nome.getText():null)); + if ( sup!=null ) + sup.escopo = escopoAtual; + SimboloClasse classe = new SimboloClasse((nome!=null?nome.getText():null),escopoAtual,null); + classe.def = nome; + nome.simbolo = classe; + escopoAtual.definir(classe); + escopoAtual = classe; } } @@ -241,14 +242,14 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:43:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:9: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:9: ^( FIELD_DECL ID tipo= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel149); if (state.failed) return ; @@ -263,10 +264,12 @@ public final void declaracaoVariavel() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("linha "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); - SimboloTipoPrimitvo tipoPrimitivo = new SimboloTipoPrimitvo(tipo.getText()); - SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),tipoPrimitivo); - escopoAtual.definir(variavel); + System.out.println("linha "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); + tipo.escopo = escopoAtual; + SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),null); + variavel.def = ID1; + ID1.simbolo = variavel; + escopoAtual.definir(variavel); } } @@ -287,11 +290,11 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:1: saiDaClasse : CLASSE ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:1: saiDaClasse : CLASSE ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:13: ( CLASSE ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:15: CLASSE + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:13: ( CLASSE ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:15: CLASSE { match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse179); if (state.failed) return ; From 609e042ecd00776f5afbc2549f8baefdf4b45ded Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sat, 30 Jun 2012 18:55:43 -0300 Subject: [PATCH 29/79] commit --- build.xml | 2 + .../parser/AssemblerLexer.java | 2 +- .../parser/AssemblerParser.java | 6 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 8 +- .../interpretador/symboltable/parser/Def.java | 7 +- .../interpretador/symboltable/parser/Ref.java | 323 ++++++++++++++++++ .../symboltable/parser/Ref.tokens | 6 + 7 files changed, 345 insertions(+), 9 deletions(-) create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java create mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens diff --git a/build.xml b/build.xml index c21c70b..12e5ec9 100755 --- a/build.xml +++ b/build.xml @@ -12,6 +12,7 @@ + @@ -68,6 +69,7 @@ + diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index 468ba18..fd9e317 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 17:55:41 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 18:49:57 package br.ufpb.iged.interpretador.bytecodeassembler.parser; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index d6d0d48..cdacfa3 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 17:55:40 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 18:49:56 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -836,7 +836,7 @@ else if ( (LA6_0==19) ) { // AST REWRITE - // elements: ID, membroClasse, superClasse + // elements: ID, superClasse, membroClasse // token labels: // rule labels: retval // token list labels: @@ -1091,7 +1091,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo28.getTree()); // AST REWRITE - // elements: ID, tipo + // elements: tipo, ID // token labels: // rule labels: retval // token list labels: diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 3217e0b..3ad4fc3 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -38,18 +38,18 @@ entraNaClasse ; declaracaoVariavel // global, parameter, or local variable - : ^(FIELD_DECL ID tipo =.) + : ^(FIELD_DECL ID tipo) { - $ID.simbolo.tipo = $tipo.tsym; // set return type of variable + $ID.simbolo.tipo = $tipo.tsimb; // set return type of variable System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); } ; -tipo returns [Tipo tsym] +tipo returns [Tipo tsimb] @init { // get scope from AST; use to resolve type name and save it in AST $start.simbolo = $start.escopo.resolver($start.getText()); - $tsym = (Tipo)$start.simbolo; // return Type from this rule + $tsimb = (Tipo)$start.simbolo; // return Type from this rule } : 'I' | ID // struct name diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index c6f00f0..81ea228 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 17:55:43 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 18:49:59 package br.ufpb.iged.interpretador.symboltable.parser; @@ -298,6 +298,11 @@ public final void saiDaClasse() throws RecognitionException { { match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse179); if (state.failed) return ; + if ( state.backtracking==1 ) { + System.out.println("Saindo da classe.. membros: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + } } diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java new file mode 100644 index 0000000..9882810 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java @@ -0,0 +1,323 @@ +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-06-30 18:50:00 + +package br.ufpb.iged.interpretador.symboltable.parser; + +import org.antlr.runtime.*; +import org.antlr.runtime.tree.*; + +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +import br.ufpb.iged.interpretador.symboltable.classes.Tipo; + +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public class Ref extends TreeFilter { + public static final String[] tokenNames = new String[] { + "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "ID", "'I'" + }; + + public static final int EOF=-1; + public static final int T__8=8; + public static final int CLASSE=4; + public static final int EXTENDS=5; + public static final int FIELD_DECL=6; + public static final int ID=7; + + // delegates + public TreeFilter[] getDelegates() { + return new TreeFilter[] {}; + } + + // delegators + + + public Ref(TreeNodeStream input) { + this(input, new RecognizerSharedState()); + } + public Ref(TreeNodeStream input, RecognizerSharedState state) { + super(input, state); + } + + public String[] getTokenNames() { return Ref.tokenNames; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g"; } + + + TabelaSimbolos tabelaSimbolos; + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + } + + + + + // $ANTLR start "topdown" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:18:1: topdown : ( entraNaClasse | declaracaoVariavel ); + public final void topdown() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:19:5: ( entraNaClasse | declaracaoVariavel ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==CLASSE) ) { + alt1=1; + } + else if ( (LA1_0==FIELD_DECL) ) { + alt1=2; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + + } + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:19:9: entraNaClasse + { + pushFollow(FOLLOW_entraNaClasse_in_topdown50); + entraNaClasse(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:20:9: declaracaoVariavel + { + pushFollow(FOLLOW_declaracaoVariavel_in_topdown60); + declaracaoVariavel(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "topdown" + + + + // $ANTLR start "entraNaClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:23:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + public final void entraNaClasse() throws RecognitionException { + BytecodesAST nome=null; + BytecodesAST sup=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) + { + match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse80); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse84); if (state.failed) return ; + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:26: ( ^( EXTENDS sup= ID ) )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==EXTENDS) ) { + int LA2_1 = input.LA(2); + + if ( (LA2_1==DOWN) ) { + int LA2_3 = input.LA(3); + + if ( (LA2_3==ID) ) { + int LA2_4 = input.LA(4); + + if ( (LA2_4==UP) ) { + int LA2_5 = input.LA(5); + + if ( ((LA2_5 >= CLASSE && LA2_5 <= 8)) ) { + alt2=1; + } + } + } + } + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:27: ^( EXTENDS sup= ID ) + { + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse88); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse92); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + } + break; + + } + + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + if ( sup!=null ) { + // look up superclass (if any) + sup.simbolo = sup.escopo.resolver((sup!=null?sup.getText():null)); + ((SimboloClasse)nome.simbolo).superClasse = + (SimboloClasse)sup.simbolo; + System.out.println("linha "+nome.getLine()+": set "+(nome!=null?nome.getText():null)+ + " super to "+((SimboloClasse)nome.simbolo).superClasse.nome); + } + else { + System.out.println("linha "+nome.getLine()+": set "+(nome!=null?nome.getText():null)); + } + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "entraNaClasse" + + + + // $ANTLR start "declaracaoVariavel" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:1: declaracaoVariavel : ^( FIELD_DECL ID tipo ) ; + public final void declaracaoVariavel() throws RecognitionException { + BytecodesAST ID1=null; + Ref.tipo_return tipo2 =null; + + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:5: ( ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:9: ^( FIELD_DECL ID tipo ) + { + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel133); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel135); if (state.failed) return ; + + pushFollow(FOLLOW_tipo_in_declaracaoVariavel137); + tipo2=tipo(); + + state._fsp--; + if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + ID1.simbolo.tipo = (tipo2!=null?tipo2.tsimb:null); // set return type of variable + System.out.println("linha "+ID1.getLine()+": set var type "+ID1.simbolo); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "declaracaoVariavel" + + + public static class tipo_return extends TreeRuleReturnScope { + public Tipo tsimb; + }; + + + // $ANTLR start "tipo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:48:1: tipo returns [Tipo tsimb] : ( 'I' | ID ); + public final Ref.tipo_return tipo() throws RecognitionException { + Ref.tipo_return retval = new Ref.tipo_return(); + retval.start = input.LT(1); + + + + // get scope from AST; use to resolve type name and save it in AST + ((BytecodesAST)retval.start).simbolo = ((BytecodesAST)retval.start).escopo.resolver(((BytecodesAST)retval.start).getText()); + retval.tsimb = (Tipo)((BytecodesAST)retval.start).simbolo; // return Type from this rule + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:54:5: ( 'I' | ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g: + { + if ( (input.LA(1) >= ID && input.LA(1) <= 8) ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "tipo" + + // Delegated rules + + + + + public static final BitSet FOLLOW_entraNaClasse_in_topdown50 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown60 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CLASSE_in_entraNaClasse80 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse84 = new BitSet(new long[]{0x00000000000001F0L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse88 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse92 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel133 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel135 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_tipo_in_declaracaoVariavel137 = new BitSet(new long[]{0x0000000000000008L}); + +} \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens new file mode 100644 index 0000000..38876cd --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens @@ -0,0 +1,6 @@ +T__8=8 +CLASSE=4 +EXTENDS=5 +FIELD_DECL=6 +ID=7 +'I'=8 From f3fbca6f50954cae1009f6df2e008018e64f39a7 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 1 Jul 2012 19:09:09 -0300 Subject: [PATCH 30/79] commit --- .../principal/Interpretador.class | Bin 11763 -> 11887 bytes .../principal/Interpretador.java | 125 ++++++++++-------- 2 files changed, 68 insertions(+), 57 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 565cf0a90bcc120855a5b0dce494a73fcdc8dc61..2d48dd567b1497989c2d83abf640153f5e1dab0d 100644 GIT binary patch literal 11887 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 lKNkN;@N(%{yaF9=*~U}2o}T1YWo-Ze literal 11763 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 I@E$+^3(r*eB>(^b diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 73f2f5c..9f9568a 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -5,6 +5,7 @@ import java.util.Scanner; import org.antlr.runtime.ANTLRFileStream; +import org.antlr.runtime.ANTLRStringStream; import org.antlr.runtime.CharStream; import org.antlr.runtime.CommonTokenStream; import org.antlr.runtime.RecognitionException; @@ -33,6 +34,8 @@ public class Interpretador { public static TabelaSimbolos tabelaSimbolos; static EscopoGlobal global; + + private static StringBuffer entrada; public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { @@ -56,90 +59,98 @@ public Object errorNode(TokenStream input, Token start, Token stop, }; - public static void main(String[] args) throws Exception { + public static void main(String[] args) { - if (carregar()) { + try { + + carregar(); Interpretador interpretador = new Interpretador(); interpretador.cpu(); + } catch (IOException ioe) { + + System.out.println(ioe.getMessage()); + + } catch (RecognitionException re) { + + System.out.println(re.getMessage()); + + } catch (LabelException le) { + + System.out.println(le.getMessage()); + + } catch (AcessoIndevidoMemoriaException aime) { + + System.out.println(aime.getMessage()); + } } - public static boolean carregar() { + public static void carregar() + throws IOException, RecognitionException, LabelException, + AcessoIndevidoMemoriaException { + + entrada = new StringBuffer(); - tabelaSimbolos = new TabelaSimbolos(); - BytecodeAssembler assembler = carregarClasse("Main.class"); - global = tabelaSimbolos.global; - global.codigo = assembler.obterCodigoMaquina(); - global.tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); - global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; - File file = new File(".\\"); - + String[] arquivos = file.list(); - int i; - + int i; + for (i = 0; i < arquivos.length; i++){ - - if (arquivos[i].endsWith(".class") && - !(arquivos[i].equals("Main.class"))) + + if (arquivos[i].endsWith(".class")) { - carregarClasse(arquivos[i]); - + ANTLRFileStream input = new ANTLRFileStream(arquivos[i]); + + entrada.append(input.toString()); + + } + } + + tabelaSimbolos = new TabelaSimbolos(); + + BytecodeAssembler assembler = carregarClasses(); + + global = tabelaSimbolos.global; + global.codigo = assembler.obterCodigoMaquina(); + global.tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); + global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; + + //Para testes Simbolo classe = tabelaSimbolos.global.resolver("Teste"); System.out.println("Classe adicionada:" + classe.nome); - - return true; + } - public static BytecodeAssembler carregarClasse(String nomeArquivo) { - - BytecodeAssembler parser = null; + public static BytecodeAssembler carregarClasses() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - try { - - CharStream input = new ANTLRFileStream(nomeArquivo); + BytecodeAssembler parser = null; + + CharStream input = new ANTLRStringStream(entrada.toString()); - AssemblerLexer lexer = new AssemblerLexer(input); - CommonTokenStream tokens = new CommonTokenStream(lexer); - parser = new BytecodeAssembler(tokens, Definicao.instrucoes); - parser.setTreeAdaptor(bytecodesAdaptor); - RuleReturnScope r = parser.programa(); - CommonTree tree = (CommonTree)r.getTree(); + AssemblerLexer lexer = new AssemblerLexer(input); + CommonTokenStream tokens = new CommonTokenStream(lexer); + parser = new BytecodeAssembler(tokens, Definicao.instrucoes); + parser.setTreeAdaptor(bytecodesAdaptor); + RuleReturnScope r = parser.programa(); + CommonTree tree = (CommonTree)r.getTree(); - CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); - nos.setTokenStream(tokens); - Def def = new Def(nos, tabelaSimbolos); - def.downup(tree); - nos.reset(); - - } catch(IOException ioe) { - - System.out.println(ioe.getMessage()); - - } catch (RecognitionException re){ - - System.out.println(re.getMessage()); - - } catch (LabelException le) { - - System.out.println(le.getMessage()); - - } catch (AcessoIndevidoMemoriaException aime) { - - System.out.println(aime.getMessage()); - - } - - return parser; + CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); + nos.setTokenStream(tokens); + Def def = new Def(nos, tabelaSimbolos); + def.downup(tree); + nos.reset(); + + return parser; } From f307e6b7c040b82f04ba74ceaaf33ef9bf82ac6e Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 1 Jul 2012 19:17:16 -0300 Subject: [PATCH 31/79] commit --- .../principal/Interpretador.class | Bin 11887 -> 12051 bytes .../principal/Interpretador.java | 5 ++++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 2d48dd567b1497989c2d83abf640153f5e1dab0d..965697f6144b95883b77341f294aab2ad59ab631 100644 GIT binary patch delta 5221 zcmb7I3s_ZE7G7)Z^X39_L0%UW&_uvTKxm4Oe4vpUD*3<&A z*SxT}c15|_8STOtj5WH#lE=llFy8b>)R#1uH`Jv&|?kuaWtT!VvaJ&n%fn&vnMxLk!OL3x^<0PZU9UFQX0&;?>{Gus1 z-G~SuA!6ncDlX?4c zSPApt23QEIU@6=L)vy|xU=6fDE8GP)LkHYy)JHd|mw^B(U&D78J<&~iH}n?7NPA#; z7kocniBV!iFZ__Yi~9+p`0rF0z<<~B);ez8#g*@dB)Eqsc`szaddP9#=u zY=lbK#B;izD{tnyTi|wh0HQfVA=f0{ItIIWYXIB`Pr;9XGdSULI1c~e&LpUUpWtUc zF4=q(PQXc?Xb%5B1^)$+3yg)+2q1BZA&5vIa{(0@3ZNJ#V}=Ezm^mr_0Z>!py{L4K zj%`NWC6qmbt`6mod*FtGz339HW+!j%#Zcd`E8`_}dof~yvyXYo_F+_hhqBh$E0pzz z_4iHWNK?Y6=#SD(8J8z+nMGzo0{xb8ERrwN=AN@6CzrWRDg|AO~ArR`nm*#g0-x)%otV}uTNpA%wj8@9&T z7YN(T!|bR+C&C|fxw9`2^*cw@urmlg{{ArcnNAGschA-{Vf3vNVMWnL&c6P{=s73C zAGIUUr}H8m2;1fmyCneO2!B|Ev+w-V&yj(t_ryKuAWn0VFx}kW7Fd*dbrL%$$O*U* zmF;I#@Kq;?Fa16uXpewZCND(gA%{xwFQ`m$`ui2p?a}Y^r1HeIpHYF6PL{Lp1^TRk zepSvP@(2X$_ELsTzo4?x>Aw(_haI<);UqC{MejTL;I>PVhpz>`F$W4;z$}q`F^T5W zOXU7UABnH*!5!_#)|zis%zR^G^Wi;iKgL^6@Ry}0`TOEi{0(due_z~#x5GYM2i>>{ zp2sclBJO~f@Nv*z#r^O){u$oH!|*nK1@GV~I7}+MPjT=!8Vny(7W|WP;Rr2&&!`H% zpc?3*R``b6;3&02FYSe6)CE7$Avi%t;1qoWrx_q)3}qIBDjSJGY#au&*%-$1a3Cwi zD7F$k>_$vvztwRF+l0w%3#PFhIFfZ?I(rVY*sC~}eSq2Q?>L$L3#YK-n8SX?TtUKF zLKNl+v6wFm!v(@vED*-yHNp&BDlEcMVF^|W6<96QV2yAS)(bkW5Z2*J;Xzy_JdC>V zG`0!{@K)h9Tq_*Lb%OpS-Xrv&Asojx(S@7EP~0YZaJ!g*?P3-_Dqf1e7w6zku>g0A zh4_rP9J|ET*e$l;i((u8L2SoY#7FQA@mYLRdDVhR#_x5h5RXY!_>)wFr=(UqEwvF!n~6z}k}N$&!P4^- zD!oKu(g6yW4pNl#A$g>K&|v91N|b)2A=1xu5kHTn$YC^6j-YgTIAzKsC`-PW#>!(T zTb@ai zwfrZlk>923e@!znq0HU_K{wx#8PW(o6Zk%SlVQ6OF;Y^yC`9kDGo z(zYZIgj*5PVhAttn{9Td5((K>pRy`oePUZ`PQZG?wzN>&f(UI14#Q+#|0Jynhhs|T zgDJZZ6O4IjQCa>sP2VfOv&x#~(>n0FLEuGnG=#Bqh-8@%&$5hdX;EsbIm;kmysq=^+rpuc3U|y#}JGfJ67dMcuHqARI65g6-BL!HXGQc-#x=0biEw zb2)wCIM$2f*n|#9wvf8-=mssG%zZe4hlJx~FYGY6aGZJ0GU=h^h4$0$aeO#V;oUxC zT3?!iF3j;k*LyO&IHO;d^=Gr>di6fp*fbb=P8tji(9E)vnZu24%q!S~^SW@soDp7J zyeRN&ge4Hk=Vdm;u`A(HHW#Mwr{xTG6;$%;ib-rCtYM4cHns%rWQDMkU%Ocm9AL}f z5G#RqSs8rKN)TBEYOIPs&8jh+)!-m@9e;q;8zG|-FU!ZP`83bs6CDK7Ntl5{68S&> jR9I-P4ZH@6_%#+7E`R2MZzJYc7XJ4?#ZDfy delta 5133 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 Date: Mon, 2 Jul 2012 00:05:18 -0300 Subject: [PATCH 32/79] commit --- Main.class | 2 +- .../parser/AssemblerLexer.java | 311 +++---- .../parser/AssemblerParser.java | 772 +++++++++--------- .../iged/interpretador/gramaticas/Assembler.g | 26 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 6 + .../ufpb/iged/interpretador/gramaticas/Ref.g | 25 +- .../symboltable/classes/TabelaSimbolos.java | 2 +- .../interpretador/symboltable/parser/Def.java | 53 +- .../interpretador/symboltable/parser/Ref.java | 100 +-- 9 files changed, 669 insertions(+), 628 deletions(-) diff --git a/Main.class b/Main.class index 2724e01..6d11781 100755 --- a/Main.class +++ b/Main.class @@ -1,4 +1,4 @@ - ldc 3 + ldc 3 ldc 6 iadd istore_0 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index fd9e317..05bf198 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,6 +1,7 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 18:49:57 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-02 00:02:37 + + package br.ufpb.iged.interpretador.bytecodeassembler.parser; -package br.ufpb.iged.interpretador.bytecodeassembler.parser; import org.antlr.runtime.*; import java.util.Stack; @@ -108,8 +109,8 @@ public final void mT__16() throws RecognitionException { try { int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:7: ( '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:2:9: '()' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '()' { match("()"); @@ -131,8 +132,8 @@ public final void mT__17() throws RecognitionException { try { int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:7: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:3:9: '.class' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '.class' { match(".class"); @@ -154,8 +155,8 @@ public final void mT__18() throws RecognitionException { try { int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:7: ( '.field' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:4:9: '.field' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.field' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.field' { match(".field"); @@ -177,8 +178,8 @@ public final void mT__19() throws RecognitionException { try { int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:7: ( '.method' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:5:9: '.method' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.method' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.method' { match(".method"); @@ -200,8 +201,8 @@ public final void mT__20() throws RecognitionException { try { int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '.super' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '.super' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.super' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.super' { match(".super"); @@ -223,8 +224,8 @@ public final void mT__21() throws RecognitionException { try { int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '/' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '/' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '/' { match('/'); @@ -244,8 +245,8 @@ public final void mT__22() throws RecognitionException { try { int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: ':' { match(':'); @@ -265,8 +266,8 @@ public final void mT__23() throws RecognitionException { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( 'L' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: 'L' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'L' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'L' { match('L'); @@ -286,8 +287,8 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( 'aload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: 'aload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload' { match("aload"); @@ -309,8 +310,8 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload_0' { match("aload_0"); @@ -332,8 +333,8 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_1' { match("aload_1"); @@ -355,8 +356,8 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_2' { match("aload_2"); @@ -378,8 +379,8 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_3' { match("aload_3"); @@ -401,8 +402,8 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'astore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'astore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'astore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'astore' { match("astore"); @@ -424,8 +425,8 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore_0' { match("astore_0"); @@ -447,8 +448,8 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_1' { match("astore_1"); @@ -470,8 +471,8 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_2' { match("astore_2"); @@ -493,8 +494,8 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_3' { match("astore_3"); @@ -516,8 +517,8 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'getfield' { match("getfield"); @@ -539,8 +540,8 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'goto' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'goto' { match("goto"); @@ -562,8 +563,8 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'iadd' { match("iadd"); @@ -585,8 +586,8 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'iand' { match("iand"); @@ -608,8 +609,8 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iconst_0' { match("iconst_0"); @@ -631,8 +632,8 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iconst_1' { match("iconst_1"); @@ -654,8 +655,8 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_2' { match("iconst_2"); @@ -677,8 +678,8 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_3' { match("iconst_3"); @@ -700,8 +701,8 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_4' { match("iconst_4"); @@ -723,8 +724,8 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_5' { match("iconst_5"); @@ -746,8 +747,8 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_m1' { match("iconst_m1"); @@ -769,8 +770,8 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'idiv' { match("idiv"); @@ -792,8 +793,8 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'if_icmpeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'if_icmpeq' { match("if_icmpeq"); @@ -815,8 +816,8 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'if_icmpge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'if_icmpge' { match("if_icmpge"); @@ -838,8 +839,8 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'if_icmpgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpgt' { match("if_icmpgt"); @@ -861,8 +862,8 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'if_icmple' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmple' { match("if_icmple"); @@ -884,8 +885,8 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'if_icmplt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmplt' { match("if_icmplt"); @@ -907,8 +908,8 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'if_icmpne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmpne' { match("if_icmpne"); @@ -930,8 +931,8 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'ifeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'ifeq' { match("ifeq"); @@ -953,8 +954,8 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'ifge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'ifge' { match("ifge"); @@ -976,8 +977,8 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'ifgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifgt' { match("ifgt"); @@ -999,8 +1000,8 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'ifle' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifle' { match("ifle"); @@ -1022,8 +1023,8 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iflt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'iflt' { match("iflt"); @@ -1045,8 +1046,8 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'ifne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifne' { match("ifne"); @@ -1068,8 +1069,8 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iinc' { match("iinc"); @@ -1091,8 +1092,8 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'iload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iload' { match("iload"); @@ -1114,8 +1115,8 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iload_0' { match("iload_0"); @@ -1137,8 +1138,8 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload_1' { match("iload_1"); @@ -1160,8 +1161,8 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_2' { match("iload_2"); @@ -1183,8 +1184,8 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_3' { match("iload_3"); @@ -1206,8 +1207,8 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'imul' { match("imul"); @@ -1229,8 +1230,8 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ineg' { match("ineg"); @@ -1252,8 +1253,8 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'invokespecial' { match("invokespecial"); @@ -1275,8 +1276,8 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ior' { match("ior"); @@ -1298,8 +1299,8 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'irem' { match("irem"); @@ -1321,8 +1322,8 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'istore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'istore' { match("istore"); @@ -1344,8 +1345,8 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'istore_0' { match("istore_0"); @@ -1367,8 +1368,8 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore_1' { match("istore_1"); @@ -1390,8 +1391,8 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_2' { match("istore_2"); @@ -1413,8 +1414,8 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_3' { match("istore_3"); @@ -1436,8 +1437,8 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'isub' { match("isub"); @@ -1459,8 +1460,8 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ixor' { match("ixor"); @@ -1482,8 +1483,8 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'ldc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'ldc' { match("ldc"); @@ -1505,8 +1506,8 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'nop' { match("nop"); @@ -1528,8 +1529,8 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'pop' { match("pop"); @@ -1551,8 +1552,8 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'pop2' { match("pop2"); @@ -1574,8 +1575,8 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'putfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'putfield' { match("putfield"); @@ -1597,8 +1598,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:8: '' { match(""); @@ -1620,8 +1621,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:7: 'I' { match('I'); @@ -1641,8 +1642,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:8: 'V' { match('V'); @@ -1662,10 +1663,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1684,7 +1685,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:9: 'null' { match("null"); @@ -1693,7 +1694,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:18: 'NULL' { match("NULL"); @@ -1721,10 +1722,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1733,7 +1734,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: '-' { match('-'); @@ -1743,7 +1744,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1798,8 +1799,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1811,7 +1812,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1861,8 +1862,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:14: '\\n' { match('\n'); @@ -1882,8 +1883,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index cdacfa3..dfc9644 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,6 +1,10 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-06-30 18:49:56 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-02 00:02:36 -package br.ufpb.iged.interpretador.bytecodeassembler.parser; + package br.ufpb.iged.interpretador.bytecodeassembler.parser; + + import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; + import br.ufpb.iged.interpretador.excecoes.LabelException; + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; import org.antlr.runtime.*; @@ -10,10 +14,6 @@ import org.antlr.runtime.tree.*; -import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; -import br.ufpb.iged.interpretador.excecoes.LabelException; -import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; - @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { @@ -145,7 +145,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:1: programa : ( comando )* ; public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -158,13 +158,13 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:12: ( comando )* loop1: do { int alt1=2; @@ -177,9 +177,9 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:12: comando { - pushFollow(FOLLOW_comando_in_programa69); + pushFollow(FOLLOW_comando_in_programa77); comando1=comando(); state._fsp--; @@ -226,7 +226,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:1: comando : ( label instrucao | instrucao ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: comando : ( label instrucao | instrucao ) ; public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -243,13 +243,13 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); @@ -268,16 +268,16 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:12: label instrucao { - pushFollow(FOLLOW_label_in_comando89); + pushFollow(FOLLOW_label_in_comando97); label2=label(); state._fsp--; adaptor.addChild(root_0, label2.getTree()); - pushFollow(FOLLOW_instrucao_in_comando91); + pushFollow(FOLLOW_instrucao_in_comando99); instrucao3=instrucao(); state._fsp--; @@ -287,9 +287,9 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:30: instrucao { - pushFollow(FOLLOW_instrucao_in_comando95); + pushFollow(FOLLOW_instrucao_in_comando103); instrucao4=instrucao(); state._fsp--; @@ -333,7 +333,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:1: label : a= ID ':' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:1: label : a= ID ':' ; public final AssemblerParser.label_return label() throws RecognitionException, LabelException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -348,20 +348,20 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: a= ID ':' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,ID,FOLLOW_ID_in_label117); + a=(Token)match(input,ID,FOLLOW_ID_in_label125); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - char_literal5=(Token)match(input,22,FOLLOW_22_in_label119); + char_literal5=(Token)match(input,22,FOLLOW_22_in_label127); char_literal5_tree = (BytecodesAST)adaptor.create(char_literal5) ; @@ -401,7 +401,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -432,13 +432,13 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? int alt3=11; switch ( input.LA(1) ) { case 17: @@ -544,9 +544,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:13: definicaoClasse { - pushFollow(FOLLOW_definicaoClasse_in_instrucao129); + pushFollow(FOLLOW_definicaoClasse_in_instrucao137); definicaoClasse6=definicaoClasse(); state._fsp--; @@ -556,9 +556,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:31: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao133); + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao141); manipulacaoObjetos7=manipulacaoObjetos(); state._fsp--; @@ -568,9 +568,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:52: aritmetica { - pushFollow(FOLLOW_aritmetica_in_instrucao137); + pushFollow(FOLLOW_aritmetica_in_instrucao145); aritmetica8=aritmetica(); state._fsp--; @@ -580,9 +580,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:65: load { - pushFollow(FOLLOW_load_in_instrucao141); + pushFollow(FOLLOW_load_in_instrucao149); load9=load(); state._fsp--; @@ -592,9 +592,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:72: store { - pushFollow(FOLLOW_store_in_instrucao145); + pushFollow(FOLLOW_store_in_instrucao153); store10=store(); state._fsp--; @@ -604,9 +604,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:80: desvio { - pushFollow(FOLLOW_desvio_in_instrucao149); + pushFollow(FOLLOW_desvio_in_instrucao157); desvio11=desvio(); state._fsp--; @@ -616,9 +616,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:89: logica { - pushFollow(FOLLOW_logica_in_instrucao153); + pushFollow(FOLLOW_logica_in_instrucao161); logica12=logica(); state._fsp--; @@ -628,9 +628,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:21: 'nop' { - string_literal13=(Token)match(input,77,FOLLOW_77_in_instrucao176); + string_literal13=(Token)match(input,77,FOLLOW_77_in_instrucao184); string_literal13_tree = (BytecodesAST)adaptor.create(string_literal13) ; @@ -640,9 +640,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:17: a= 'pop' { - a=(Token)match(input,78,FOLLOW_78_in_instrucao198); + a=(Token)match(input,78,FOLLOW_78_in_instrucao206); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -654,9 +654,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:17: a= 'pop2' { - a=(Token)match(input,79,FOLLOW_79_in_instrucao222); + a=(Token)match(input,79,FOLLOW_79_in_instrucao230); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -671,7 +671,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } - NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao242); + NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao250); NOVA_LINHA14_tree = (BytecodesAST)adaptor.create(NOVA_LINHA14) ; @@ -709,7 +709,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -742,7 +742,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) int alt6=2; int LA6_0 = input.LA(1); @@ -761,21 +761,21 @@ else if ( (LA6_0==19) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { - string_literal15=(Token)match(input,17,FOLLOW_17_in_definicaoClasse264); + string_literal15=(Token)match(input,17,FOLLOW_17_in_definicaoClasse272); stream_17.add(string_literal15); - ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse266); + ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse274); stream_ID.add(ID16); - NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse268); + NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse276); stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); @@ -784,9 +784,9 @@ else if ( (LA6_0==19) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:42: superClasse { - pushFollow(FOLLOW_superClasse_in_definicaoClasse270); + pushFollow(FOLLOW_superClasse_in_definicaoClasse278); superClasse18=superClasse(); state._fsp--; @@ -799,7 +799,7 @@ else if ( (LA6_0==19) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:55: ( membroClasse )+ int cnt5=0; loop5: do { @@ -813,9 +813,9 @@ else if ( (LA6_0==19) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:55: membroClasse { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse273); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse281); membroClasse19=membroClasse(); state._fsp--; @@ -846,9 +846,9 @@ else if ( (LA6_0==19) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 45:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 53:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -859,14 +859,14 @@ else if ( (LA6_0==19) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:34: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:34: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -896,33 +896,33 @@ else if ( (LA6_0==19) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:19: '.method' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:19: '.method' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal20=(Token)match(input,19,FOLLOW_19_in_definicaoClasse332); + string_literal20=(Token)match(input,19,FOLLOW_19_in_definicaoClasse340); string_literal20_tree = (BytecodesAST)adaptor.create(string_literal20) ; adaptor.addChild(root_0, string_literal20_tree); - INIT21=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse334); + INIT21=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse342); INIT21_tree = (BytecodesAST)adaptor.create(INIT21) ; adaptor.addChild(root_0, INIT21_tree); - string_literal22=(Token)match(input,16,FOLLOW_16_in_definicaoClasse336); + string_literal22=(Token)match(input,16,FOLLOW_16_in_definicaoClasse344); string_literal22_tree = (BytecodesAST)adaptor.create(string_literal22) ; adaptor.addChild(root_0, string_literal22_tree); - VOID23=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse338); + VOID23=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse346); VOID23_tree = (BytecodesAST)adaptor.create(VOID23) ; @@ -962,7 +962,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -979,14 +979,14 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:15: '.super' ID { - string_literal24=(Token)match(input,20,FOLLOW_20_in_superClasse379); + string_literal24=(Token)match(input,20,FOLLOW_20_in_superClasse387); stream_20.add(string_literal24); - ID25=(Token)match(input,ID,FOLLOW_ID_in_superClasse381); + ID25=(Token)match(input,ID,FOLLOW_ID_in_superClasse389); stream_ID.add(ID25); @@ -1001,9 +1001,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 49:27: -> ^( EXTENDS ID ) + // 57:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1053,7 +1053,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1072,18 +1072,18 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleTokenStream stream_18=new RewriteRuleTokenStream(adaptor,"token 18"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:16: '.field' ID tipo { - string_literal26=(Token)match(input,18,FOLLOW_18_in_membroClasse398); + string_literal26=(Token)match(input,18,FOLLOW_18_in_membroClasse406); stream_18.add(string_literal26); - ID27=(Token)match(input,ID,FOLLOW_ID_in_membroClasse400); + ID27=(Token)match(input,ID,FOLLOW_ID_in_membroClasse408); stream_ID.add(ID27); - pushFollow(FOLLOW_tipo_in_membroClasse402); + pushFollow(FOLLOW_tipo_in_membroClasse410); tipo28=tipo(); state._fsp--; @@ -1101,9 +1101,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 51:33: -> ^( FIELD_DECL ID tipo ) + // 59:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1155,7 +1155,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1178,7 +1178,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST VOID31_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:20: (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:20: (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ) int alt7=3; switch ( input.LA(1) ) { case 34: @@ -1206,26 +1206,26 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:22: a= 'getfield' b= campo tipo { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,34,FOLLOW_34_in_manipulacaoObjetos425); + a=(Token)match(input,34,FOLLOW_34_in_manipulacaoObjetos462); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos431); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos468); b=campo(); state._fsp--; adaptor.addChild(root_0, b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos433); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos470); tipo29=tipo(); state._fsp--; @@ -1237,26 +1237,26 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:22: a= 'putfield' b= campo tipo { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,80,FOLLOW_80_in_manipulacaoObjetos462); + a=(Token)match(input,80,FOLLOW_80_in_manipulacaoObjetos499); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos468); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos505); b=campo(); state._fsp--; adaptor.addChild(root_0, b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos470); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos507); tipo30=tipo(); state._fsp--; @@ -1268,26 +1268,26 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:22: a= 'invokespecial' c= construtorDefault VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:22: a= 'invokespecial' c= construtorDefault VOID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,66,FOLLOW_66_in_manipulacaoObjetos499); + a=(Token)match(input,66,FOLLOW_66_in_manipulacaoObjetos536); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - pushFollow(FOLLOW_construtorDefault_in_manipulacaoObjetos505); + pushFollow(FOLLOW_construtorDefault_in_manipulacaoObjetos542); c=construtorDefault(); state._fsp--; adaptor.addChild(root_0, c.getTree()); - VOID31=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos507); + VOID31=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos544); VOID31_tree = (BytecodesAST)adaptor.create(VOID31) ; @@ -1329,7 +1329,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1346,7 +1346,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST VOID33_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1374,12 +1374,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT32=(Token)match(input,INT,FOLLOW_INT_in_tipo539); + INT32=(Token)match(input,INT,FOLLOW_INT_in_tipo576); INT32_tree = (BytecodesAST)adaptor.create(INT32) ; @@ -1389,12 +1389,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID33=(Token)match(input,VOID,FOLLOW_VOID_in_tipo543); + VOID33=(Token)match(input,VOID,FOLLOW_VOID_in_tipo580); VOID33_tree = (BytecodesAST)adaptor.create(VOID33) ; @@ -1404,12 +1404,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo547); + pushFollow(FOLLOW_tipoRef_in_tipo584); tipoRef34=tipoRef(); state._fsp--; @@ -1449,7 +1449,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1462,7 +1462,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { case 36: @@ -1510,12 +1510,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_aritmetica560); + a=(Token)match(input,36,FOLLOW_36_in_aritmetica597); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1527,12 +1527,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,74,FOLLOW_74_in_aritmetica581); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica618); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1544,12 +1544,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_aritmetica602); + a=(Token)match(input,64,FOLLOW_64_in_aritmetica639); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1561,12 +1561,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_aritmetica623); + a=(Token)match(input,45,FOLLOW_45_in_aritmetica660); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1578,12 +1578,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_aritmetica644); + a=(Token)match(input,68,FOLLOW_68_in_aritmetica681); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1595,12 +1595,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_aritmetica665); + a=(Token)match(input,58,FOLLOW_58_in_aritmetica702); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1612,12 +1612,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_aritmetica686); + a=(Token)match(input,65,FOLLOW_65_in_aritmetica723); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1659,7 +1659,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1678,7 +1678,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST INTEIRO37_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { case 44: @@ -1781,12 +1781,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_load723); + a=(Token)match(input,44,FOLLOW_44_in_load760); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1798,12 +1798,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_load737); + a=(Token)match(input,38,FOLLOW_38_in_load774); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1815,12 +1815,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_load752); + a=(Token)match(input,39,FOLLOW_39_in_load789); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1832,12 +1832,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_load767); + a=(Token)match(input,40,FOLLOW_40_in_load804); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1849,12 +1849,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_load782); + a=(Token)match(input,41,FOLLOW_41_in_load819); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1866,12 +1866,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_load796); + a=(Token)match(input,42,FOLLOW_42_in_load833); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1883,12 +1883,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_load810); + a=(Token)match(input,43,FOLLOW_43_in_load847); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1900,12 +1900,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,60,FOLLOW_60_in_load824); + a=(Token)match(input,60,FOLLOW_60_in_load861); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1917,12 +1917,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,61,FOLLOW_61_in_load839); + a=(Token)match(input,61,FOLLOW_61_in_load876); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1934,12 +1934,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_load854); + a=(Token)match(input,62,FOLLOW_62_in_load891); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1951,12 +1951,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_load869); + a=(Token)match(input,63,FOLLOW_63_in_load906); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1968,19 +1968,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_load884); + a=(Token)match(input,59,FOLLOW_59_in_load921); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load886); + INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load923); INTEIRO35_tree = (BytecodesAST)adaptor.create(INTEIRO35) ; @@ -1992,19 +1992,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,76,FOLLOW_76_in_load901); + a=(Token)match(input,76,FOLLOW_76_in_load938); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load903); + INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load940); INTEIRO36_tree = (BytecodesAST)adaptor.create(INTEIRO36) ; @@ -2016,19 +2016,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: a= 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,24,FOLLOW_24_in_load918); + a=(Token)match(input,24,FOLLOW_24_in_load955); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load920); + INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load957); INTEIRO37_tree = (BytecodesAST)adaptor.create(INTEIRO37) ; @@ -2040,12 +2040,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: a= 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,25,FOLLOW_25_in_load935); + a=(Token)match(input,25,FOLLOW_25_in_load972); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2057,12 +2057,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: a= 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,26,FOLLOW_26_in_load950); + a=(Token)match(input,26,FOLLOW_26_in_load987); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2074,12 +2074,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: a= 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,27,FOLLOW_27_in_load965); + a=(Token)match(input,27,FOLLOW_27_in_load1002); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2091,12 +2091,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:8: a= 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,28,FOLLOW_28_in_load979); + a=(Token)match(input,28,FOLLOW_28_in_load1016); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2138,7 +2138,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2155,7 +2155,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST INTEIRO39_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt11=10; switch ( input.LA(1) ) { case 70: @@ -2218,12 +2218,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_store1003); + a=(Token)match(input,70,FOLLOW_70_in_store1040); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2235,12 +2235,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,71,FOLLOW_71_in_store1019); + a=(Token)match(input,71,FOLLOW_71_in_store1056); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2252,12 +2252,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,72,FOLLOW_72_in_store1035); + a=(Token)match(input,72,FOLLOW_72_in_store1072); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2269,12 +2269,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,73,FOLLOW_73_in_store1051); + a=(Token)match(input,73,FOLLOW_73_in_store1088); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2286,19 +2286,19 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,69,FOLLOW_69_in_store1067); + a=(Token)match(input,69,FOLLOW_69_in_store1104); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1069); + INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1106); INTEIRO38_tree = (BytecodesAST)adaptor.create(INTEIRO38) ; @@ -2310,19 +2310,19 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:9: a= 'astore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:9: a= 'astore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,29,FOLLOW_29_in_store1085); + a=(Token)match(input,29,FOLLOW_29_in_store1122); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1087); + INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1124); INTEIRO39_tree = (BytecodesAST)adaptor.create(INTEIRO39) ; @@ -2334,12 +2334,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:9: a= 'astore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_store1103); + a=(Token)match(input,30,FOLLOW_30_in_store1140); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2351,12 +2351,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:9: a= 'astore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_store1119); + a=(Token)match(input,31,FOLLOW_31_in_store1156); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2368,12 +2368,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:9: a= 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:9: a= 'astore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_store1135); + a=(Token)match(input,32,FOLLOW_32_in_store1172); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2385,12 +2385,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: a= 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:9: a= 'astore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_store1151); + a=(Token)match(input,33,FOLLOW_33_in_store1188); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2432,7 +2432,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2445,7 +2445,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { case 37: @@ -2473,12 +2473,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,37,FOLLOW_37_in_logica1172); + a=(Token)match(input,37,FOLLOW_37_in_logica1209); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2490,12 +2490,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_logica1189); + a=(Token)match(input,67,FOLLOW_67_in_logica1226); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2507,12 +2507,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,75,FOLLOW_75_in_logica1206); + a=(Token)match(input,75,FOLLOW_75_in_logica1243); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2554,7 +2554,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2569,7 +2569,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { case 52: @@ -2647,19 +2647,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_desvio1228); + a=(Token)match(input,52,FOLLOW_52_in_desvio1265); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1234); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1271); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2671,19 +2671,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_desvio1251); + a=(Token)match(input,57,FOLLOW_57_in_desvio1288); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1257); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1294); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2695,19 +2695,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_desvio1274); + a=(Token)match(input,56,FOLLOW_56_in_desvio1311); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1280); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1317); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2719,19 +2719,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_desvio1297); + a=(Token)match(input,53,FOLLOW_53_in_desvio1334); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1303); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1340); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2743,19 +2743,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_desvio1320); + a=(Token)match(input,54,FOLLOW_54_in_desvio1357); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1326); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1363); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2767,19 +2767,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_desvio1343); + a=(Token)match(input,55,FOLLOW_55_in_desvio1380); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1349); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1386); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2791,19 +2791,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_desvio1366); + a=(Token)match(input,46,FOLLOW_46_in_desvio1403); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1372); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1409); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2815,19 +2815,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1389); + a=(Token)match(input,51,FOLLOW_51_in_desvio1426); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1395); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1432); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2839,19 +2839,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1412); + a=(Token)match(input,50,FOLLOW_50_in_desvio1449); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1418); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1455); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2863,19 +2863,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_desvio1435); + a=(Token)match(input,47,FOLLOW_47_in_desvio1472); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1441); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1478); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2887,19 +2887,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_desvio1458); + a=(Token)match(input,48,FOLLOW_48_in_desvio1495); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1464); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1501); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2911,19 +2911,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1481); + a=(Token)match(input,49,FOLLOW_49_in_desvio1518); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1487); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1524); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2935,19 +2935,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_desvio1504); + a=(Token)match(input,35,FOLLOW_35_in_desvio1541); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1510); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1547); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2990,7 +2990,7 @@ public static class construtorDefault_return extends ParserRuleReturnScope { // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:1: construtorDefault returns [List classe] : (cls+= ID '/' )+ INIT '()' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:1: construtorDefault returns [List classe] : (cls+= ID '/' )+ INIT '()' ; public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); retval.start = input.LT(1); @@ -3013,13 +3013,13 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:6: ( (cls+= ID '/' )+ INIT '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (cls+= ID '/' )+ INIT '()' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:6: ( (cls+= ID '/' )+ INIT '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (cls+= ID '/' )+ INIT '()' { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (cls+= ID '/' )+ int cnt14=0; loop14: do { @@ -3033,9 +3033,9 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1552); + cls=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1589); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3045,7 +3045,7 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws list_cls.add(cls); - char_literal40=(Token)match(input,21,FOLLOW_21_in_construtorDefault1554); + char_literal40=(Token)match(input,21,FOLLOW_21_in_construtorDefault1591); char_literal40_tree = (BytecodesAST)adaptor.create(char_literal40) ; @@ -3065,14 +3065,14 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws } while (true); - INIT41=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1558); + INIT41=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1595); INIT41_tree = (BytecodesAST)adaptor.create(INIT41) ; adaptor.addChild(root_0, INIT41_tree); - string_literal42=(Token)match(input,16,FOLLOW_16_in_construtorDefault1560); + string_literal42=(Token)match(input,16,FOLLOW_16_in_construtorDefault1597); string_literal42_tree = (BytecodesAST)adaptor.create(string_literal42) ; @@ -3114,7 +3114,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3136,13 +3136,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: (cls+= ID '/' )+ int cnt15=0; loop15: do { @@ -3162,9 +3162,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo1600); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo1637); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3174,7 +3174,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal43=(Token)match(input,21,FOLLOW_21_in_campo1602); + char_literal43=(Token)match(input,21,FOLLOW_21_in_campo1639); char_literal43_tree = (BytecodesAST)adaptor.create(char_literal43) ; @@ -3194,7 +3194,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1610); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1647); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3234,7 +3234,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3253,20 +3253,20 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST ID47_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal44=(Token)match(input,23,FOLLOW_23_in_tipoRef1626); + char_literal44=(Token)match(input,23,FOLLOW_23_in_tipoRef1663); char_literal44_tree = (BytecodesAST)adaptor.create(char_literal44) ; adaptor.addChild(root_0, char_literal44_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:15: ( ID '/' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:15: ( ID '/' )* loop16: do { int alt16=2; @@ -3285,16 +3285,16 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:16: ID '/' { - ID45=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1629); + ID45=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1666); ID45_tree = (BytecodesAST)adaptor.create(ID45) ; adaptor.addChild(root_0, ID45_tree); - char_literal46=(Token)match(input,21,FOLLOW_21_in_tipoRef1631); + char_literal46=(Token)match(input,21,FOLLOW_21_in_tipoRef1668); char_literal46_tree = (BytecodesAST)adaptor.create(char_literal46) ; @@ -3310,7 +3310,7 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio } while (true); - ID47=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1635); + ID47=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1672); ID47_tree = (BytecodesAST)adaptor.create(ID47) ; @@ -3345,128 +3345,128 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio - public static final BitSet FOLLOW_comando_in_programa69 = new BitSet(new long[]{0xFFFFFFFFFF0A1082L,0x000000000001FFFFL}); - public static final BitSet FOLLOW_label_in_comando89 = new BitSet(new long[]{0xFFFFFFFFFF0A1000L,0x000000000001FFFFL}); - public static final BitSet FOLLOW_instrucao_in_comando91 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando95 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label117 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_22_in_label119 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao129 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao133 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao137 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_load_in_instrucao141 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_store_in_instrucao145 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_desvio_in_instrucao149 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_logica_in_instrucao153 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_77_in_instrucao176 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_78_in_instrucao198 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_79_in_instrucao222 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao242 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_definicaoClasse264 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse266 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse268 = new BitSet(new long[]{0x0000000000140000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse270 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse273 = new BitSet(new long[]{0x0000000000040002L}); - public static final BitSet FOLLOW_19_in_definicaoClasse332 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_INIT_in_definicaoClasse334 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_definicaoClasse336 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_VOID_in_definicaoClasse338 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_20_in_superClasse379 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_superClasse381 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_18_in_membroClasse398 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_membroClasse400 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_membroClasse402 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_manipulacaoObjetos425 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos431 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos433 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_manipulacaoObjetos462 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_comando_in_programa77 = new BitSet(new long[]{0xFFFFFFFFFF0A1082L,0x000000000001FFFFL}); + public static final BitSet FOLLOW_label_in_comando97 = new BitSet(new long[]{0xFFFFFFFFFF0A1000L,0x000000000001FFFFL}); + public static final BitSet FOLLOW_instrucao_in_comando99 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando103 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label125 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_22_in_label127 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao137 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao141 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao145 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_load_in_instrucao149 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_store_in_instrucao153 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_desvio_in_instrucao157 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_logica_in_instrucao161 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_77_in_instrucao184 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_78_in_instrucao206 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_79_in_instrucao230 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao250 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_definicaoClasse272 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse274 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse276 = new BitSet(new long[]{0x0000000000140000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse278 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse281 = new BitSet(new long[]{0x0000000000040002L}); + public static final BitSet FOLLOW_19_in_definicaoClasse340 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_INIT_in_definicaoClasse342 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_definicaoClasse344 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_VOID_in_definicaoClasse346 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_superClasse387 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_superClasse389 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_18_in_membroClasse406 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_membroClasse408 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_membroClasse410 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_manipulacaoObjetos462 = new BitSet(new long[]{0x0000000000000080L}); public static final BitSet FOLLOW_campo_in_manipulacaoObjetos468 = new BitSet(new long[]{0x0000000000804200L}); public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos470 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_manipulacaoObjetos499 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos505 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos507 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo539 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo543 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo547 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_aritmetica560 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica581 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_aritmetica602 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_aritmetica623 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_aritmetica644 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_aritmetica665 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_aritmetica686 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load723 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load737 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load752 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load767 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load782 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load796 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load810 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load824 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load839 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load854 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load869 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load884 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load886 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load901 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load903 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load918 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load920 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load935 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load950 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load965 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_load979 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_store1003 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_store1019 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_store1035 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_store1051 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_store1067 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1069 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_store1085 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1087 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_store1103 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_store1119 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_store1135 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_store1151 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_logica1172 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_logica1189 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_logica1206 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1228 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1234 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio1251 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1257 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio1274 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1280 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_desvio1297 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1303 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_desvio1320 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1326 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio1343 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1349 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1366 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1372 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1389 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1395 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1412 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1418 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1435 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1441 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1458 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1464 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1481 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1487 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_desvio1504 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1510 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_construtorDefault1552 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_construtorDefault1554 = new BitSet(new long[]{0x0000000000000180L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault1558 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_construtorDefault1560 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo1600 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_campo1602 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_campo1610 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_tipoRef1626 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1629 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_tipoRef1631 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1635 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_manipulacaoObjetos499 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos505 = new BitSet(new long[]{0x0000000000804200L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos507 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_manipulacaoObjetos536 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos542 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos544 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo576 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo580 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo584 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_aritmetica597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica618 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_aritmetica639 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_aritmetica660 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_aritmetica681 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_aritmetica702 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_aritmetica723 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load760 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load774 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load789 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load804 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load819 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load833 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load847 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load861 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load876 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load891 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load906 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load921 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load923 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load938 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load940 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load955 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_load957 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load972 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load987 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load1002 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_load1016 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_store1040 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_store1056 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_store1072 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_store1088 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_store1104 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1106 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_store1122 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INTEIRO_in_store1124 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_store1140 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_store1156 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_store1172 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_store1188 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_logica1209 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_logica1226 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_logica1243 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1265 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1271 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio1288 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio1311 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1317 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_desvio1334 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1340 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_desvio1357 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1363 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio1380 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1386 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1403 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1409 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1426 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1432 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1449 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1455 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1472 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1478 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1495 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1501 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1518 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1524 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_desvio1541 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_desvio1547 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_construtorDefault1589 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_construtorDefault1591 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_INIT_in_construtorDefault1595 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_construtorDefault1597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo1637 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_campo1639 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_campo1647 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_tipoRef1663 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1666 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_tipoRef1668 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_ID_in_tipoRef1672 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 0a93658..27a7421 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -14,17 +14,25 @@ tokens { @header{ package br.ufpb.iged.interpretador.bytecodeassembler.parser; + + import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; + import br.ufpb.iged.interpretador.excecoes.LabelException; + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +} + +@lexer::header{ + package br.ufpb.iged.interpretador.bytecodeassembler.parser; } @members { - protected void escreverOpcode(Token opc); - protected void escreverOpcode(Token opc, Token op) throws LabelException; - protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; - protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - protected void definirLabel(Token id) throws LabelException; - protected void acessarCampo(Token opc, List classe, String campo); - protected void chamarMetodo(Token opc, List classe); + protected abstract void escreverOpcode(Token opc); + protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; + protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + protected abstract void definirLabel(Token id) throws LabelException; + protected abstract void acessarCampo(Token opc, List classe, String campo); + protected abstract void chamarMetodo(Token opc, List classe); } @@ -48,7 +56,9 @@ definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ superClasse : '.super' ID -> ^(EXTENDS ID) ; -membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) ; +membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) + ; + manipulacaoObjetos : a = 'getfield' b = campo tipo {acessarCampo($a, $b.classe, $b.campo);} | a = 'putfield' b = campo tipo {acessarCampo($a, $b.classe, $b.campo);} diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index f588a1a..e5fbdd3 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -9,6 +9,12 @@ options { @header{ package br.ufpb.iged.interpretador.symboltable.parser; + + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + import br.ufpb.iged.interpretador.symboltable.classes.Escopo; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; + import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; } @members { diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 3ad4fc3..a771051 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -6,13 +6,30 @@ options { filter = true; } +@header{ + package br.ufpb.iged.interpretador.symboltable.parser; + + import br.ufpb.iged.interpretador.symboltable.classes.Escopo; + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; + import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; + import br.ufpb.iged.interpretador.symboltable.classes.Tipo; +} + @members { TabelaSimbolos tabelaSimbolos; + SimboloClasse simboloClasse; public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { this(input); this.tabelaSimbolos = tabelaSimbolos; } + public Tipo resolverTipo(String nomeTipo) { + + return (Tipo)simboloClasse.resolver(nomeTipo); + + } + } topdown @@ -23,10 +40,11 @@ topdown entraNaClasse : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) { + simboloClasse = ((SimboloClasse)$nome.simbolo); if ( $sup!=null ) { // look up superclass (if any) $sup.simbolo = $sup.escopo.resolver($sup.text); - ((SimboloClasse)$nome.simbolo).superClasse = + simboloClasse.superClasse = (SimboloClasse)$sup.simbolo; System.out.println("linha "+$nome.getLine()+": set "+$nome.text+ " super to "+((SimboloClasse)$nome.simbolo).superClasse.nome); @@ -38,9 +56,10 @@ entraNaClasse ; declaracaoVariavel // global, parameter, or local variable - : ^(FIELD_DECL ID tipo) + : ^(FIELD_DECL ID tip =.) { - $ID.simbolo.tipo = $tipo.tsimb; // set return type of variable + $ID.simbolo.tipo = resolverTipo($tip.getText()); + //$ID.simbolo.tipo = $tip.tsimb; // set return type of variable System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); } ; diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.java b/src/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.java index 2026a56..377253a 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.java @@ -6,7 +6,7 @@ public class TabelaSimbolos { public TabelaSimbolos() { - global.definir(new SimboloTipoPrimitvo("int")); + global.definir(new SimboloTipoPrimitvo("I")); } diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index 81ea228..e0922b8 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,17 +1,16 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-06-30 18:49:59 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-02 00:02:39 -package br.ufpb.iged.interpretador.symboltable.parser; + package br.ufpb.iged.interpretador.symboltable.parser; + + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + import br.ufpb.iged.interpretador.symboltable.classes.Escopo; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; + import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; import org.antlr.runtime.*; import org.antlr.runtime.tree.*; - -import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; -import br.ufpb.iged.interpretador.symboltable.classes.Escopo; -import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; -import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; -import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; - import java.util.Stack; import java.util.List; import java.util.ArrayList; @@ -60,10 +59,10 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:1: topdown : ( entraNaClasse | declaracaoVariavel ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:1: topdown : ( entraNaClasse | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:9: ( entraNaClasse | declaracaoVariavel ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:9: ( entraNaClasse | declaracaoVariavel ) int alt1=2; int LA1_0 = input.LA(1); @@ -83,7 +82,7 @@ else if ( (LA1_0==FIELD_DECL) ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:24:11: entraNaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown48); entraNaClasse(); @@ -94,7 +93,7 @@ else if ( (LA1_0==FIELD_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:25:11: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown60); declaracaoVariavel(); @@ -122,11 +121,11 @@ else if ( (LA1_0==FIELD_DECL) ) { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:1: bottomup : saiDaClasse ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:1: bottomup : saiDaClasse ; public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:10: ( saiDaClasse ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:28:12: saiDaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: saiDaClasse { pushFollow(FOLLOW_saiDaClasse_in_bottomup77); saiDaClasse(); @@ -152,21 +151,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) { match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse101); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse105); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:26: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:26: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -191,7 +190,7 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:27: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:27: ^( EXTENDS sup= ID ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse109); if (state.failed) return ; @@ -242,14 +241,14 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:51:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:9: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:9: ^( FIELD_DECL ID tipo= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel149); if (state.failed) return ; @@ -290,11 +289,11 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:1: saiDaClasse : CLASSE ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:62:1: saiDaClasse : CLASSE ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:13: ( CLASSE ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:15: CLASSE + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:62:13: ( CLASSE ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:62:15: CLASSE { match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse179); if (state.failed) return ; diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java index 9882810..1fee350 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java @@ -1,15 +1,16 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-06-30 18:50:00 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-02 00:02:39 + + package br.ufpb.iged.interpretador.symboltable.parser; + + import br.ufpb.iged.interpretador.symboltable.classes.Escopo; + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; + import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; + import br.ufpb.iged.interpretador.symboltable.classes.Tipo; -package br.ufpb.iged.interpretador.symboltable.parser; import org.antlr.runtime.*; import org.antlr.runtime.tree.*; - -import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; -import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; -import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; -import br.ufpb.iged.interpretador.symboltable.classes.Tipo; - import java.util.Stack; import java.util.List; import java.util.ArrayList; @@ -49,19 +50,26 @@ public Ref(TreeNodeStream input, RecognizerSharedState state) { TabelaSimbolos tabelaSimbolos; + SimboloClasse simboloClasse; public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { this(input); this.tabelaSimbolos = tabelaSimbolos; } + public Tipo resolverTipo(String nomeTipo) { + + return (Tipo)simboloClasse.resolver(nomeTipo); + + } + // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:18:1: topdown : ( entraNaClasse | declaracaoVariavel ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:35:1: topdown : ( entraNaClasse | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:19:5: ( entraNaClasse | declaracaoVariavel ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:5: ( entraNaClasse | declaracaoVariavel ) int alt1=2; int LA1_0 = input.LA(1); @@ -81,9 +89,9 @@ else if ( (LA1_0==FIELD_DECL) ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:19:9: entraNaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:9: entraNaClasse { - pushFollow(FOLLOW_entraNaClasse_in_topdown50); + pushFollow(FOLLOW_entraNaClasse_in_topdown55); entraNaClasse(); state._fsp--; @@ -92,9 +100,9 @@ else if ( (LA1_0==FIELD_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:20:9: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:37:9: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown60); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown65); declaracaoVariavel(); state._fsp--; @@ -120,21 +128,21 @@ else if ( (LA1_0==FIELD_DECL) ) { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:23:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse80); if (state.failed) return ; + match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse85); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse84); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse89); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:26: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:26: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -159,12 +167,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:24:27: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:27: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse88); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse93); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse92); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse97); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -181,10 +189,11 @@ public final void entraNaClasse() throws RecognitionException { if ( state.backtracking==1 ) { + simboloClasse = ((SimboloClasse)nome.simbolo); if ( sup!=null ) { // look up superclass (if any) sup.simbolo = sup.escopo.resolver((sup!=null?sup.getText():null)); - ((SimboloClasse)nome.simbolo).superClasse = + simboloClasse.superClasse = (SimboloClasse)sup.simbolo; System.out.println("linha "+nome.getLine()+": set "+(nome!=null?nome.getText():null)+ " super to "+((SimboloClasse)nome.simbolo).superClasse.nome); @@ -212,32 +221,30 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:1: declaracaoVariavel : ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:58:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; - Ref.tipo_return tipo2 =null; - + BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:5: ( ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:9: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:59:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:59:9: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel133); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel138); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel135); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel140); if (state.failed) return ; - pushFollow(FOLLOW_tipo_in_declaracaoVariavel137); - tipo2=tipo(); + tip=(BytecodesAST)input.LT(1); - state._fsp--; - if (state.failed) return ; + matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; if ( state.backtracking==1 ) { - ID1.simbolo.tipo = (tipo2!=null?tipo2.tsimb:null); // set return type of variable + ID1.simbolo.tipo = resolverTipo(tip.getText()); + //ID1.simbolo.tipo = tip.tsimb; // set return type of variable System.out.println("linha "+ID1.getLine()+": set var type "+ID1.simbolo); } @@ -263,7 +270,7 @@ public static class tipo_return extends TreeRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:48:1: tipo returns [Tipo tsimb] : ( 'I' | ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:67:1: tipo returns [Tipo tsimb] : ( 'I' | ID ); public final Ref.tipo_return tipo() throws RecognitionException { Ref.tipo_return retval = new Ref.tipo_return(); retval.start = input.LT(1); @@ -275,7 +282,7 @@ public final Ref.tipo_return tipo() throws RecognitionException { retval.tsimb = (Tipo)((BytecodesAST)retval.start).simbolo; // return Type from this rule try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:54:5: ( 'I' | ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:73:5: ( 'I' | ID ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g: { if ( (input.LA(1) >= ID && input.LA(1) <= 8) ) { @@ -310,14 +317,13 @@ public final Ref.tipo_return tipo() throws RecognitionException { - public static final BitSet FOLLOW_entraNaClasse_in_topdown50 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown60 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CLASSE_in_entraNaClasse80 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse84 = new BitSet(new long[]{0x00000000000001F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse88 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse92 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel133 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel135 = new BitSet(new long[]{0x0000000000000180L}); - public static final BitSet FOLLOW_tipo_in_declaracaoVariavel137 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown55 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown65 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CLASSE_in_entraNaClasse85 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse89 = new BitSet(new long[]{0x00000000000001F0L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse93 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse97 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel138 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel140 = new BitSet(new long[]{0x00000000000001F0L}); } \ No newline at end of file From fa99f0acca3d4179f75cb69fb0dd3ba4e655fc35 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Tue, 3 Jul 2012 23:16:30 -0300 Subject: [PATCH 33/79] commit --- Main.class | 12 + .../asm/BytecodeAssembler.class | Bin 8417 -> 8417 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4409 -> 4403 bytes .../bytecodeassembler/parser/Assembler.tokens | 157 +- .../parser/AssemblerLexer.java | 859 +++++------ .../parser/AssemblerParser.java | 1337 +++++++++-------- .../iged/interpretador/gramaticas/Assembler.g | 20 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 33 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 39 +- .../interpretador/symboltable/parser/Def.java | 265 +++- .../symboltable/parser/Def.tokens | 5 +- .../interpretador/symboltable/parser/Ref.java | 302 +++- .../symboltable/parser/Ref.tokens | 7 +- 13 files changed, 1771 insertions(+), 1265 deletions(-) diff --git a/Main.class b/Main.class index 6d11781..e68ad51 100755 --- a/Main.class +++ b/Main.class @@ -49,4 +49,16 @@ L2: ineg ldc -23 iadd ifeq L1 + aload_0 + invokespecial Main/() V + ldc 5 + putfield Main/abc I + iconst_3 + putfield Main/xyz I + getfield Main/abc I + putfield Main/ghs I + putfield Main/hju I + getfield Main/asd I + putfield Main/xcv I + \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index dd83f90ea1e8d4f6a6715c74087488c3186cf262..08576a9fc1aaa0eba3cee7188087ce02617aa22e 100644 GIT binary patch delta 18 ZcmaFp_|S2Kp9Cuh0|Nv1=3t3F4gfpK1t$Oi delta 18 ZcmaFp_|S2Kp9CvA0|Nus=3t3F4gfp41tkCg diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index d77f011e2e76c019fea3f9fda57a94a3a9a4814d..e8fdfea598c0bd2cbf50e87f2977c334b13df661 100644 GIT binary patch delta 1900 zcmYk*S#(oH7zglgnr(6$=p?d3Rch7Rf&~gitLWhzALJP8LyuygV$4#nCrv_|a(ugp zrGh&KRLZ`IyVimc5Zpz(@moDaRd3(L8un7v-Ivku2vtdYp@zq(>PdBLc!H{Is!PLDRK>IS?96Ptj#mJxi6HO=x(YDkq&otFLRYCXn2*YF3et+3bQw56tlPK=+ZGe z(VeFT@4BQe@4KW{AG)M|AODXI4j*)#!Qszvk*-_;|21FW*~H~+zQRrClD77n3UFt? zs{ps{`wDPdf5fwim(S)f?zq&{;FpT##IVJ06~?f~AFi;;U#PBBA#JBJxS>Z-`M$Cg z6c+_X`Kv;3IV>&?2AceS`iu1s9|$yf)tKVp>NA~j5TsGOAyuH^3g`y~O8~qpQTXyK zGi`fdpwqh>-y%yrCAg}i)5o~Z$M7?5@G}C88v_i@SfLq4=G|muqLG=mI7a3gnLKF9 zvxEHX8e^GA3D$LV8jFLC7>t&nnuE<|g0v4Yx0;E<5zK97l5iyRc2g^?Vcv<&oL1>( zIJw)LCKJNUd(G*>2y@8H5gx@HHfIP&F?X2x!qLo1mgG22UZG@-B=wxUM#)-9j_2eJO4dno0w-@#vR;xCDRCn2 zP_#j!2A=dDB^xCZJ zqa$u+e{GtC)0p3yDZ=T@LuRUQ2J;8gCTwB;WX=)JWd3ZT!dc8;&AGx>=I^FmID0nx z&oFG4;1u@XVb~!)mHkf`O5|ashUlg$Pw`;Qq4W~4Jxjr-ynK5BZ!TVLxxdhip9*td kV@dhS4$@*|;g9Z+=Dt5lHREme)57LE;oQXvTb3*$Z!(EtDd delta 1962 zcmYL}S$I=L6vxjr+ayifNm@iUmx|gJus{K|xO{w{4_0G+D1v>eX`9BYNp48fe!g8r zpn{4^6lGr(7hGz=3J5AHDz3P%xbI8dchR%N+&m=z-*3*GJDJI3sCH+qIdFK_UI1uP zl>sPI&|EkeXdXOguBSezAk=#Pyg41Qme#Z9c(5j{z}tF3EJnFPLD~E^N>zn@o(0~k z6r4p<3zgnbwT5L1JQ+J1f&sWD4A;W)!gB9K=XwP}tIN*x<~!2UG~B2_7jdeFn_R-N z6)sKJaH~sA8dkY9L&F-EW@=c64^DM=(StY8gEuM|T^G9~-XCvFIq^)gu`QpoGRfI3 zE%oy>Y*yg2Qg*ys!)*!z96N9=TT6gTxw8bglDkWQ3%N&u-|EfVxrB!MXc?TT!Jtdn zVMxfq!Vc`Q!yUvX!?@zCoz<`tw-*Bz?8aopyKz-}DE0PrYIuZFx-X^SF-qN5zlO&t zM}d$Xn3BYmFd#(BBh?h0u2W_W$-(^!YP&4 z@EWHix;G@DdrL;qy+h~N(_wX`v((@{7pcqpE>f!xOXy^&;m0M;CUN*v7gIR;IX)z5 z=WPvN;@QOIY`(@#=SW-oZ3%E^M@oR(_CpD9TYti{i5Ji27u;~ny#LtYH$gfLZ1IOn z*yAsku*pA2$wa=#N~CZ@|3%976-g-t6;`I-zBJLBO>|lDR1lQ%gkd3Esh}!`r_tJ% z?o8z7#ye991<{yY*cPbq2k2M1cxZp1&Z}w)Bjsm0S3r;^;Z-UF4U1qgC|CmEU4euz z&oa}z2L{@`yYVf$)H4iMx3&8iuJbYY8E)`11Q-ed2F-A@W-wBBi;+Sjl`9=1wML3p zn__j4=dLwD6CH;2ZS5w+ViSr{BFb58F=M5DnDKTqPOyUU4l`b`lJPDxL9mK(8#Z%h zNjJmhUNc(?B8>N&(*&c8517*hs~NYOGX!fGA2jm?M=?HRE)+b1ahJJBa5Uq?rd!ZC zl6kMWSa=NMqb4OdmT{lS3XWrZ!sG?VGw%Pt^#sPJBXGG4AH{qi0tL}sIydNv=B*(9cc%|~Q5iLnXO``u=&D_k*|Id z<5#A^5pHDu#!M2N%J`j`EI5tvdox9FI^&O~S+I%mXLGLL48~tgOmHUS@8&$gS&V<0 zR>6}`Vg5S;+eHW;j=&D#Q)#?fK?H_L45_j~x~j@sI8-&#vji;9Qt&AsUthqhi?>@Y qFf`()LhoxBR{r87M88O$5-w(~g4{I3@8v3tpCKF@!2gsA2>u79CLu}y diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens index 8c3cbf5..784c267 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens @@ -1,6 +1,3 @@ -T__16=16 -T__17=17 -T__18=18 T__19=19 T__20=20 T__21=21 @@ -63,80 +60,86 @@ T__77=77 T__78=78 T__79=79 T__80=80 +T__81=81 +T__82=82 +T__83=83 CLASSE=4 EXTENDS=5 FIELD_DECL=6 -ID=7 -INIT=8 -INT=9 -INTEIRO=10 -MEMBRO_CLASSE=11 -NOVA_LINHA=12 -NULL=13 -VOID=14 -WS=15 -'()'=16 -'.class'=17 -'.field'=18 -'.method'=19 -'.super'=20 -'/'=21 -':'=22 -'L'=23 -'aload'=24 -'aload_0'=25 -'aload_1'=26 -'aload_2'=27 -'aload_3'=28 -'astore'=29 -'astore_0'=30 -'astore_1'=31 -'astore_2'=32 -'astore_3'=33 -'getfield'=34 -'goto'=35 -'iadd'=36 -'iand'=37 -'iconst_0'=38 -'iconst_1'=39 -'iconst_2'=40 -'iconst_3'=41 -'iconst_4'=42 -'iconst_5'=43 -'iconst_m1'=44 -'idiv'=45 -'if_icmpeq'=46 -'if_icmpge'=47 -'if_icmpgt'=48 -'if_icmple'=49 -'if_icmplt'=50 -'if_icmpne'=51 -'ifeq'=52 -'ifge'=53 -'ifgt'=54 -'ifle'=55 -'iflt'=56 -'ifne'=57 -'iinc'=58 -'iload'=59 -'iload_0'=60 -'iload_1'=61 -'iload_2'=62 -'iload_3'=63 -'imul'=64 -'ineg'=65 -'invokespecial'=66 -'ior'=67 -'irem'=68 -'istore'=69 -'istore_0'=70 -'istore_1'=71 -'istore_2'=72 -'istore_3'=73 -'isub'=74 -'ixor'=75 -'ldc'=76 -'nop'=77 -'pop'=78 -'pop2'=79 -'putfield'=80 +GETFIELD=7 +ID=8 +INIT=9 +INT=10 +INTEIRO=11 +INVOKESPECIAL=12 +MEMBRO_CLASSE=13 +NOVA_LINHA=14 +NULL=15 +PUTFIELD=16 +VOID=17 +WS=18 +'()'=19 +'.class'=20 +'.field'=21 +'.method'=22 +'.super'=23 +'/'=24 +':'=25 +'L'=26 +'aload'=27 +'aload_0'=28 +'aload_1'=29 +'aload_2'=30 +'aload_3'=31 +'astore'=32 +'astore_0'=33 +'astore_1'=34 +'astore_2'=35 +'astore_3'=36 +'getfield'=37 +'goto'=38 +'iadd'=39 +'iand'=40 +'iconst_0'=41 +'iconst_1'=42 +'iconst_2'=43 +'iconst_3'=44 +'iconst_4'=45 +'iconst_5'=46 +'iconst_m1'=47 +'idiv'=48 +'if_icmpeq'=49 +'if_icmpge'=50 +'if_icmpgt'=51 +'if_icmple'=52 +'if_icmplt'=53 +'if_icmpne'=54 +'ifeq'=55 +'ifge'=56 +'ifgt'=57 +'ifle'=58 +'iflt'=59 +'ifne'=60 +'iinc'=61 +'iload'=62 +'iload_0'=63 +'iload_1'=64 +'iload_2'=65 +'iload_3'=66 +'imul'=67 +'ineg'=68 +'invokespecial'=69 +'ior'=70 +'irem'=71 +'istore'=72 +'istore_0'=73 +'istore_1'=74 +'istore_2'=75 +'istore_3'=76 +'isub'=77 +'ixor'=78 +'ldc'=79 +'nop'=80 +'pop'=81 +'pop2'=82 +'putfield'=83 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java index 05bf198..1eaedc7 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-02 00:02:37 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-03 22:49:04 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -11,9 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; public static final int T__19=19; public static final int T__20=20; public static final int T__21=21; @@ -76,18 +73,24 @@ public class AssemblerLexer extends Lexer { public static final int T__78=78; public static final int T__79=79; public static final int T__80=80; + public static final int T__81=81; + public static final int T__82=82; + public static final int T__83=83; public static final int CLASSE=4; public static final int EXTENDS=5; public static final int FIELD_DECL=6; - public static final int ID=7; - public static final int INIT=8; - public static final int INT=9; - public static final int INTEIRO=10; - public static final int MEMBRO_CLASSE=11; - public static final int NOVA_LINHA=12; - public static final int NULL=13; - public static final int VOID=14; - public static final int WS=15; + public static final int GETFIELD=7; + public static final int ID=8; + public static final int INIT=9; + public static final int INT=10; + public static final int INTEIRO=11; + public static final int INVOKESPECIAL=12; + public static final int MEMBRO_CLASSE=13; + public static final int NOVA_LINHA=14; + public static final int NULL=15; + public static final int PUTFIELD=16; + public static final int VOID=17; + public static final int WS=18; // delegates // delegators @@ -104,10 +107,10 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__16" - public final void mT__16() throws RecognitionException { + // $ANTLR start "T__19" + public final void mT__19() throws RecognitionException { try { - int _type = T__16; + int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '()' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '()' @@ -125,12 +128,12 @@ public final void mT__16() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__16" + // $ANTLR end "T__19" - // $ANTLR start "T__17" - public final void mT__17() throws RecognitionException { + // $ANTLR start "T__20" + public final void mT__20() throws RecognitionException { try { - int _type = T__17; + int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '.class' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '.class' @@ -148,12 +151,12 @@ public final void mT__17() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__17" + // $ANTLR end "T__20" - // $ANTLR start "T__18" - public final void mT__18() throws RecognitionException { + // $ANTLR start "T__21" + public final void mT__21() throws RecognitionException { try { - int _type = T__18; + int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.field' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.field' @@ -171,12 +174,12 @@ public final void mT__18() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__18" + // $ANTLR end "T__21" - // $ANTLR start "T__19" - public final void mT__19() throws RecognitionException { + // $ANTLR start "T__22" + public final void mT__22() throws RecognitionException { try { - int _type = T__19; + int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.method' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.method' @@ -194,12 +197,12 @@ public final void mT__19() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__19" + // $ANTLR end "T__22" - // $ANTLR start "T__20" - public final void mT__20() throws RecognitionException { + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { try { - int _type = T__20; + int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.super' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.super' @@ -217,12 +220,12 @@ public final void mT__20() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__20" + // $ANTLR end "T__23" - // $ANTLR start "T__21" - public final void mT__21() throws RecognitionException { + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { try { - int _type = T__21; + int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '/' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '/' @@ -238,12 +241,12 @@ public final void mT__21() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__21" + // $ANTLR end "T__24" - // $ANTLR start "T__22" - public final void mT__22() throws RecognitionException { + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { try { - int _type = T__22; + int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( ':' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: ':' @@ -259,12 +262,12 @@ public final void mT__22() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__22" + // $ANTLR end "T__25" - // $ANTLR start "T__23" - public final void mT__23() throws RecognitionException { + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { try { - int _type = T__23; + int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'L' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'L' @@ -280,12 +283,12 @@ public final void mT__23() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__23" + // $ANTLR end "T__26" - // $ANTLR start "T__24" - public final void mT__24() throws RecognitionException { + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { try { - int _type = T__24; + int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload' @@ -303,12 +306,12 @@ public final void mT__24() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__24" + // $ANTLR end "T__27" - // $ANTLR start "T__25" - public final void mT__25() throws RecognitionException { + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { try { - int _type = T__25; + int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload_0' @@ -326,12 +329,12 @@ public final void mT__25() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__25" + // $ANTLR end "T__28" - // $ANTLR start "T__26" - public final void mT__26() throws RecognitionException { + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { try { - int _type = T__26; + int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_1' @@ -349,12 +352,12 @@ public final void mT__26() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__26" + // $ANTLR end "T__29" - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { try { - int _type = T__27; + int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_2' @@ -372,12 +375,12 @@ public final void mT__27() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__27" + // $ANTLR end "T__30" - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { try { - int _type = T__28; + int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_3' @@ -395,12 +398,12 @@ public final void mT__28() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__28" + // $ANTLR end "T__31" - // $ANTLR start "T__29" - public final void mT__29() throws RecognitionException { + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { try { - int _type = T__29; + int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'astore' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'astore' @@ -418,12 +421,12 @@ public final void mT__29() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__29" + // $ANTLR end "T__32" - // $ANTLR start "T__30" - public final void mT__30() throws RecognitionException { + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { try { - int _type = T__30; + int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore_0' @@ -441,12 +444,12 @@ public final void mT__30() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__30" + // $ANTLR end "T__33" - // $ANTLR start "T__31" - public final void mT__31() throws RecognitionException { + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { try { - int _type = T__31; + int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_1' @@ -464,12 +467,12 @@ public final void mT__31() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__31" + // $ANTLR end "T__34" - // $ANTLR start "T__32" - public final void mT__32() throws RecognitionException { + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { try { - int _type = T__32; + int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_2' @@ -487,12 +490,12 @@ public final void mT__32() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__32" + // $ANTLR end "T__35" - // $ANTLR start "T__33" - public final void mT__33() throws RecognitionException { + // $ANTLR start "T__36" + public final void mT__36() throws RecognitionException { try { - int _type = T__33; + int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_3' @@ -510,12 +513,12 @@ public final void mT__33() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__33" + // $ANTLR end "T__36" - // $ANTLR start "T__34" - public final void mT__34() throws RecognitionException { + // $ANTLR start "T__37" + public final void mT__37() throws RecognitionException { try { - int _type = T__34; + int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'getfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'getfield' @@ -533,12 +536,12 @@ public final void mT__34() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__34" + // $ANTLR end "T__37" - // $ANTLR start "T__35" - public final void mT__35() throws RecognitionException { + // $ANTLR start "T__38" + public final void mT__38() throws RecognitionException { try { - int _type = T__35; + int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'goto' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'goto' @@ -556,12 +559,12 @@ public final void mT__35() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__35" + // $ANTLR end "T__38" - // $ANTLR start "T__36" - public final void mT__36() throws RecognitionException { + // $ANTLR start "T__39" + public final void mT__39() throws RecognitionException { try { - int _type = T__36; + int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'iadd' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'iadd' @@ -579,12 +582,12 @@ public final void mT__36() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__36" + // $ANTLR end "T__39" - // $ANTLR start "T__37" - public final void mT__37() throws RecognitionException { + // $ANTLR start "T__40" + public final void mT__40() throws RecognitionException { try { - int _type = T__37; + int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'iand' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'iand' @@ -602,12 +605,12 @@ public final void mT__37() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__37" + // $ANTLR end "T__40" - // $ANTLR start "T__38" - public final void mT__38() throws RecognitionException { + // $ANTLR start "T__41" + public final void mT__41() throws RecognitionException { try { - int _type = T__38; + int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iconst_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iconst_0' @@ -625,12 +628,12 @@ public final void mT__38() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__38" + // $ANTLR end "T__41" - // $ANTLR start "T__39" - public final void mT__39() throws RecognitionException { + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { try { - int _type = T__39; + int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iconst_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iconst_1' @@ -648,12 +651,12 @@ public final void mT__39() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__39" + // $ANTLR end "T__42" - // $ANTLR start "T__40" - public final void mT__40() throws RecognitionException { + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { try { - int _type = T__40; + int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_2' @@ -671,12 +674,12 @@ public final void mT__40() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__40" + // $ANTLR end "T__43" - // $ANTLR start "T__41" - public final void mT__41() throws RecognitionException { + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { try { - int _type = T__41; + int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_3' @@ -694,12 +697,12 @@ public final void mT__41() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__41" + // $ANTLR end "T__44" - // $ANTLR start "T__42" - public final void mT__42() throws RecognitionException { + // $ANTLR start "T__45" + public final void mT__45() throws RecognitionException { try { - int _type = T__42; + int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_4' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_4' @@ -717,12 +720,12 @@ public final void mT__42() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__42" + // $ANTLR end "T__45" - // $ANTLR start "T__43" - public final void mT__43() throws RecognitionException { + // $ANTLR start "T__46" + public final void mT__46() throws RecognitionException { try { - int _type = T__43; + int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_5' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_5' @@ -740,12 +743,12 @@ public final void mT__43() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__43" + // $ANTLR end "T__46" - // $ANTLR start "T__44" - public final void mT__44() throws RecognitionException { + // $ANTLR start "T__47" + public final void mT__47() throws RecognitionException { try { - int _type = T__44; + int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_m1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_m1' @@ -763,12 +766,12 @@ public final void mT__44() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__44" + // $ANTLR end "T__47" - // $ANTLR start "T__45" - public final void mT__45() throws RecognitionException { + // $ANTLR start "T__48" + public final void mT__48() throws RecognitionException { try { - int _type = T__45; + int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'idiv' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'idiv' @@ -786,12 +789,12 @@ public final void mT__45() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__45" + // $ANTLR end "T__48" - // $ANTLR start "T__46" - public final void mT__46() throws RecognitionException { + // $ANTLR start "T__49" + public final void mT__49() throws RecognitionException { try { - int _type = T__46; + int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'if_icmpeq' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'if_icmpeq' @@ -809,12 +812,12 @@ public final void mT__46() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__46" + // $ANTLR end "T__49" - // $ANTLR start "T__47" - public final void mT__47() throws RecognitionException { + // $ANTLR start "T__50" + public final void mT__50() throws RecognitionException { try { - int _type = T__47; + int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'if_icmpge' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'if_icmpge' @@ -832,12 +835,12 @@ public final void mT__47() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__47" + // $ANTLR end "T__50" - // $ANTLR start "T__48" - public final void mT__48() throws RecognitionException { + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { try { - int _type = T__48; + int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpgt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpgt' @@ -855,12 +858,12 @@ public final void mT__48() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__48" + // $ANTLR end "T__51" - // $ANTLR start "T__49" - public final void mT__49() throws RecognitionException { + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { try { - int _type = T__49; + int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmple' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmple' @@ -878,12 +881,12 @@ public final void mT__49() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__49" + // $ANTLR end "T__52" - // $ANTLR start "T__50" - public final void mT__50() throws RecognitionException { + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { try { - int _type = T__50; + int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmplt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmplt' @@ -901,12 +904,12 @@ public final void mT__50() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__50" + // $ANTLR end "T__53" - // $ANTLR start "T__51" - public final void mT__51() throws RecognitionException { + // $ANTLR start "T__54" + public final void mT__54() throws RecognitionException { try { - int _type = T__51; + int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmpne' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmpne' @@ -924,12 +927,12 @@ public final void mT__51() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__51" + // $ANTLR end "T__54" - // $ANTLR start "T__52" - public final void mT__52() throws RecognitionException { + // $ANTLR start "T__55" + public final void mT__55() throws RecognitionException { try { - int _type = T__52; + int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'ifeq' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'ifeq' @@ -947,12 +950,12 @@ public final void mT__52() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__52" + // $ANTLR end "T__55" - // $ANTLR start "T__53" - public final void mT__53() throws RecognitionException { + // $ANTLR start "T__56" + public final void mT__56() throws RecognitionException { try { - int _type = T__53; + int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'ifge' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'ifge' @@ -970,12 +973,12 @@ public final void mT__53() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__53" + // $ANTLR end "T__56" - // $ANTLR start "T__54" - public final void mT__54() throws RecognitionException { + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { try { - int _type = T__54; + int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifgt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifgt' @@ -993,12 +996,12 @@ public final void mT__54() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__54" + // $ANTLR end "T__57" - // $ANTLR start "T__55" - public final void mT__55() throws RecognitionException { + // $ANTLR start "T__58" + public final void mT__58() throws RecognitionException { try { - int _type = T__55; + int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifle' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifle' @@ -1016,12 +1019,12 @@ public final void mT__55() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__55" + // $ANTLR end "T__58" - // $ANTLR start "T__56" - public final void mT__56() throws RecognitionException { + // $ANTLR start "T__59" + public final void mT__59() throws RecognitionException { try { - int _type = T__56; + int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'iflt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'iflt' @@ -1039,12 +1042,12 @@ public final void mT__56() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__56" + // $ANTLR end "T__59" - // $ANTLR start "T__57" - public final void mT__57() throws RecognitionException { + // $ANTLR start "T__60" + public final void mT__60() throws RecognitionException { try { - int _type = T__57; + int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifne' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifne' @@ -1062,12 +1065,12 @@ public final void mT__57() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__57" + // $ANTLR end "T__60" - // $ANTLR start "T__58" - public final void mT__58() throws RecognitionException { + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { try { - int _type = T__58; + int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iinc' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iinc' @@ -1085,12 +1088,12 @@ public final void mT__58() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__58" + // $ANTLR end "T__61" - // $ANTLR start "T__59" - public final void mT__59() throws RecognitionException { + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { try { - int _type = T__59; + int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iload' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iload' @@ -1108,12 +1111,12 @@ public final void mT__59() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__59" + // $ANTLR end "T__62" - // $ANTLR start "T__60" - public final void mT__60() throws RecognitionException { + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { try { - int _type = T__60; + int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iload_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iload_0' @@ -1131,12 +1134,12 @@ public final void mT__60() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__60" + // $ANTLR end "T__63" - // $ANTLR start "T__61" - public final void mT__61() throws RecognitionException { + // $ANTLR start "T__64" + public final void mT__64() throws RecognitionException { try { - int _type = T__61; + int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload_1' @@ -1154,12 +1157,12 @@ public final void mT__61() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__61" + // $ANTLR end "T__64" - // $ANTLR start "T__62" - public final void mT__62() throws RecognitionException { + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { try { - int _type = T__62; + int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_2' @@ -1177,12 +1180,12 @@ public final void mT__62() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__62" + // $ANTLR end "T__65" - // $ANTLR start "T__63" - public final void mT__63() throws RecognitionException { + // $ANTLR start "T__66" + public final void mT__66() throws RecognitionException { try { - int _type = T__63; + int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_3' @@ -1200,12 +1203,12 @@ public final void mT__63() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__63" + // $ANTLR end "T__66" - // $ANTLR start "T__64" - public final void mT__64() throws RecognitionException { + // $ANTLR start "T__67" + public final void mT__67() throws RecognitionException { try { - int _type = T__64; + int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'imul' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'imul' @@ -1223,12 +1226,12 @@ public final void mT__64() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__64" + // $ANTLR end "T__67" - // $ANTLR start "T__65" - public final void mT__65() throws RecognitionException { + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { try { - int _type = T__65; + int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ineg' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ineg' @@ -1246,12 +1249,12 @@ public final void mT__65() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__65" + // $ANTLR end "T__68" - // $ANTLR start "T__66" - public final void mT__66() throws RecognitionException { + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { try { - int _type = T__66; + int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'invokespecial' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'invokespecial' @@ -1269,12 +1272,12 @@ public final void mT__66() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__66" + // $ANTLR end "T__69" - // $ANTLR start "T__67" - public final void mT__67() throws RecognitionException { + // $ANTLR start "T__70" + public final void mT__70() throws RecognitionException { try { - int _type = T__67; + int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ior' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ior' @@ -1292,12 +1295,12 @@ public final void mT__67() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__67" + // $ANTLR end "T__70" - // $ANTLR start "T__68" - public final void mT__68() throws RecognitionException { + // $ANTLR start "T__71" + public final void mT__71() throws RecognitionException { try { - int _type = T__68; + int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'irem' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'irem' @@ -1315,12 +1318,12 @@ public final void mT__68() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__68" + // $ANTLR end "T__71" - // $ANTLR start "T__69" - public final void mT__69() throws RecognitionException { + // $ANTLR start "T__72" + public final void mT__72() throws RecognitionException { try { - int _type = T__69; + int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'istore' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'istore' @@ -1338,12 +1341,12 @@ public final void mT__69() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__69" + // $ANTLR end "T__72" - // $ANTLR start "T__70" - public final void mT__70() throws RecognitionException { + // $ANTLR start "T__73" + public final void mT__73() throws RecognitionException { try { - int _type = T__70; + int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'istore_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'istore_0' @@ -1361,12 +1364,12 @@ public final void mT__70() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__70" + // $ANTLR end "T__73" - // $ANTLR start "T__71" - public final void mT__71() throws RecognitionException { + // $ANTLR start "T__74" + public final void mT__74() throws RecognitionException { try { - int _type = T__71; + int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore_1' @@ -1384,12 +1387,12 @@ public final void mT__71() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__71" + // $ANTLR end "T__74" - // $ANTLR start "T__72" - public final void mT__72() throws RecognitionException { + // $ANTLR start "T__75" + public final void mT__75() throws RecognitionException { try { - int _type = T__72; + int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_2' @@ -1407,12 +1410,12 @@ public final void mT__72() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__72" + // $ANTLR end "T__75" - // $ANTLR start "T__73" - public final void mT__73() throws RecognitionException { + // $ANTLR start "T__76" + public final void mT__76() throws RecognitionException { try { - int _type = T__73; + int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_3' @@ -1430,12 +1433,12 @@ public final void mT__73() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__73" + // $ANTLR end "T__76" - // $ANTLR start "T__74" - public final void mT__74() throws RecognitionException { + // $ANTLR start "T__77" + public final void mT__77() throws RecognitionException { try { - int _type = T__74; + int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'isub' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'isub' @@ -1453,12 +1456,12 @@ public final void mT__74() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__74" + // $ANTLR end "T__77" - // $ANTLR start "T__75" - public final void mT__75() throws RecognitionException { + // $ANTLR start "T__78" + public final void mT__78() throws RecognitionException { try { - int _type = T__75; + int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ixor' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ixor' @@ -1476,12 +1479,12 @@ public final void mT__75() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__75" + // $ANTLR end "T__78" - // $ANTLR start "T__76" - public final void mT__76() throws RecognitionException { + // $ANTLR start "T__79" + public final void mT__79() throws RecognitionException { try { - int _type = T__76; + int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'ldc' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'ldc' @@ -1499,12 +1502,12 @@ public final void mT__76() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__76" + // $ANTLR end "T__79" - // $ANTLR start "T__77" - public final void mT__77() throws RecognitionException { + // $ANTLR start "T__80" + public final void mT__80() throws RecognitionException { try { - int _type = T__77; + int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'nop' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'nop' @@ -1522,12 +1525,12 @@ public final void mT__77() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__77" + // $ANTLR end "T__80" - // $ANTLR start "T__78" - public final void mT__78() throws RecognitionException { + // $ANTLR start "T__81" + public final void mT__81() throws RecognitionException { try { - int _type = T__78; + int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'pop' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'pop' @@ -1545,12 +1548,12 @@ public final void mT__78() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__78" + // $ANTLR end "T__81" - // $ANTLR start "T__79" - public final void mT__79() throws RecognitionException { + // $ANTLR start "T__82" + public final void mT__82() throws RecognitionException { try { - int _type = T__79; + int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'pop2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'pop2' @@ -1568,12 +1571,12 @@ public final void mT__79() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__79" + // $ANTLR end "T__82" - // $ANTLR start "T__80" - public final void mT__80() throws RecognitionException { + // $ANTLR start "T__83" + public final void mT__83() throws RecognitionException { try { - int _type = T__80; + int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'putfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'putfield' @@ -1591,15 +1594,15 @@ public final void mT__80() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__80" + // $ANTLR end "T__83" // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: '' { match(""); @@ -1621,8 +1624,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:7: 'I' { match('I'); @@ -1642,8 +1645,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:8: 'V' { match('V'); @@ -1663,10 +1666,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1685,7 +1688,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:9: 'null' { match("null"); @@ -1694,7 +1697,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:18: 'NULL' { match("NULL"); @@ -1722,10 +1725,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1734,7 +1737,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:11: '-' { match('-'); @@ -1744,7 +1747,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1799,8 +1802,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1812,7 +1815,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1862,8 +1865,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: '\\n' { match('\n'); @@ -1883,8 +1886,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -1910,526 +1913,526 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) int alt5=73; alt5 = dfa5.predict(input); switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__16 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__19 { - mT__16(); + mT__19(); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__17 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__20 { - mT__17(); + mT__20(); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__18 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__21 { - mT__18(); + mT__21(); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__19 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__22 { - mT__19(); + mT__22(); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__20 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__23 { - mT__20(); + mT__23(); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__21 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__24 { - mT__21(); + mT__24(); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__22 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__25 { - mT__22(); + mT__25(); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__23 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__26 { - mT__23(); + mT__26(); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__24 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__27 { - mT__24(); + mT__27(); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__25 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__28 { - mT__25(); + mT__28(); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__26 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__29 { - mT__26(); + mT__29(); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__27 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__30 { - mT__27(); + mT__30(); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__28 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__31 { - mT__28(); + mT__31(); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__29 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__32 { - mT__29(); + mT__32(); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__30 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__33 { - mT__30(); + mT__33(); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__31 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__34 { - mT__31(); + mT__34(); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__32 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__35 { - mT__32(); + mT__35(); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__33 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__36 { - mT__33(); + mT__36(); } break; case 19 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__34 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__37 { - mT__34(); + mT__37(); } break; case 20 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__35 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__38 { - mT__35(); + mT__38(); } break; case 21 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__36 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__39 { - mT__36(); + mT__39(); } break; case 22 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__37 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__40 { - mT__37(); + mT__40(); } break; case 23 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__38 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__41 { - mT__38(); + mT__41(); } break; case 24 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__39 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__42 { - mT__39(); + mT__42(); } break; case 25 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__40 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__43 { - mT__40(); + mT__43(); } break; case 26 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__41 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__44 { - mT__41(); + mT__44(); } break; case 27 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__42 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__45 { - mT__42(); + mT__45(); } break; case 28 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__43 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__46 { - mT__43(); + mT__46(); } break; case 29 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__44 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__47 { - mT__44(); + mT__47(); } break; case 30 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__45 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__48 { - mT__45(); + mT__48(); } break; case 31 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__46 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__49 { - mT__46(); + mT__49(); } break; case 32 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__47 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__50 { - mT__47(); + mT__50(); } break; case 33 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__48 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__51 { - mT__48(); + mT__51(); } break; case 34 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__49 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__52 { - mT__49(); + mT__52(); } break; case 35 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__50 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__53 { - mT__50(); + mT__53(); } break; case 36 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__51 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__54 { - mT__51(); + mT__54(); } break; case 37 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__52 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__55 { - mT__52(); + mT__55(); } break; case 38 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__53 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__56 { - mT__53(); + mT__56(); } break; case 39 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__54 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__57 { - mT__54(); + mT__57(); } break; case 40 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__55 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__58 { - mT__55(); + mT__58(); } break; case 41 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__56 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__59 { - mT__56(); + mT__59(); } break; case 42 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__57 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__60 { - mT__57(); + mT__60(); } break; case 43 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__58 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__61 { - mT__58(); + mT__61(); } break; case 44 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__59 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__62 { - mT__59(); + mT__62(); } break; case 45 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__60 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__63 { - mT__60(); + mT__63(); } break; case 46 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__61 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__64 { - mT__61(); + mT__64(); } break; case 47 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__62 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__65 { - mT__62(); + mT__65(); } break; case 48 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__63 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__66 { - mT__63(); + mT__66(); } break; case 49 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__64 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__67 { - mT__64(); + mT__67(); } break; case 50 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__65 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__68 { - mT__65(); + mT__68(); } break; case 51 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__66 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__69 { - mT__66(); + mT__69(); } break; case 52 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__67 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__70 { - mT__67(); + mT__70(); } break; case 53 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__68 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__71 { - mT__68(); + mT__71(); } break; case 54 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__69 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__72 { - mT__69(); + mT__72(); } break; case 55 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__70 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__73 { - mT__70(); + mT__73(); } break; case 56 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__71 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__74 { - mT__71(); + mT__74(); } break; case 57 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__72 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__75 { - mT__72(); + mT__75(); } break; case 58 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__73 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__76 { - mT__73(); + mT__76(); } break; case 59 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__74 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__77 { - mT__74(); + mT__77(); } break; case 60 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__75 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__78 { - mT__75(); + mT__78(); } break; case 61 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__76 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__79 { - mT__76(); + mT__79(); } break; case 62 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__77 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__80 { - mT__77(); + mT__80(); } break; case 63 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__78 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__81 { - mT__78(); + mT__81(); } break; case 64 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__79 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__82 { - mT__79(); + mT__82(); } break; case 65 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__80 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__83 { - mT__80(); + mT__83(); } @@ -2799,7 +2802,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java index dfc9644..ee04fda 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-02 00:02:36 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-03 22:49:03 package br.ufpb.iged.interpretador.bytecodeassembler.parser; @@ -18,13 +18,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "GETFIELD", "ID", "INIT", "INT", "INTEIRO", "INVOKESPECIAL", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PUTFIELD", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; public static final int T__19=19; public static final int T__20=20; public static final int T__21=21; @@ -87,18 +84,24 @@ public abstract class AssemblerParser extends Parser { public static final int T__78=78; public static final int T__79=79; public static final int T__80=80; + public static final int T__81=81; + public static final int T__82=82; + public static final int T__83=83; public static final int CLASSE=4; public static final int EXTENDS=5; public static final int FIELD_DECL=6; - public static final int ID=7; - public static final int INIT=8; - public static final int INT=9; - public static final int INTEIRO=10; - public static final int MEMBRO_CLASSE=11; - public static final int NOVA_LINHA=12; - public static final int NULL=13; - public static final int VOID=14; - public static final int WS=15; + public static final int GETFIELD=7; + public static final int ID=8; + public static final int INIT=9; + public static final int INT=10; + public static final int INTEIRO=11; + public static final int INVOKESPECIAL=12; + public static final int MEMBRO_CLASSE=13; + public static final int NOVA_LINHA=14; + public static final int NULL=15; + public static final int PUTFIELD=16; + public static final int VOID=17; + public static final int WS=18; // delegates public Parser[] getDelegates() { @@ -145,7 +148,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: programa : ( comando )* ; public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -158,28 +161,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:12: ( comando )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==17||LA1_0==19||(LA1_0 >= 24 && LA1_0 <= 80)) ) { + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==20||LA1_0==22||(LA1_0 >= 27 && LA1_0 <= 83)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:12: comando { - pushFollow(FOLLOW_comando_in_programa77); + pushFollow(FOLLOW_comando_in_programa92); comando1=comando(); state._fsp--; @@ -226,7 +229,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: comando : ( label instrucao | instrucao ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: comando : ( label instrucao | instrucao ) ; public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -243,20 +246,20 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==ID) ) { alt2=1; } - else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80)) ) { + else if ( (LA2_0==NOVA_LINHA||LA2_0==20||LA2_0==22||(LA2_0 >= 27 && LA2_0 <= 83)) ) { alt2=2; } else { @@ -268,16 +271,16 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: label instrucao { - pushFollow(FOLLOW_label_in_comando97); + pushFollow(FOLLOW_label_in_comando112); label2=label(); state._fsp--; adaptor.addChild(root_0, label2.getTree()); - pushFollow(FOLLOW_instrucao_in_comando99); + pushFollow(FOLLOW_instrucao_in_comando114); instrucao3=instrucao(); state._fsp--; @@ -287,9 +290,9 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==17||LA2_0==19||(LA2_0 >= 24 && LA2_0 <= 80) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:30: instrucao { - pushFollow(FOLLOW_instrucao_in_comando103); + pushFollow(FOLLOW_instrucao_in_comando118); instrucao4=instrucao(); state._fsp--; @@ -333,7 +336,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:1: label : a= ID ':' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: label : a= ID ':' ; public final AssemblerParser.label_return label() throws RecognitionException, LabelException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -348,20 +351,20 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: a= ID ':' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,ID,FOLLOW_ID_in_label125); + a=(Token)match(input,ID,FOLLOW_ID_in_label140); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - char_literal5=(Token)match(input,22,FOLLOW_22_in_label127); + char_literal5=(Token)match(input,25,FOLLOW_25_in_label142); char_literal5_tree = (BytecodesAST)adaptor.create(char_literal5) ; @@ -401,7 +404,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -432,79 +435,76 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? int alt3=11; switch ( input.LA(1) ) { - case 17: - case 19: + case 20: + case 22: { alt3=1; } break; - case 34: - case 66: - case 80: + case 37: + case 69: + case 83: { alt3=2; } break; - case 36: - case 45: - case 58: - case 64: - case 65: + case 39: + case 48: + case 61: + case 67: case 68: - case 74: + case 71: + case 77: { alt3=3; } break; - case 24: - case 25: - case 26: case 27: case 28: - case 38: - case 39: - case 40: + case 29: + case 30: + case 31: case 41: case 42: case 43: case 44: - case 59: - case 60: - case 61: + case 45: + case 46: + case 47: case 62: case 63: - case 76: + case 64: + case 65: + case 66: + case 79: { alt3=4; } break; - case 29: - case 30: - case 31: case 32: case 33: - case 69: - case 70: - case 71: + case 34: + case 35: + case 36: case 72: case 73: + case 74: + case 75: + case 76: { alt3=5; } break; - case 35: - case 46: - case 47: - case 48: + case 38: case 49: case 50: case 51: @@ -514,28 +514,31 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce case 55: case 56: case 57: + case 58: + case 59: + case 60: { alt3=6; } break; - case 37: - case 67: - case 75: + case 40: + case 70: + case 78: { alt3=7; } break; - case 77: + case 80: { alt3=8; } break; - case 78: + case 81: { alt3=9; } break; - case 79: + case 82: { alt3=10; } @@ -544,9 +547,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:13: definicaoClasse { - pushFollow(FOLLOW_definicaoClasse_in_instrucao137); + pushFollow(FOLLOW_definicaoClasse_in_instrucao152); definicaoClasse6=definicaoClasse(); state._fsp--; @@ -556,9 +559,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:31: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao141); + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao156); manipulacaoObjetos7=manipulacaoObjetos(); state._fsp--; @@ -568,9 +571,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:52: aritmetica { - pushFollow(FOLLOW_aritmetica_in_instrucao145); + pushFollow(FOLLOW_aritmetica_in_instrucao160); aritmetica8=aritmetica(); state._fsp--; @@ -580,9 +583,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:65: load { - pushFollow(FOLLOW_load_in_instrucao149); + pushFollow(FOLLOW_load_in_instrucao164); load9=load(); state._fsp--; @@ -592,9 +595,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:72: store { - pushFollow(FOLLOW_store_in_instrucao153); + pushFollow(FOLLOW_store_in_instrucao168); store10=store(); state._fsp--; @@ -604,9 +607,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:80: desvio { - pushFollow(FOLLOW_desvio_in_instrucao157); + pushFollow(FOLLOW_desvio_in_instrucao172); desvio11=desvio(); state._fsp--; @@ -616,9 +619,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:89: logica { - pushFollow(FOLLOW_logica_in_instrucao161); + pushFollow(FOLLOW_logica_in_instrucao176); logica12=logica(); state._fsp--; @@ -628,9 +631,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:21: 'nop' { - string_literal13=(Token)match(input,77,FOLLOW_77_in_instrucao184); + string_literal13=(Token)match(input,80,FOLLOW_80_in_instrucao199); string_literal13_tree = (BytecodesAST)adaptor.create(string_literal13) ; @@ -640,9 +643,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:17: a= 'pop' { - a=(Token)match(input,78,FOLLOW_78_in_instrucao206); + a=(Token)match(input,81,FOLLOW_81_in_instrucao221); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -654,9 +657,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:17: a= 'pop2' { - a=(Token)match(input,79,FOLLOW_79_in_instrucao230); + a=(Token)match(input,82,FOLLOW_82_in_instrucao245); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -671,7 +674,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } - NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao250); + NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao265); NOVA_LINHA14_tree = (BytecodesAST)adaptor.create(NOVA_LINHA14) ; @@ -709,7 +712,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -737,19 +740,19 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST string_literal22_tree=null; BytecodesAST VOID23_tree=null; RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); + RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==17) ) { + if ( (LA6_0==20) ) { alt6=1; } - else if ( (LA6_0==19) ) { + else if ( (LA6_0==22) ) { alt6=2; } else { @@ -761,32 +764,32 @@ else if ( (LA6_0==19) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { - string_literal15=(Token)match(input,17,FOLLOW_17_in_definicaoClasse272); - stream_17.add(string_literal15); + string_literal15=(Token)match(input,20,FOLLOW_20_in_definicaoClasse287); + stream_20.add(string_literal15); - ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse274); + ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse289); stream_ID.add(ID16); - NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse276); + NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse291); stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); - if ( (LA4_0==20) ) { + if ( (LA4_0==23) ) { alt4=1; } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:42: superClasse { - pushFollow(FOLLOW_superClasse_in_definicaoClasse278); + pushFollow(FOLLOW_superClasse_in_definicaoClasse293); superClasse18=superClasse(); state._fsp--; @@ -799,23 +802,23 @@ else if ( (LA6_0==19) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:55: ( membroClasse )+ int cnt5=0; loop5: do { int alt5=2; int LA5_0 = input.LA(1); - if ( (LA5_0==18) ) { + if ( (LA5_0==21) ) { alt5=1; } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:55: membroClasse { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse281); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse296); membroClasse19=membroClasse(); state._fsp--; @@ -836,7 +839,7 @@ else if ( (LA6_0==19) ) { // AST REWRITE - // elements: ID, superClasse, membroClasse + // elements: superClasse, ID, membroClasse // token labels: // rule labels: retval // token list labels: @@ -846,9 +849,9 @@ else if ( (LA6_0==19) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 53:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 56:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -859,14 +862,14 @@ else if ( (LA6_0==19) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:34: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:34: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -896,33 +899,33 @@ else if ( (LA6_0==19) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:19: '.method' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:19: '.method' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal20=(Token)match(input,19,FOLLOW_19_in_definicaoClasse340); + string_literal20=(Token)match(input,22,FOLLOW_22_in_definicaoClasse355); string_literal20_tree = (BytecodesAST)adaptor.create(string_literal20) ; adaptor.addChild(root_0, string_literal20_tree); - INIT21=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse342); + INIT21=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse357); INIT21_tree = (BytecodesAST)adaptor.create(INIT21) ; adaptor.addChild(root_0, INIT21_tree); - string_literal22=(Token)match(input,16,FOLLOW_16_in_definicaoClasse344); + string_literal22=(Token)match(input,19,FOLLOW_19_in_definicaoClasse359); string_literal22_tree = (BytecodesAST)adaptor.create(string_literal22) ; adaptor.addChild(root_0, string_literal22_tree); - VOID23=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse346); + VOID23=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse361); VOID23_tree = (BytecodesAST)adaptor.create(VOID23) ; @@ -962,7 +965,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -975,18 +978,18 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal24_tree=null; BytecodesAST ID25_tree=null; - RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:15: '.super' ID { - string_literal24=(Token)match(input,20,FOLLOW_20_in_superClasse387); - stream_20.add(string_literal24); + string_literal24=(Token)match(input,23,FOLLOW_23_in_superClasse402); + stream_23.add(string_literal24); - ID25=(Token)match(input,ID,FOLLOW_ID_in_superClasse389); + ID25=(Token)match(input,ID,FOLLOW_ID_in_superClasse404); stream_ID.add(ID25); @@ -1001,9 +1004,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 57:27: -> ^( EXTENDS ID ) + // 60:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1053,7 +1056,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1068,22 +1071,22 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST string_literal26_tree=null; BytecodesAST ID27_tree=null; + RewriteRuleTokenStream stream_21=new RewriteRuleTokenStream(adaptor,"token 21"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_18=new RewriteRuleTokenStream(adaptor,"token 18"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:16: '.field' ID tipo { - string_literal26=(Token)match(input,18,FOLLOW_18_in_membroClasse406); - stream_18.add(string_literal26); + string_literal26=(Token)match(input,21,FOLLOW_21_in_membroClasse421); + stream_21.add(string_literal26); - ID27=(Token)match(input,ID,FOLLOW_ID_in_membroClasse408); + ID27=(Token)match(input,ID,FOLLOW_ID_in_membroClasse423); stream_ID.add(ID27); - pushFollow(FOLLOW_tipo_in_membroClasse410); + pushFollow(FOLLOW_tipo_in_membroClasse425); tipo28=tipo(); state._fsp--; @@ -1091,7 +1094,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo28.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1101,9 +1104,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 59:33: -> ^( FIELD_DECL ID tipo ) + // 62:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1155,7 +1158,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( GETFIELD $b tipo ) |a= 'putfield' b= campo tipo -> ^( PUTFIELD $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( INVOKESPECIAL $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1164,10 +1167,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token VOID31=null; AssemblerParser.campo_return b =null; - AssemblerParser.construtorDefault_return c =null; + AssemblerParser.chamadaMetodo_return c =null; AssemblerParser.tipo_return tipo29 =null; @@ -1175,23 +1177,27 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST a_tree=null; - BytecodesAST VOID31_tree=null; - + RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); + RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); + RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); + RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:20: (a= 'getfield' b= campo tipo |a= 'putfield' b= campo tipo |a= 'invokespecial' c= construtorDefault VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:20: (a= 'getfield' b= campo tipo -> ^( GETFIELD $b tipo ) |a= 'putfield' b= campo tipo -> ^( PUTFIELD $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( INVOKESPECIAL $c) ) int alt7=3; switch ( input.LA(1) ) { - case 34: + case 37: { alt7=1; } break; - case 80: + case 83: { alt7=2; } break; - case 66: + case 69: { alt7=3; } @@ -1206,95 +1212,161 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:22: a= 'getfield' b= campo tipo { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,34,FOLLOW_34_in_manipulacaoObjetos462); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,37,FOLLOW_37_in_manipulacaoObjetos477); + stream_37.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos468); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos483); b=campo(); state._fsp--; - adaptor.addChild(root_0, b.getTree()); + stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos470); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos485); tipo29=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo29.getTree()); + stream_tipo.add(tipo29.getTree()); + + // AST REWRITE + // elements: b, tipo + // token labels: + // rule labels: retval, b + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 66:52: -> ^( GETFIELD $b tipo ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:55: ^( GETFIELD $b tipo ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(GETFIELD, "GETFIELD") + , root_1); + + adaptor.addChild(root_1, stream_b.nextTree()); + + adaptor.addChild(root_1, stream_tipo.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } - acessarCampo(a, (b!=null?b.classe:null), (b!=null?b.campo:null)); + + retval.tree = root_0; } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:22: a= 'putfield' b= campo tipo { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,80,FOLLOW_80_in_manipulacaoObjetos499); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,83,FOLLOW_83_in_manipulacaoObjetos523); + stream_83.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos505); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos529); b=campo(); state._fsp--; - adaptor.addChild(root_0, b.getTree()); + stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos507); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos531); tipo30=tipo(); state._fsp--; - adaptor.addChild(root_0, tipo30.getTree()); + stream_tipo.add(tipo30.getTree()); - acessarCampo(a, (b!=null?b.classe:null), (b!=null?b.campo:null)); + // AST REWRITE + // elements: tipo, b + // token labels: + // rule labels: retval, b + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 67:52: -> ^( PUTFIELD $b tipo ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:55: ^( PUTFIELD $b tipo ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(PUTFIELD, "PUTFIELD") + , root_1); + + adaptor.addChild(root_1, stream_b.nextTree()); + + adaptor.addChild(root_1, stream_tipo.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:22: a= 'invokespecial' c= construtorDefault VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:22: a= 'invokespecial' c= chamadaMetodo { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,69,FOLLOW_69_in_manipulacaoObjetos570); + stream_69.add(a); - a=(Token)match(input,66,FOLLOW_66_in_manipulacaoObjetos536); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos576); + c=chamadaMetodo(); + state._fsp--; - pushFollow(FOLLOW_construtorDefault_in_manipulacaoObjetos542); - c=construtorDefault(); + stream_chamadaMetodo.add(c.getTree()); - state._fsp--; + // AST REWRITE + // elements: c + // token labels: + // rule labels: retval, c + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); - adaptor.addChild(root_0, c.getTree()); + root_0 = (BytecodesAST)adaptor.nil(); + // 68:60: -> ^( INVOKESPECIAL $c) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:63: ^( INVOKESPECIAL $c) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(INVOKESPECIAL, "INVOKESPECIAL") + , root_1); - VOID31=(Token)match(input,VOID,FOLLOW_VOID_in_manipulacaoObjetos544); - VOID31_tree = - (BytecodesAST)adaptor.create(VOID31) - ; - adaptor.addChild(root_0, VOID31_tree); + adaptor.addChild(root_1, stream_c.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } - chamarMetodo(a, (c!=null?c.classe:null)); + retval.tree = root_0; } break; @@ -1329,7 +1401,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1337,16 +1409,16 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT32=null; - Token VOID33=null; - AssemblerParser.tipoRef_return tipoRef34 =null; + Token INT31=null; + Token VOID32=null; + AssemblerParser.tipoRef_return tipoRef33 =null; - BytecodesAST INT32_tree=null; - BytecodesAST VOID33_tree=null; + BytecodesAST INT31_tree=null; + BytecodesAST VOID32_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1359,7 +1431,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { alt8=2; } break; - case 23: + case 26: { alt8=3; } @@ -1374,47 +1446,47 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT32=(Token)match(input,INT,FOLLOW_INT_in_tipo576); - INT32_tree = - (BytecodesAST)adaptor.create(INT32) + INT31=(Token)match(input,INT,FOLLOW_INT_in_tipo615); + INT31_tree = + (BytecodesAST)adaptor.create(INT31) ; - adaptor.addChild(root_0, INT32_tree); + adaptor.addChild(root_0, INT31_tree); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID33=(Token)match(input,VOID,FOLLOW_VOID_in_tipo580); - VOID33_tree = - (BytecodesAST)adaptor.create(VOID33) + VOID32=(Token)match(input,VOID,FOLLOW_VOID_in_tipo619); + VOID32_tree = + (BytecodesAST)adaptor.create(VOID32) ; - adaptor.addChild(root_0, VOID33_tree); + adaptor.addChild(root_0, VOID32_tree); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo584); - tipoRef34=tipoRef(); + pushFollow(FOLLOW_tipoRef_in_tipo623); + tipoRef33=tipoRef(); state._fsp--; - adaptor.addChild(root_0, tipoRef34.getTree()); + adaptor.addChild(root_0, tipoRef33.getTree()); } break; @@ -1449,7 +1521,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1462,40 +1534,40 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { - case 36: + case 39: { alt9=1; } break; - case 74: + case 77: { alt9=2; } break; - case 64: + case 67: { alt9=3; } break; - case 45: + case 48: { alt9=4; } break; - case 68: + case 71: { alt9=5; } break; - case 58: + case 61: { alt9=6; } break; - case 65: + case 68: { alt9=7; } @@ -1510,12 +1582,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_aritmetica597); + a=(Token)match(input,39,FOLLOW_39_in_aritmetica636); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1527,12 +1599,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,74,FOLLOW_74_in_aritmetica618); + a=(Token)match(input,77,FOLLOW_77_in_aritmetica657); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1544,12 +1616,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_aritmetica639); + a=(Token)match(input,67,FOLLOW_67_in_aritmetica678); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1561,12 +1633,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_aritmetica660); + a=(Token)match(input,48,FOLLOW_48_in_aritmetica699); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1578,12 +1650,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_aritmetica681); + a=(Token)match(input,71,FOLLOW_71_in_aritmetica720); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1595,12 +1667,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_aritmetica702); + a=(Token)match(input,61,FOLLOW_61_in_aritmetica741); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1612,12 +1684,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_aritmetica723); + a=(Token)match(input,68,FOLLOW_68_in_aritmetica762); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1659,7 +1731,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1668,105 +1740,105 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST root_0 = null; Token a=null; + Token INTEIRO34=null; Token INTEIRO35=null; Token INTEIRO36=null; - Token INTEIRO37=null; BytecodesAST a_tree=null; + BytecodesAST INTEIRO34_tree=null; BytecodesAST INTEIRO35_tree=null; BytecodesAST INTEIRO36_tree=null; - BytecodesAST INTEIRO37_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { - case 44: + case 47: { alt10=1; } break; - case 38: + case 41: { alt10=2; } break; - case 39: + case 42: { alt10=3; } break; - case 40: + case 43: { alt10=4; } break; - case 41: + case 44: { alt10=5; } break; - case 42: + case 45: { alt10=6; } break; - case 43: + case 46: { alt10=7; } break; - case 60: + case 63: { alt10=8; } break; - case 61: + case 64: { alt10=9; } break; - case 62: + case 65: { alt10=10; } break; - case 63: + case 66: { alt10=11; } break; - case 59: + case 62: { alt10=12; } break; - case 76: + case 79: { alt10=13; } break; - case 24: + case 27: { alt10=14; } break; - case 25: + case 28: { alt10=15; } break; - case 26: + case 29: { alt10=16; } break; - case 27: + case 30: { alt10=17; } break; - case 28: + case 31: { alt10=18; } @@ -1781,12 +1853,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_load760); + a=(Token)match(input,47,FOLLOW_47_in_load799); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1798,12 +1870,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_load774); + a=(Token)match(input,41,FOLLOW_41_in_load813); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1815,12 +1887,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_load789); + a=(Token)match(input,42,FOLLOW_42_in_load828); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1832,12 +1904,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_load804); + a=(Token)match(input,43,FOLLOW_43_in_load843); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1849,12 +1921,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_load819); + a=(Token)match(input,44,FOLLOW_44_in_load858); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1866,12 +1938,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_load833); + a=(Token)match(input,45,FOLLOW_45_in_load872); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1883,12 +1955,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_load847); + a=(Token)match(input,46,FOLLOW_46_in_load886); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1900,12 +1972,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,60,FOLLOW_60_in_load861); + a=(Token)match(input,63,FOLLOW_63_in_load900); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1917,12 +1989,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,61,FOLLOW_61_in_load876); + a=(Token)match(input,64,FOLLOW_64_in_load915); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1934,12 +2006,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_load891); + a=(Token)match(input,65,FOLLOW_65_in_load930); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1951,12 +2023,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_load906); + a=(Token)match(input,66,FOLLOW_66_in_load945); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1968,84 +2040,84 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_load921); + a=(Token)match(input,62,FOLLOW_62_in_load960); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load923); - INTEIRO35_tree = - (BytecodesAST)adaptor.create(INTEIRO35) + INTEIRO34=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load962); + INTEIRO34_tree = + (BytecodesAST)adaptor.create(INTEIRO34) ; - adaptor.addChild(root_0, INTEIRO35_tree); + adaptor.addChild(root_0, INTEIRO34_tree); - escreverOpcode(a, INTEIRO35); + escreverOpcode(a, INTEIRO34); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,76,FOLLOW_76_in_load938); + a=(Token)match(input,79,FOLLOW_79_in_load977); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load940); - INTEIRO36_tree = - (BytecodesAST)adaptor.create(INTEIRO36) + INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load979); + INTEIRO35_tree = + (BytecodesAST)adaptor.create(INTEIRO35) ; - adaptor.addChild(root_0, INTEIRO36_tree); + adaptor.addChild(root_0, INTEIRO35_tree); - escreverOpcode(a, INTEIRO36); + escreverOpcode(a, INTEIRO35); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: a= 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: a= 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,24,FOLLOW_24_in_load955); + a=(Token)match(input,27,FOLLOW_27_in_load994); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load957); - INTEIRO37_tree = - (BytecodesAST)adaptor.create(INTEIRO37) + INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load996); + INTEIRO36_tree = + (BytecodesAST)adaptor.create(INTEIRO36) ; - adaptor.addChild(root_0, INTEIRO37_tree); + adaptor.addChild(root_0, INTEIRO36_tree); - escreverOpcode(a, INTEIRO37); + escreverOpcode(a, INTEIRO36); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:8: a= 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,25,FOLLOW_25_in_load972); + a=(Token)match(input,28,FOLLOW_28_in_load1011); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2057,12 +2129,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:8: a= 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,26,FOLLOW_26_in_load987); + a=(Token)match(input,29,FOLLOW_29_in_load1026); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2074,12 +2146,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:8: a= 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,27,FOLLOW_27_in_load1002); + a=(Token)match(input,30,FOLLOW_30_in_load1041); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2091,12 +2163,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:8: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:8: a= 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,28,FOLLOW_28_in_load1016); + a=(Token)match(input,31,FOLLOW_31_in_load1055); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2138,7 +2210,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2147,63 +2219,63 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST root_0 = null; Token a=null; + Token INTEIRO37=null; Token INTEIRO38=null; - Token INTEIRO39=null; BytecodesAST a_tree=null; + BytecodesAST INTEIRO37_tree=null; BytecodesAST INTEIRO38_tree=null; - BytecodesAST INTEIRO39_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt11=10; switch ( input.LA(1) ) { - case 70: + case 73: { alt11=1; } break; - case 71: + case 74: { alt11=2; } break; - case 72: + case 75: { alt11=3; } break; - case 73: + case 76: { alt11=4; } break; - case 69: + case 72: { alt11=5; } break; - case 29: + case 32: { alt11=6; } break; - case 30: + case 33: { alt11=7; } break; - case 31: + case 34: { alt11=8; } break; - case 32: + case 35: { alt11=9; } break; - case 33: + case 36: { alt11=10; } @@ -2218,12 +2290,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_store1040); + a=(Token)match(input,73,FOLLOW_73_in_store1079); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2235,12 +2307,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,71,FOLLOW_71_in_store1056); + a=(Token)match(input,74,FOLLOW_74_in_store1095); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2252,12 +2324,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,72,FOLLOW_72_in_store1072); + a=(Token)match(input,75,FOLLOW_75_in_store1111); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2269,12 +2341,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,73,FOLLOW_73_in_store1088); + a=(Token)match(input,76,FOLLOW_76_in_store1127); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2286,60 +2358,60 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,69,FOLLOW_69_in_store1104); + a=(Token)match(input,72,FOLLOW_72_in_store1143); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1106); - INTEIRO38_tree = - (BytecodesAST)adaptor.create(INTEIRO38) + INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1145); + INTEIRO37_tree = + (BytecodesAST)adaptor.create(INTEIRO37) ; - adaptor.addChild(root_0, INTEIRO38_tree); + adaptor.addChild(root_0, INTEIRO37_tree); - verificarAumentoMemoriaGlobal(a, INTEIRO38); + verificarAumentoMemoriaGlobal(a, INTEIRO37); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:9: a= 'astore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:9: a= 'astore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,29,FOLLOW_29_in_store1122); + a=(Token)match(input,32,FOLLOW_32_in_store1161); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO39=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1124); - INTEIRO39_tree = - (BytecodesAST)adaptor.create(INTEIRO39) + INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1163); + INTEIRO38_tree = + (BytecodesAST)adaptor.create(INTEIRO38) ; - adaptor.addChild(root_0, INTEIRO39_tree); + adaptor.addChild(root_0, INTEIRO38_tree); - verificarAumentoMemoriaGlobal(a, INTEIRO39); + verificarAumentoMemoriaGlobal(a, INTEIRO38); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:9: a= 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:9: a= 'astore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_store1140); + a=(Token)match(input,33,FOLLOW_33_in_store1179); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2351,12 +2423,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:9: a= 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:9: a= 'astore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_store1156); + a=(Token)match(input,34,FOLLOW_34_in_store1195); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2368,12 +2440,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:9: a= 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:9: a= 'astore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_store1172); + a=(Token)match(input,35,FOLLOW_35_in_store1211); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2385,12 +2457,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:9: a= 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:9: a= 'astore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_store1188); + a=(Token)match(input,36,FOLLOW_36_in_store1227); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2432,7 +2504,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2445,20 +2517,20 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { - case 37: + case 40: { alt12=1; } break; - case 67: + case 70: { alt12=2; } break; - case 75: + case 78: { alt12=3; } @@ -2473,12 +2545,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,37,FOLLOW_37_in_logica1209); + a=(Token)match(input,40,FOLLOW_40_in_logica1248); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2490,12 +2562,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_logica1226); + a=(Token)match(input,70,FOLLOW_70_in_logica1265); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2507,12 +2579,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,75,FOLLOW_75_in_logica1243); + a=(Token)match(input,78,FOLLOW_78_in_logica1282); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2554,7 +2626,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2569,70 +2641,70 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { - case 52: + case 55: { alt13=1; } break; - case 57: + case 60: { alt13=2; } break; - case 56: + case 59: { alt13=3; } break; - case 53: + case 56: { alt13=4; } break; - case 54: + case 57: { alt13=5; } break; - case 55: + case 58: { alt13=6; } break; - case 46: + case 49: { alt13=7; } break; - case 51: + case 54: { alt13=8; } break; - case 50: + case 53: { alt13=9; } break; - case 47: + case 50: { alt13=10; } break; - case 48: + case 51: { alt13=11; } break; - case 49: + case 52: { alt13=12; } break; - case 35: + case 38: { alt13=13; } @@ -2647,19 +2719,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_desvio1265); + a=(Token)match(input,55,FOLLOW_55_in_desvio1304); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1271); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1310); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2671,19 +2743,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_desvio1288); + a=(Token)match(input,60,FOLLOW_60_in_desvio1327); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1294); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1333); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2695,19 +2767,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_desvio1311); + a=(Token)match(input,59,FOLLOW_59_in_desvio1350); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1317); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1356); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2719,19 +2791,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_desvio1334); + a=(Token)match(input,56,FOLLOW_56_in_desvio1373); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1340); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1379); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2743,19 +2815,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_desvio1357); + a=(Token)match(input,57,FOLLOW_57_in_desvio1396); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1363); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1402); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2767,19 +2839,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_desvio1380); + a=(Token)match(input,58,FOLLOW_58_in_desvio1419); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1386); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1425); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2791,19 +2863,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_desvio1403); + a=(Token)match(input,49,FOLLOW_49_in_desvio1442); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1409); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1448); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2815,19 +2887,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1426); + a=(Token)match(input,54,FOLLOW_54_in_desvio1465); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1432); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1471); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2839,19 +2911,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1449); + a=(Token)match(input,53,FOLLOW_53_in_desvio1488); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1455); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1494); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2863,19 +2935,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_desvio1472); + a=(Token)match(input,50,FOLLOW_50_in_desvio1511); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1478); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1517); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2887,19 +2959,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_desvio1495); + a=(Token)match(input,51,FOLLOW_51_in_desvio1534); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1501); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1540); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2911,19 +2983,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1518); + a=(Token)match(input,52,FOLLOW_52_in_desvio1557); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1524); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1563); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2935,19 +3007,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_desvio1541); + a=(Token)match(input,38,FOLLOW_38_in_desvio1580); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1547); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1586); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2982,44 +3054,52 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, // $ANTLR end "desvio" - public static class construtorDefault_return extends ParserRuleReturnScope { + public static class chamadaMetodo_return extends ParserRuleReturnScope { public List classe; + public String nome; + public String params; + public String tipoRetorno; BytecodesAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "construtorDefault" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:1: construtorDefault returns [List classe] : (cls+= ID '/' )+ INIT '()' ; - public final AssemblerParser.construtorDefault_return construtorDefault() throws RecognitionException { - AssemblerParser.construtorDefault_return retval = new AssemblerParser.construtorDefault_return(); + // $ANTLR start "chamadaMetodo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:1: chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] : (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ; + public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { + AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - Token char_literal40=null; - Token INIT41=null; - Token string_literal42=null; + Token n=null; + Token par=null; + Token tip=null; + Token char_literal39=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal40_tree=null; - BytecodesAST INIT41_tree=null; - BytecodesAST string_literal42_tree=null; + BytecodesAST n_tree=null; + BytecodesAST par_tree=null; + BytecodesAST tip_tree=null; + BytecodesAST char_literal39_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); + retval.nome = ""; + retval.params = ""; + retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:6: ( (cls+= ID '/' )+ INIT '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (cls+= ID '/' )+ INIT '()' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:6: ( (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:8: (cls+= ID '/' )+ n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:8: (cls+= ID '/' )+ int cnt14=0; loop14: do { @@ -3033,9 +3113,9 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_construtorDefault1589); + cls=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo1628); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3045,11 +3125,11 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws list_cls.add(cls); - char_literal40=(Token)match(input,21,FOLLOW_21_in_construtorDefault1591); - char_literal40_tree = - (BytecodesAST)adaptor.create(char_literal40) + char_literal39=(Token)match(input,24,FOLLOW_24_in_chamadaMetodo1630); + char_literal39_tree = + (BytecodesAST)adaptor.create(char_literal39) ; - adaptor.addChild(root_0, char_literal40_tree); + adaptor.addChild(root_0, char_literal39_tree); } @@ -3065,21 +3145,32 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws } while (true); - INIT41=(Token)match(input,INIT,FOLLOW_INIT_in_construtorDefault1595); - INIT41_tree = - (BytecodesAST)adaptor.create(INIT41) + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo1638); + n_tree = + (BytecodesAST)adaptor.create(n) ; - adaptor.addChild(root_0, INIT41_tree); + adaptor.addChild(root_0, n_tree); - string_literal42=(Token)match(input,16,FOLLOW_16_in_construtorDefault1597); - string_literal42_tree = - (BytecodesAST)adaptor.create(string_literal42) + par=(Token)match(input,19,FOLLOW_19_in_chamadaMetodo1644); + par_tree = + (BytecodesAST)adaptor.create(par) ; - adaptor.addChild(root_0, string_literal42_tree); + adaptor.addChild(root_0, par_tree); + + + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo1650); + tip_tree = + (BytecodesAST)adaptor.create(tip) + ; + adaptor.addChild(root_0, tip_tree); retval.classe = list_cls; + retval.nome = (n!=null?n.getText():null); + retval.params = (par!=null?par.getText():null); + retval.tipoRetorno = (tip!=null?tip.getText():null); + } @@ -3102,7 +3193,7 @@ public final AssemblerParser.construtorDefault_return construtorDefault() throws } return retval; } - // $ANTLR end "construtorDefault" + // $ANTLR end "chamadaMetodo" public static class campo_return extends ParserRuleReturnScope { @@ -3114,7 +3205,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3123,12 +3214,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal43=null; + Token char_literal40=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal43_tree=null; + BytecodesAST char_literal40_tree=null; BytecodesAST cls_tree=null; @@ -3136,13 +3227,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:8: (cls+= ID '/' )+ int cnt15=0; loop15: do { @@ -3152,7 +3243,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { if ( (LA15_0==ID) ) { int LA15_1 = input.LA(2); - if ( (LA15_1==21) ) { + if ( (LA15_1==24) ) { alt15=1; } @@ -3162,9 +3253,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo1637); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo1690); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3174,11 +3265,11 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal43=(Token)match(input,21,FOLLOW_21_in_campo1639); - char_literal43_tree = - (BytecodesAST)adaptor.create(char_literal43) + char_literal40=(Token)match(input,24,FOLLOW_24_in_campo1692); + char_literal40_tree = + (BytecodesAST)adaptor.create(char_literal40) ; - adaptor.addChild(root_0, char_literal43_tree); + adaptor.addChild(root_0, char_literal40_tree); } @@ -3194,7 +3285,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1647); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1700); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3234,7 +3325,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3242,31 +3333,31 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST root_0 = null; - Token char_literal44=null; - Token ID45=null; - Token char_literal46=null; - Token ID47=null; + Token char_literal41=null; + Token ID42=null; + Token char_literal43=null; + Token ID44=null; - BytecodesAST char_literal44_tree=null; - BytecodesAST ID45_tree=null; - BytecodesAST char_literal46_tree=null; - BytecodesAST ID47_tree=null; + BytecodesAST char_literal41_tree=null; + BytecodesAST ID42_tree=null; + BytecodesAST char_literal43_tree=null; + BytecodesAST ID44_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal44=(Token)match(input,23,FOLLOW_23_in_tipoRef1663); - char_literal44_tree = - (BytecodesAST)adaptor.create(char_literal44) + char_literal41=(Token)match(input,26,FOLLOW_26_in_tipoRef1716); + char_literal41_tree = + (BytecodesAST)adaptor.create(char_literal41) ; - adaptor.addChild(root_0, char_literal44_tree); + adaptor.addChild(root_0, char_literal41_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:15: ( ID '/' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:15: ( ID '/' )* loop16: do { int alt16=2; @@ -3275,7 +3366,7 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio if ( (LA16_0==ID) ) { int LA16_1 = input.LA(2); - if ( (LA16_1==21) ) { + if ( (LA16_1==24) ) { alt16=1; } @@ -3285,20 +3376,20 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:16: ID '/' { - ID45=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1666); - ID45_tree = - (BytecodesAST)adaptor.create(ID45) + ID42=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1719); + ID42_tree = + (BytecodesAST)adaptor.create(ID42) ; - adaptor.addChild(root_0, ID45_tree); + adaptor.addChild(root_0, ID42_tree); - char_literal46=(Token)match(input,21,FOLLOW_21_in_tipoRef1668); - char_literal46_tree = - (BytecodesAST)adaptor.create(char_literal46) + char_literal43=(Token)match(input,24,FOLLOW_24_in_tipoRef1721); + char_literal43_tree = + (BytecodesAST)adaptor.create(char_literal43) ; - adaptor.addChild(root_0, char_literal46_tree); + adaptor.addChild(root_0, char_literal43_tree); } @@ -3310,11 +3401,11 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio } while (true); - ID47=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1672); - ID47_tree = - (BytecodesAST)adaptor.create(ID47) + ID44=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1725); + ID44_tree = + (BytecodesAST)adaptor.create(ID44) ; - adaptor.addChild(root_0, ID47_tree); + adaptor.addChild(root_0, ID44_tree); } @@ -3345,128 +3436,128 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio - public static final BitSet FOLLOW_comando_in_programa77 = new BitSet(new long[]{0xFFFFFFFFFF0A1082L,0x000000000001FFFFL}); - public static final BitSet FOLLOW_label_in_comando97 = new BitSet(new long[]{0xFFFFFFFFFF0A1000L,0x000000000001FFFFL}); - public static final BitSet FOLLOW_instrucao_in_comando99 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando103 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label125 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_22_in_label127 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao137 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao141 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao145 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_load_in_instrucao149 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_store_in_instrucao153 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_desvio_in_instrucao157 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_logica_in_instrucao161 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_77_in_instrucao184 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_78_in_instrucao206 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_79_in_instrucao230 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao250 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_definicaoClasse272 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse274 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse276 = new BitSet(new long[]{0x0000000000140000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse278 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse281 = new BitSet(new long[]{0x0000000000040002L}); - public static final BitSet FOLLOW_19_in_definicaoClasse340 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_INIT_in_definicaoClasse342 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_definicaoClasse344 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_VOID_in_definicaoClasse346 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_20_in_superClasse387 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_superClasse389 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_18_in_membroClasse406 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_membroClasse408 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_membroClasse410 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_manipulacaoObjetos462 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos468 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos470 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_manipulacaoObjetos499 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos505 = new BitSet(new long[]{0x0000000000804200L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos507 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_manipulacaoObjetos536 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_construtorDefault_in_manipulacaoObjetos542 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_VOID_in_manipulacaoObjetos544 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo576 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo580 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo584 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_aritmetica597 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica618 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_aritmetica639 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_aritmetica660 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_aritmetica681 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_aritmetica702 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_aritmetica723 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load760 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load774 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load789 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load804 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load819 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load833 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load847 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load861 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load876 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load891 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load906 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load921 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load923 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load938 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load940 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load955 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_load957 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load972 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load987 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load1002 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_load1016 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_store1040 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_store1056 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_store1072 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_store1088 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_store1104 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1106 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_store1122 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INTEIRO_in_store1124 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_store1140 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_store1156 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_store1172 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_store1188 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_logica1209 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_logica1226 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_logica1243 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1265 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1271 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio1288 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1294 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio1311 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1317 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_desvio1334 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1340 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_desvio1357 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1363 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio1380 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1386 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1403 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1409 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1426 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1432 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1449 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1455 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1472 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1478 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1495 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1501 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1518 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1524 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_desvio1541 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_desvio1547 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_construtorDefault1589 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_construtorDefault1591 = new BitSet(new long[]{0x0000000000000180L}); - public static final BitSet FOLLOW_INIT_in_construtorDefault1595 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_16_in_construtorDefault1597 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo1637 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_campo1639 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_campo1647 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_tipoRef1663 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1666 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_tipoRef1668 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_ID_in_tipoRef1672 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_programa92 = new BitSet(new long[]{0xFFFFFFFFF8504102L,0x00000000000FFFFFL}); + public static final BitSet FOLLOW_label_in_comando112 = new BitSet(new long[]{0xFFFFFFFFF8504000L,0x00000000000FFFFFL}); + public static final BitSet FOLLOW_instrucao_in_comando114 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando118 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label140 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_25_in_label142 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao152 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao156 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao160 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_load_in_instrucao164 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_store_in_instrucao168 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_desvio_in_instrucao172 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_logica_in_instrucao176 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_80_in_instrucao199 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_81_in_instrucao221 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_82_in_instrucao245 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao265 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_definicaoClasse287 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse289 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse291 = new BitSet(new long[]{0x0000000000A00000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse293 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse296 = new BitSet(new long[]{0x0000000000200002L}); + public static final BitSet FOLLOW_22_in_definicaoClasse355 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INIT_in_definicaoClasse357 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_19_in_definicaoClasse359 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_VOID_in_definicaoClasse361 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_superClasse402 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_superClasse404 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_21_in_membroClasse421 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_membroClasse423 = new BitSet(new long[]{0x0000000004020400L}); + public static final BitSet FOLLOW_tipo_in_membroClasse425 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_manipulacaoObjetos477 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos483 = new BitSet(new long[]{0x0000000004020400L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos485 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_manipulacaoObjetos523 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos529 = new BitSet(new long[]{0x0000000004020400L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos531 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_manipulacaoObjetos570 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos576 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo615 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo619 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo623 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_aritmetica636 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_aritmetica657 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_aritmetica678 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_aritmetica699 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_aritmetica720 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_aritmetica741 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_aritmetica762 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load799 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load813 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load828 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load843 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load858 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_load872 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load886 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load900 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_load915 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_load930 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_load945 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load960 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_load962 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_load977 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_load979 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load994 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_load996 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_load1011 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_load1026 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_load1041 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_load1055 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_store1079 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_store1095 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_store1111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_store1127 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_store1143 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_store1145 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_store1161 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_store1163 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_store1179 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_store1195 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_store1211 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_store1227 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_logica1248 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_logica1265 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_logica1282 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio1304 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1310 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_desvio1327 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1333 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio1350 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio1373 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1379 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio1396 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1402 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_desvio1419 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1425 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1442 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1448 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_desvio1465 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1471 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_desvio1488 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1494 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1511 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1517 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1534 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1540 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1557 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1563 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_desvio1580 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1586 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_chamadaMetodo1628 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_24_in_chamadaMetodo1630 = new BitSet(new long[]{0x0000000000000300L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo1638 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_19_in_chamadaMetodo1644 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo1650 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo1690 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_24_in_campo1692 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_campo1700 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_tipoRef1716 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_tipoRef1719 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_24_in_tipoRef1721 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_tipoRef1725 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 27a7421..30aadb3 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -10,6 +10,9 @@ tokens { MEMBRO_CLASSE; FIELD_DECL; EXTENDS; + GETFIELD; + PUTFIELD; + INVOKESPECIAL; } @header{ @@ -60,9 +63,9 @@ membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) ; -manipulacaoObjetos : a = 'getfield' b = campo tipo {acessarCampo($a, $b.classe, $b.campo);} - | a = 'putfield' b = campo tipo {acessarCampo($a, $b.classe, $b.campo);} - | a = 'invokespecial' c = construtorDefault VOID {chamarMetodo($a, $c.classe);} +manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^(GETFIELD $b tipo) + | a = 'putfield' b = campo tipo -> ^(PUTFIELD $b tipo) + | a = 'invokespecial' c = chamadaMetodo -> ^(INVOKESPECIAL $c) ; tipo : INT | VOID | tipoRef ; @@ -128,11 +131,18 @@ desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} | a = 'goto' b = ID {escreverOpcode($a, $b);} ; -construtorDefault returns [List classe] +chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] @init { $classe = new ArrayList(); + $nome = ""; + $params = ""; + $tipoRetorno = ""; } - : (cls += ID '/')+ INIT '()' {$classe = $cls;} + : (cls += ID '/')+ n = INIT par = '()' tip = VOID {$classe = $cls; + $nome = $n.text; + $params = $par.text; + $tipoRetorno = $tip.text; + } ; campo returns [List classe, String campo] diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index e5fbdd3..959960c 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -31,7 +31,11 @@ topdown : entraNaClasse | declaracaoVariavel ; -bottomup : saiDaClasse; +bottomup : saiDaClasse + | getfield + | putfield + | invokespecial + ; entraNaClasse : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) @@ -59,9 +63,34 @@ declaracaoVariavel escopoAtual.definir(variavel); } ; + saiDaClasse : CLASSE { System.out.println("Saindo da classe.. membros: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } - ; \ No newline at end of file + ; + +getfield + : GETFIELD + { + System.out.println("Saindo do getfield.."); + } + ; + +putfield + : PUTFIELD + { + System.out.println("Saindo do putfield.."); + } + ; + +invokespecial + : INVOKESPECIAL + { + System.out.println("Saindo do invokespecial.."); + } + ; + + + diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index a771051..47cb0f3 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -33,10 +33,13 @@ options { } topdown - : entraNaClasse - | declaracaoVariavel + : entraNaClasse + | declaracaoVariavel + | getfield + | putfield + | invokespecial ; - + entraNaClasse : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) { @@ -64,12 +67,24 @@ declaracaoVariavel // global, parameter, or local variable } ; -tipo returns [Tipo tsimb] -@init { - // get scope from AST; use to resolve type name and save it in AST - $start.simbolo = $start.escopo.resolver($start.getText()); - $tsimb = (Tipo)$start.simbolo; // return Type from this rule -} - : 'I' - | ID // struct name - ; \ No newline at end of file +getfield + : ^(GETFIELD classe = . . campo = . tipo = .) + { + System.out.println("Entrando no getfield.."); + } + ; + +putfield + : ^(PUTFIELD classe = . . campo = . tipo = .) + { + System.out.println("Entrando no putfield.."); + } + ; + +invokespecial + : ^(INVOKESPECIAL classe = . . metodo = . args = . tipo = .) + { + System.out.println("Entrando no invokespecial.."); + } + ; + \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java index e0922b8..c5ae7b5 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-02 00:02:39 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-03 22:49:06 package br.ufpb.iged.interpretador.symboltable.parser; @@ -20,14 +20,17 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "ID" + "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "GETFIELD", "ID", "INVOKESPECIAL", "PUTFIELD" }; public static final int EOF=-1; public static final int CLASSE=4; public static final int EXTENDS=5; public static final int FIELD_DECL=6; - public static final int ID=7; + public static final int GETFIELD=7; + public static final int ID=8; + public static final int INVOKESPECIAL=12; + public static final int PUTFIELD=16; // delegates public TreeFilter[] getDelegates() { @@ -121,20 +124,88 @@ else if ( (LA1_0==FIELD_DECL) ) { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:1: bottomup : saiDaClasse ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:1: bottomup : ( saiDaClasse | getfield | putfield | invokespecial ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: saiDaClasse - { - pushFollow(FOLLOW_saiDaClasse_in_bottomup77); - saiDaClasse(); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse | getfield | putfield | invokespecial ) + int alt2=4; + switch ( input.LA(1) ) { + case CLASSE: + { + alt2=1; + } + break; + case GETFIELD: + { + alt2=2; + } + break; + case PUTFIELD: + { + alt2=3; + } + break; + case INVOKESPECIAL: + { + alt2=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); - state._fsp--; - if (state.failed) return ; + throw nvae; } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: saiDaClasse + { + pushFollow(FOLLOW_saiDaClasse_in_bottomup77); + saiDaClasse(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:12: getfield + { + pushFollow(FOLLOW_getfield_in_bottomup90); + getfield(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:12: putfield + { + pushFollow(FOLLOW_putfield_in_bottomup103); + putfield(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:12: invokespecial + { + pushFollow(FOLLOW_invokespecial_in_bottomup116); + invokespecial(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } } catch (RecognitionException re) { reportError(re); @@ -151,51 +222,51 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse101); if (state.failed) return ; + match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse150); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse105); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse154); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:26: ( ^( EXTENDS sup= ID ) )? - int alt2=2; - int LA2_0 = input.LA(1); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:26: ( ^( EXTENDS sup= ID ) )? + int alt3=2; + int LA3_0 = input.LA(1); - if ( (LA2_0==EXTENDS) ) { - int LA2_1 = input.LA(2); + if ( (LA3_0==EXTENDS) ) { + int LA3_1 = input.LA(2); - if ( (LA2_1==DOWN) ) { - int LA2_3 = input.LA(3); + if ( (LA3_1==DOWN) ) { + int LA3_3 = input.LA(3); - if ( (LA2_3==ID) ) { - int LA2_4 = input.LA(4); + if ( (LA3_3==ID) ) { + int LA3_4 = input.LA(4); - if ( (LA2_4==UP) ) { - int LA2_5 = input.LA(5); + if ( (LA3_4==UP) ) { + int LA3_5 = input.LA(5); - if ( ((LA2_5 >= CLASSE && LA2_5 <= ID)) ) { - alt2=1; + if ( ((LA3_5 >= CLASSE && LA3_5 <= PUTFIELD)) ) { + alt3=1; } } } } } - switch (alt2) { + switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:27: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:27: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse109); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse158); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse113); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse162); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -241,19 +312,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:51:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:55:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:9: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:9: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel149); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel198); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel151); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel200); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -289,13 +360,13 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:62:1: saiDaClasse : CLASSE ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:1: saiDaClasse : CLASSE ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:62:13: ( CLASSE ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:62:15: CLASSE + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:13: ( CLASSE ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:15: CLASSE { - match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse179); if (state.failed) return ; + match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse233); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -317,6 +388,96 @@ public final void saiDaClasse() throws RecognitionException { } // $ANTLR end "saiDaClasse" + + + // $ANTLR start "getfield" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:1: getfield : GETFIELD ; + public final void getfield() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:5: ( GETFIELD ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:7: GETFIELD + { + match(input,GETFIELD,FOLLOW_GETFIELD_in_getfield273); if (state.failed) return ; + + if ( state.backtracking==1 ) { + System.out.println("Saindo do getfield.."); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "getfield" + + + + // $ANTLR start "putfield" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:1: putfield : PUTFIELD ; + public final void putfield() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:5: ( PUTFIELD ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:7: PUTFIELD + { + match(input,PUTFIELD,FOLLOW_PUTFIELD_in_putfield301); if (state.failed) return ; + + if ( state.backtracking==1 ) { + System.out.println("Saindo do putfield.."); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "putfield" + + + + // $ANTLR start "invokespecial" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: invokespecial : INVOKESPECIAL ; + public final void invokespecial() throws RecognitionException { + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:5: ( INVOKESPECIAL ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:7: INVOKESPECIAL + { + match(input,INVOKESPECIAL,FOLLOW_INVOKESPECIAL_in_invokespecial330); if (state.failed) return ; + + if ( state.backtracking==1 ) { + System.out.println("Saindo do invokespecial.."); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "invokespecial" + // Delegated rules @@ -325,12 +486,18 @@ public final void saiDaClasse() throws RecognitionException { public static final BitSet FOLLOW_entraNaClasse_in_topdown48 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declaracaoVariavel_in_topdown60 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDaClasse_in_bottomup77 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CLASSE_in_entraNaClasse101 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse105 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse109 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse113 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel149 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel151 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_CLASSE_in_saiDaClasse179 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getfield_in_bottomup90 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_bottomup103 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_bottomup116 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CLASSE_in_entraNaClasse150 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse154 = new BitSet(new long[]{0x00000000000007F0L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse158 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel198 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel200 = new BitSet(new long[]{0x00000000000007F0L}); + public static final BitSet FOLLOW_CLASSE_in_saiDaClasse233 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_GETFIELD_in_getfield273 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PUTFIELD_in_putfield301 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INVOKESPECIAL_in_invokespecial330 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens index 1f9a28f..eec9e33 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens @@ -1,4 +1,7 @@ CLASSE=4 EXTENDS=5 FIELD_DECL=6 -ID=7 +GETFIELD=7 +ID=8 +INVOKESPECIAL=9 +PUTFIELD=10 diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java index 1fee350..729abbf 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-02 00:02:39 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-03 22:49:06 package br.ufpb.iged.interpretador.symboltable.parser; @@ -20,15 +20,17 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "ID", "'I'" + "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "GETFIELD", "ID", "INVOKESPECIAL", "PUTFIELD" }; public static final int EOF=-1; - public static final int T__8=8; public static final int CLASSE=4; public static final int EXTENDS=5; public static final int FIELD_DECL=6; - public static final int ID=7; + public static final int GETFIELD=7; + public static final int ID=8; + public static final int INVOKESPECIAL=12; + public static final int PUTFIELD=16; // delegates public TreeFilter[] getDelegates() { @@ -66,20 +68,38 @@ public Tipo resolverTipo(String nomeTipo) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:35:1: topdown : ( entraNaClasse | declaracaoVariavel ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:35:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:5: ( entraNaClasse | declaracaoVariavel ) - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0==CLASSE) ) { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ) + int alt1=5; + switch ( input.LA(1) ) { + case CLASSE: + { alt1=1; - } - else if ( (LA1_0==FIELD_DECL) ) { + } + break; + case FIELD_DECL: + { alt1=2; - } - else { + } + break; + case GETFIELD: + { + alt1=3; + } + break; + case PUTFIELD: + { + alt1=4; + } + break; + case INVOKESPECIAL: + { + alt1=5; + } + break; + default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = new NoViableAltException("", 1, 0, input); @@ -87,11 +107,12 @@ else if ( (LA1_0==FIELD_DECL) ) { throw nvae; } + switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:9: entraNaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:7: entraNaClasse { - pushFollow(FOLLOW_entraNaClasse_in_topdown55); + pushFollow(FOLLOW_entraNaClasse_in_topdown53); entraNaClasse(); state._fsp--; @@ -100,14 +121,47 @@ else if ( (LA1_0==FIELD_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:37:9: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:37:7: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown65); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown61); declaracaoVariavel(); state._fsp--; if (state.failed) return ; + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:38:7: getfield + { + pushFollow(FOLLOW_getfield_in_topdown69); + getfield(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:39:7: putfield + { + pushFollow(FOLLOW_putfield_in_topdown77); + putfield(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:7: invokespecial + { + pushFollow(FOLLOW_invokespecial_in_topdown85); + invokespecial(); + + state._fsp--; + if (state.failed) return ; + } break; @@ -128,21 +182,21 @@ else if ( (LA1_0==FIELD_DECL) ) { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:43:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse85); if (state.failed) return ; + match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse109); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse89); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse113); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:26: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:26: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -158,7 +212,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_4==UP) ) { int LA2_5 = input.LA(5); - if ( ((LA2_5 >= CLASSE && LA2_5 <= 8)) ) { + if ( ((LA2_5 >= CLASSE && LA2_5 <= PUTFIELD)) ) { alt2=1; } } @@ -167,12 +221,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:41:27: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:27: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse93); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse117); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse97); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse121); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -221,19 +275,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:58:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:61:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:59:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:59:9: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:62:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:62:9: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel138); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel162); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel140); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel164); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -264,38 +318,150 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR end "declaracaoVariavel" - public static class tipo_return extends TreeRuleReturnScope { - public Tipo tsimb; - }; + // $ANTLR start "getfield" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:70:1: getfield : ^( GETFIELD classe= . . campo= . tipo= . ) ; + public final void getfield() throws RecognitionException { + BytecodesAST classe=null; + BytecodesAST campo=null; + BytecodesAST tipo=null; - // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:67:1: tipo returns [Tipo tsimb] : ( 'I' | ID ); - public final Ref.tipo_return tipo() throws RecognitionException { - Ref.tipo_return retval = new Ref.tipo_return(); - retval.start = input.LT(1); + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:71:5: ( ^( GETFIELD classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:71:7: ^( GETFIELD classe= . . campo= . tipo= . ) + { + match(input,GETFIELD,FOLLOW_GETFIELD_in_getfield203); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + campo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + tipo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("Entrando no getfield.."); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "getfield" - // get scope from AST; use to resolve type name and save it in AST - ((BytecodesAST)retval.start).simbolo = ((BytecodesAST)retval.start).escopo.resolver(((BytecodesAST)retval.start).getText()); - retval.tsimb = (Tipo)((BytecodesAST)retval.start).simbolo; // return Type from this rule + // $ANTLR start "putfield" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:77:1: putfield : ^( PUTFIELD classe= . . campo= . tipo= . ) ; + public final void putfield() throws RecognitionException { + BytecodesAST classe=null; + BytecodesAST campo=null; + BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:73:5: ( 'I' | ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:78:5: ( ^( PUTFIELD classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:78:7: ^( PUTFIELD classe= . . campo= . tipo= . ) { - if ( (input.LA(1) >= ID && input.LA(1) <= 8) ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return retval;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; + match(input,PUTFIELD,FOLLOW_PUTFIELD_in_putfield253); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + campo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + tipo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("Entrando no putfield.."); + } + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "putfield" + + + + // $ANTLR start "invokespecial" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:1: invokespecial : ^( INVOKESPECIAL classe= . . metodo= . args= . tipo= . ) ; + public final void invokespecial() throws RecognitionException { + BytecodesAST classe=null; + BytecodesAST metodo=null; + BytecodesAST args=null; + BytecodesAST tipo=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:5: ( ^( INVOKESPECIAL classe= . . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:7: ^( INVOKESPECIAL classe= . . metodo= . args= . tipo= . ) + { + match(input,INVOKESPECIAL,FOLLOW_INVOKESPECIAL_in_invokespecial303); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + metodo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + args=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + tipo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("Entrando no invokespecial.."); + } } @@ -308,22 +474,28 @@ public final Ref.tipo_return tipo() throws RecognitionException { finally { // do for sure before leaving } - return retval; + return ; } - // $ANTLR end "tipo" + // $ANTLR end "invokespecial" // Delegated rules - public static final BitSet FOLLOW_entraNaClasse_in_topdown55 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown65 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CLASSE_in_entraNaClasse85 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse89 = new BitSet(new long[]{0x00000000000001F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse93 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse97 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel138 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel140 = new BitSet(new long[]{0x00000000000001F0L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown53 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getfield_in_topdown69 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_topdown77 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_topdown85 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CLASSE_in_entraNaClasse109 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse113 = new BitSet(new long[]{0x00000000000007F0L}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse117 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse121 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel162 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel164 = new BitSet(new long[]{0x00000000000007F0L}); + public static final BitSet FOLLOW_GETFIELD_in_getfield203 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PUTFIELD_in_putfield253 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INVOKESPECIAL_in_invokespecial303 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens index 38876cd..eec9e33 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens @@ -1,6 +1,7 @@ -T__8=8 CLASSE=4 EXTENDS=5 FIELD_DECL=6 -ID=7 -'I'=8 +GETFIELD=7 +ID=8 +INVOKESPECIAL=9 +PUTFIELD=10 From 255e8c5a2dfcb3e185461717ac59e7e365b9a855 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Wed, 4 Jul 2012 00:02:12 -0300 Subject: [PATCH 34/79] commit --- Main.class | 7 +- .../asm/BytecodeAssembler.class | Bin 8417 -> 8399 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4403 -> 4403 bytes .../principal/Interpretador.class | Bin 12051 -> 11913 bytes .../ufpb/iged/interpretador/testes/Test.class | Bin 2403 -> 2295 bytes build.xml | 43 +- .../asm/BytecodeAssembler.java | 2 +- .../bytecodeassembler/asm/Definicao.java | 2 +- .../bytecodeassembler/parser/Assembler.tokens | 145 --- .../iged/interpretador/gramaticas/Assembler.g | 16 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 14 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 12 +- .../interpretador/parser/Assembler.tokens | 141 +++ .../parser/AssemblerLexer.java | 868 +++++++------ .../parser/AssemblerParser.java | 1070 ++++++++--------- .../{symboltable => }/parser/Def.java | 199 ++- .../ufpb/iged/interpretador/parser/Def.tokens | 141 +++ .../{symboltable => }/parser/Ref.java | 183 ++- .../ufpb/iged/interpretador/parser/Ref.tokens | 141 +++ .../principal/Interpretador.java | 6 +- .../symboltable/parser/Def.tokens | 7 - .../symboltable/parser/Ref.tokens | 7 - .../ufpb/iged/interpretador/testes/Test.java | 4 +- 23 files changed, 1686 insertions(+), 1322 deletions(-) delete mode 100644 src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens create mode 100644 src/br/ufpb/iged/interpretador/parser/Assembler.tokens rename src/br/ufpb/iged/interpretador/{bytecodeassembler => }/parser/AssemblerLexer.java (89%) rename src/br/ufpb/iged/interpretador/{bytecodeassembler => }/parser/AssemblerParser.java (76%) rename src/br/ufpb/iged/interpretador/{symboltable => }/parser/Def.java (63%) create mode 100644 src/br/ufpb/iged/interpretador/parser/Def.tokens rename src/br/ufpb/iged/interpretador/{symboltable => }/parser/Ref.java (63%) create mode 100644 src/br/ufpb/iged/interpretador/parser/Ref.tokens delete mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens delete mode 100644 src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens diff --git a/Main.class b/Main.class index e68ad51..8334173 100755 --- a/Main.class +++ b/Main.class @@ -56,9 +56,4 @@ L2: ineg iconst_3 putfield Main/xyz I getfield Main/abc I - putfield Main/ghs I - putfield Main/hju I - getfield Main/asd I - putfield Main/xcv I - - \ No newline at end of file + \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 08576a9fc1aaa0eba3cee7188087ce02617aa22e..cb0de1254f1a5da6466238be1fc3b0894a650a93 100644 GIT binary patch delta 26 icmaFpc;0bBIHTc20qKpcC&gLW7#J8hHwR1faR2~*h6m;V delta 31 ncmX@__|S1eIHU7qMkeXW{>(xfi%*KPaxgG3aBp^$=;HtYqtgh) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index e8fdfea598c0bd2cbf50e87f2977c334b13df661..0642c4576e5822980408870c19c9f78e3541f17e 100644 GIT binary patch delta 377 zcmYkyF-`(e5XSL&yJp$IB9ARhC|OVuHsK80X|h=h0t6cFAtF{@fJzh;@Bk*Sps@1- zgb+du0b>mJ;LS|4-TZ&wC{KBxL$f3x8QnI5PIwbt2POcd1e`?mFvQytU^HuZovLrs zw*wb)a0eC$NN6U>Whs;Vq0Cq+B>yNMEI!FWS}Kw8jU!E(TT1`{ delta 377 zcmYkyKTZNs5XbR(y9PEdAdf8wl&qi#n|OxpAlWR%1_?CY!+%(L0V)ts&;yvf!h((q z7(PhBJurQj=;H7!Gj*kM-(VK^lw87n&z&nd{LO?y>PFTU z11Aq7p35}9Dg? zXEK7Q2@<%?qz-0^Bo-B?7U{dBrdcyGFc+n!F)~0THcu8j&&=ouHBxKxCVrX86GX)} J{}&aJ1OTPsD4_rV delta 142 zcmeB-ogBB}KNq9Z&bGzPN3YD5YWi;7c=^j%WZtQi@Yi&E1V8Q_webp$UkGX{fg U0~$VAPgIoA8N}NhFRCR80OepPzyJUM diff --git a/bin/br/ufpb/iged/interpretador/testes/Test.class b/bin/br/ufpb/iged/interpretador/testes/Test.class index 8b9d87045b22546dd3090df37acbc664226cefff..ce83129cba5ef3549fbf813c102251a89b36d0c4 100644 GIT binary patch delta 81 zcmaDX^j&a679*pl|GZZF+ delta 103 zcmew^_*iH|79*q6L;>l^5152Dw=uFXF*-welO5Q_ChuVuVho>ro>>kg4-`?`EX=Zw hk + - + + + - - - - + - + - + - + + + @@ -52,27 +52,6 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index 41d224f..d8bbf78 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -9,7 +9,7 @@ import org.antlr.runtime.Token; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; +import br.ufpb.iged.interpretador.parser.AssemblerParser; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.principal.Interpretador; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java index b024530..a2d9e33 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java @@ -1,6 +1,6 @@ package br.ufpb.iged.interpretador.bytecodeassembler.asm; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; +import br.ufpb.iged.interpretador.parser.AssemblerParser; public class Definicao { diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens deleted file mode 100644 index 784c267..0000000 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/Assembler.tokens +++ /dev/null @@ -1,145 +0,0 @@ -T__19=19 -T__20=20 -T__21=21 -T__22=22 -T__23=23 -T__24=24 -T__25=25 -T__26=26 -T__27=27 -T__28=28 -T__29=29 -T__30=30 -T__31=31 -T__32=32 -T__33=33 -T__34=34 -T__35=35 -T__36=36 -T__37=37 -T__38=38 -T__39=39 -T__40=40 -T__41=41 -T__42=42 -T__43=43 -T__44=44 -T__45=45 -T__46=46 -T__47=47 -T__48=48 -T__49=49 -T__50=50 -T__51=51 -T__52=52 -T__53=53 -T__54=54 -T__55=55 -T__56=56 -T__57=57 -T__58=58 -T__59=59 -T__60=60 -T__61=61 -T__62=62 -T__63=63 -T__64=64 -T__65=65 -T__66=66 -T__67=67 -T__68=68 -T__69=69 -T__70=70 -T__71=71 -T__72=72 -T__73=73 -T__74=74 -T__75=75 -T__76=76 -T__77=77 -T__78=78 -T__79=79 -T__80=80 -T__81=81 -T__82=82 -T__83=83 -CLASSE=4 -EXTENDS=5 -FIELD_DECL=6 -GETFIELD=7 -ID=8 -INIT=9 -INT=10 -INTEIRO=11 -INVOKESPECIAL=12 -MEMBRO_CLASSE=13 -NOVA_LINHA=14 -NULL=15 -PUTFIELD=16 -VOID=17 -WS=18 -'()'=19 -'.class'=20 -'.field'=21 -'.method'=22 -'.super'=23 -'/'=24 -':'=25 -'L'=26 -'aload'=27 -'aload_0'=28 -'aload_1'=29 -'aload_2'=30 -'aload_3'=31 -'astore'=32 -'astore_0'=33 -'astore_1'=34 -'astore_2'=35 -'astore_3'=36 -'getfield'=37 -'goto'=38 -'iadd'=39 -'iand'=40 -'iconst_0'=41 -'iconst_1'=42 -'iconst_2'=43 -'iconst_3'=44 -'iconst_4'=45 -'iconst_5'=46 -'iconst_m1'=47 -'idiv'=48 -'if_icmpeq'=49 -'if_icmpge'=50 -'if_icmpgt'=51 -'if_icmple'=52 -'if_icmplt'=53 -'if_icmpne'=54 -'ifeq'=55 -'ifge'=56 -'ifgt'=57 -'ifle'=58 -'iflt'=59 -'ifne'=60 -'iinc'=61 -'iload'=62 -'iload_0'=63 -'iload_1'=64 -'iload_2'=65 -'iload_3'=66 -'imul'=67 -'ineg'=68 -'invokespecial'=69 -'ior'=70 -'irem'=71 -'istore'=72 -'istore_0'=73 -'istore_1'=74 -'istore_2'=75 -'istore_3'=76 -'isub'=77 -'ixor'=78 -'ldc'=79 -'nop'=80 -'pop'=81 -'pop2'=82 -'putfield'=83 diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 30aadb3..4689337 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -6,17 +6,13 @@ options { } tokens { - CLASSE; MEMBRO_CLASSE; FIELD_DECL; EXTENDS; - GETFIELD; - PUTFIELD; - INVOKESPECIAL; } @header{ - package br.ufpb.iged.interpretador.bytecodeassembler.parser; + package br.ufpb.iged.interpretador.parser; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; @@ -24,7 +20,7 @@ tokens { } @lexer::header{ - package br.ufpb.iged.interpretador.bytecodeassembler.parser; + package br.ufpb.iged.interpretador.parser; } @members { @@ -53,7 +49,7 @@ instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | d )? NOVA_LINHA; definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ - -> ^(CLASSE ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) | '.method' INIT '()' VOID ; @@ -63,9 +59,9 @@ membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) ; -manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^(GETFIELD $b tipo) - | a = 'putfield' b = campo tipo -> ^(PUTFIELD $b tipo) - | a = 'invokespecial' c = chamadaMetodo -> ^(INVOKESPECIAL $c) +manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) + | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) + | a = 'invokespecial' c = chamadaMetodo -> ^('invokespecial' $c) ; tipo : INT | VOID | tipoRef ; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 959960c..96846b4 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -2,13 +2,13 @@ tree grammar Def; options { - //tokenVocab=Bytecodes; + tokenVocab=Assembler; ASTLabelType=BytecodesAST; filter=true; } @header{ - package br.ufpb.iged.interpretador.symboltable.parser; + package br.ufpb.iged.interpretador.parser; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; import br.ufpb.iged.interpretador.symboltable.classes.Escopo; @@ -38,7 +38,7 @@ bottomup : saiDaClasse ; entraNaClasse - : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) + : ^('.class' nome=ID (^(EXTENDS sup=ID))? .) { System.out.println("linha "+$nome.getLine()+ ": def class "+$nome.text); @@ -64,7 +64,7 @@ declaracaoVariavel } ; -saiDaClasse : CLASSE +saiDaClasse : '.class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope @@ -72,21 +72,21 @@ saiDaClasse : CLASSE ; getfield - : GETFIELD + : 'getfield' { System.out.println("Saindo do getfield.."); } ; putfield - : PUTFIELD + : 'putfield' { System.out.println("Saindo do putfield.."); } ; invokespecial - : INVOKESPECIAL + : 'invokespecial' { System.out.println("Saindo do invokespecial.."); } diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 47cb0f3..cdc6632 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -1,13 +1,13 @@ tree grammar Ref; options { - //tokenVocab = Bytecodes; + tokenVocab = Assembler; ASTLabelType = BytecodesAST; filter = true; } @header{ - package br.ufpb.iged.interpretador.symboltable.parser; + package br.ufpb.iged.interpretador.parser; import br.ufpb.iged.interpretador.symboltable.classes.Escopo; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; @@ -41,7 +41,7 @@ topdown ; entraNaClasse - : ^(CLASSE nome=ID (^(EXTENDS sup=ID))? .) + : ^('.class' nome=ID (^(EXTENDS sup=ID))? .) { simboloClasse = ((SimboloClasse)$nome.simbolo); if ( $sup!=null ) { @@ -68,21 +68,21 @@ declaracaoVariavel // global, parameter, or local variable ; getfield - : ^(GETFIELD classe = . . campo = . tipo = .) + : ^('getfield' classe = . . campo = . tipo = .) { System.out.println("Entrando no getfield.."); } ; putfield - : ^(PUTFIELD classe = . . campo = . tipo = .) + : ^('putfield' classe = . . campo = . tipo = .) { System.out.println("Entrando no putfield.."); } ; invokespecial - : ^(INVOKESPECIAL classe = . . metodo = . args = . tipo = .) + : ^('invokespecial' classe = . . metodo = . args = . tipo = .) { System.out.println("Entrando no invokespecial.."); } diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens new file mode 100644 index 0000000..ad197b0 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -0,0 +1,141 @@ +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 +T__77=77 +T__78=78 +T__79=79 +EXTENDS=4 +FIELD_DECL=5 +ID=6 +INIT=7 +INT=8 +INTEIRO=9 +MEMBRO_CLASSE=10 +NOVA_LINHA=11 +NULL=12 +VOID=13 +WS=14 +'()'=15 +'.class'=16 +'.field'=17 +'.method'=18 +'.super'=19 +'/'=20 +':'=21 +'L'=22 +'aload'=23 +'aload_0'=24 +'aload_1'=25 +'aload_2'=26 +'aload_3'=27 +'astore'=28 +'astore_0'=29 +'astore_1'=30 +'astore_2'=31 +'astore_3'=32 +'getfield'=33 +'goto'=34 +'iadd'=35 +'iand'=36 +'iconst_0'=37 +'iconst_1'=38 +'iconst_2'=39 +'iconst_3'=40 +'iconst_4'=41 +'iconst_5'=42 +'iconst_m1'=43 +'idiv'=44 +'if_icmpeq'=45 +'if_icmpge'=46 +'if_icmpgt'=47 +'if_icmple'=48 +'if_icmplt'=49 +'if_icmpne'=50 +'ifeq'=51 +'ifge'=52 +'ifgt'=53 +'ifle'=54 +'iflt'=55 +'ifne'=56 +'iinc'=57 +'iload'=58 +'iload_0'=59 +'iload_1'=60 +'iload_2'=61 +'iload_3'=62 +'imul'=63 +'ineg'=64 +'invokespecial'=65 +'ior'=66 +'irem'=67 +'istore'=68 +'istore_0'=69 +'istore_1'=70 +'istore_2'=71 +'istore_3'=72 +'isub'=73 +'ixor'=74 +'ldc'=75 +'nop'=76 +'pop'=77 +'pop2'=78 +'putfield'=79 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java similarity index 89% rename from src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java rename to src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 1eaedc7..9c56f3f 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,6 +1,6 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-03 22:49:04 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-03 23:57:13 - package br.ufpb.iged.interpretador.bytecodeassembler.parser; + package br.ufpb.iged.interpretador.parser; import org.antlr.runtime.*; @@ -11,6 +11,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; public static final int T__19=19; public static final int T__20=20; public static final int T__21=21; @@ -72,25 +76,17 @@ public class AssemblerLexer extends Lexer { public static final int T__77=77; public static final int T__78=78; public static final int T__79=79; - public static final int T__80=80; - public static final int T__81=81; - public static final int T__82=82; - public static final int T__83=83; - public static final int CLASSE=4; - public static final int EXTENDS=5; - public static final int FIELD_DECL=6; - public static final int GETFIELD=7; - public static final int ID=8; - public static final int INIT=9; - public static final int INT=10; - public static final int INTEIRO=11; - public static final int INVOKESPECIAL=12; - public static final int MEMBRO_CLASSE=13; - public static final int NOVA_LINHA=14; - public static final int NULL=15; - public static final int PUTFIELD=16; - public static final int VOID=17; - public static final int WS=18; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int INTEIRO=9; + public static final int MEMBRO_CLASSE=10; + public static final int NOVA_LINHA=11; + public static final int NULL=12; + public static final int VOID=13; + public static final int WS=14; // delegates // delegators @@ -107,10 +103,10 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__19" - public final void mT__19() throws RecognitionException { + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { try { - int _type = T__19; + int _type = T__15; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '()' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '()' @@ -128,12 +124,12 @@ public final void mT__19() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__19" + // $ANTLR end "T__15" - // $ANTLR start "T__20" - public final void mT__20() throws RecognitionException { + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { try { - int _type = T__20; + int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '.class' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '.class' @@ -151,12 +147,12 @@ public final void mT__20() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__20" + // $ANTLR end "T__16" - // $ANTLR start "T__21" - public final void mT__21() throws RecognitionException { + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { try { - int _type = T__21; + int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.field' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.field' @@ -174,12 +170,12 @@ public final void mT__21() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__21" + // $ANTLR end "T__17" - // $ANTLR start "T__22" - public final void mT__22() throws RecognitionException { + // $ANTLR start "T__18" + public final void mT__18() throws RecognitionException { try { - int _type = T__22; + int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.method' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.method' @@ -197,12 +193,12 @@ public final void mT__22() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__22" + // $ANTLR end "T__18" - // $ANTLR start "T__23" - public final void mT__23() throws RecognitionException { + // $ANTLR start "T__19" + public final void mT__19() throws RecognitionException { try { - int _type = T__23; + int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.super' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.super' @@ -220,12 +216,12 @@ public final void mT__23() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__23" + // $ANTLR end "T__19" - // $ANTLR start "T__24" - public final void mT__24() throws RecognitionException { + // $ANTLR start "T__20" + public final void mT__20() throws RecognitionException { try { - int _type = T__24; + int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '/' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '/' @@ -241,12 +237,12 @@ public final void mT__24() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__24" + // $ANTLR end "T__20" - // $ANTLR start "T__25" - public final void mT__25() throws RecognitionException { + // $ANTLR start "T__21" + public final void mT__21() throws RecognitionException { try { - int _type = T__25; + int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( ':' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: ':' @@ -262,12 +258,12 @@ public final void mT__25() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__25" + // $ANTLR end "T__21" - // $ANTLR start "T__26" - public final void mT__26() throws RecognitionException { + // $ANTLR start "T__22" + public final void mT__22() throws RecognitionException { try { - int _type = T__26; + int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'L' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'L' @@ -283,12 +279,12 @@ public final void mT__26() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__26" + // $ANTLR end "T__22" - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { try { - int _type = T__27; + int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload' @@ -306,12 +302,12 @@ public final void mT__27() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__27" + // $ANTLR end "T__23" - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { try { - int _type = T__28; + int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload_0' @@ -329,12 +325,12 @@ public final void mT__28() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__28" + // $ANTLR end "T__24" - // $ANTLR start "T__29" - public final void mT__29() throws RecognitionException { + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { try { - int _type = T__29; + int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_1' @@ -352,12 +348,12 @@ public final void mT__29() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__29" + // $ANTLR end "T__25" - // $ANTLR start "T__30" - public final void mT__30() throws RecognitionException { + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { try { - int _type = T__30; + int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_2' @@ -375,12 +371,12 @@ public final void mT__30() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__30" + // $ANTLR end "T__26" - // $ANTLR start "T__31" - public final void mT__31() throws RecognitionException { + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { try { - int _type = T__31; + int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_3' @@ -398,12 +394,12 @@ public final void mT__31() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__31" + // $ANTLR end "T__27" - // $ANTLR start "T__32" - public final void mT__32() throws RecognitionException { + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { try { - int _type = T__32; + int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'astore' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'astore' @@ -421,12 +417,12 @@ public final void mT__32() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__32" + // $ANTLR end "T__28" - // $ANTLR start "T__33" - public final void mT__33() throws RecognitionException { + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { try { - int _type = T__33; + int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore_0' @@ -444,12 +440,12 @@ public final void mT__33() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__33" + // $ANTLR end "T__29" - // $ANTLR start "T__34" - public final void mT__34() throws RecognitionException { + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { try { - int _type = T__34; + int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_1' @@ -467,12 +463,12 @@ public final void mT__34() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__34" + // $ANTLR end "T__30" - // $ANTLR start "T__35" - public final void mT__35() throws RecognitionException { + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { try { - int _type = T__35; + int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_2' @@ -490,12 +486,12 @@ public final void mT__35() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__35" + // $ANTLR end "T__31" - // $ANTLR start "T__36" - public final void mT__36() throws RecognitionException { + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { try { - int _type = T__36; + int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_3' @@ -513,12 +509,12 @@ public final void mT__36() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__36" + // $ANTLR end "T__32" - // $ANTLR start "T__37" - public final void mT__37() throws RecognitionException { + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { try { - int _type = T__37; + int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'getfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'getfield' @@ -536,12 +532,12 @@ public final void mT__37() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__37" + // $ANTLR end "T__33" - // $ANTLR start "T__38" - public final void mT__38() throws RecognitionException { + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { try { - int _type = T__38; + int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'goto' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'goto' @@ -559,12 +555,12 @@ public final void mT__38() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__38" + // $ANTLR end "T__34" - // $ANTLR start "T__39" - public final void mT__39() throws RecognitionException { + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { try { - int _type = T__39; + int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'iadd' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'iadd' @@ -582,12 +578,12 @@ public final void mT__39() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__39" + // $ANTLR end "T__35" - // $ANTLR start "T__40" - public final void mT__40() throws RecognitionException { + // $ANTLR start "T__36" + public final void mT__36() throws RecognitionException { try { - int _type = T__40; + int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'iand' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'iand' @@ -605,12 +601,12 @@ public final void mT__40() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__40" + // $ANTLR end "T__36" - // $ANTLR start "T__41" - public final void mT__41() throws RecognitionException { + // $ANTLR start "T__37" + public final void mT__37() throws RecognitionException { try { - int _type = T__41; + int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iconst_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iconst_0' @@ -628,12 +624,12 @@ public final void mT__41() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__41" + // $ANTLR end "T__37" - // $ANTLR start "T__42" - public final void mT__42() throws RecognitionException { + // $ANTLR start "T__38" + public final void mT__38() throws RecognitionException { try { - int _type = T__42; + int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iconst_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iconst_1' @@ -651,12 +647,12 @@ public final void mT__42() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__42" + // $ANTLR end "T__38" - // $ANTLR start "T__43" - public final void mT__43() throws RecognitionException { + // $ANTLR start "T__39" + public final void mT__39() throws RecognitionException { try { - int _type = T__43; + int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_2' @@ -674,12 +670,12 @@ public final void mT__43() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__43" + // $ANTLR end "T__39" - // $ANTLR start "T__44" - public final void mT__44() throws RecognitionException { + // $ANTLR start "T__40" + public final void mT__40() throws RecognitionException { try { - int _type = T__44; + int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_3' @@ -697,12 +693,12 @@ public final void mT__44() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__44" + // $ANTLR end "T__40" - // $ANTLR start "T__45" - public final void mT__45() throws RecognitionException { + // $ANTLR start "T__41" + public final void mT__41() throws RecognitionException { try { - int _type = T__45; + int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_4' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_4' @@ -720,12 +716,12 @@ public final void mT__45() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__45" + // $ANTLR end "T__41" - // $ANTLR start "T__46" - public final void mT__46() throws RecognitionException { + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { try { - int _type = T__46; + int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_5' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_5' @@ -743,12 +739,12 @@ public final void mT__46() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__46" + // $ANTLR end "T__42" - // $ANTLR start "T__47" - public final void mT__47() throws RecognitionException { + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { try { - int _type = T__47; + int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_m1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_m1' @@ -766,12 +762,12 @@ public final void mT__47() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__47" + // $ANTLR end "T__43" - // $ANTLR start "T__48" - public final void mT__48() throws RecognitionException { + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { try { - int _type = T__48; + int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'idiv' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'idiv' @@ -789,12 +785,12 @@ public final void mT__48() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__48" + // $ANTLR end "T__44" - // $ANTLR start "T__49" - public final void mT__49() throws RecognitionException { + // $ANTLR start "T__45" + public final void mT__45() throws RecognitionException { try { - int _type = T__49; + int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'if_icmpeq' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'if_icmpeq' @@ -812,12 +808,12 @@ public final void mT__49() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__49" + // $ANTLR end "T__45" - // $ANTLR start "T__50" - public final void mT__50() throws RecognitionException { + // $ANTLR start "T__46" + public final void mT__46() throws RecognitionException { try { - int _type = T__50; + int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'if_icmpge' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'if_icmpge' @@ -835,12 +831,12 @@ public final void mT__50() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__50" + // $ANTLR end "T__46" - // $ANTLR start "T__51" - public final void mT__51() throws RecognitionException { + // $ANTLR start "T__47" + public final void mT__47() throws RecognitionException { try { - int _type = T__51; + int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpgt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpgt' @@ -858,12 +854,12 @@ public final void mT__51() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__51" + // $ANTLR end "T__47" - // $ANTLR start "T__52" - public final void mT__52() throws RecognitionException { + // $ANTLR start "T__48" + public final void mT__48() throws RecognitionException { try { - int _type = T__52; + int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmple' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmple' @@ -881,12 +877,12 @@ public final void mT__52() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__52" + // $ANTLR end "T__48" - // $ANTLR start "T__53" - public final void mT__53() throws RecognitionException { + // $ANTLR start "T__49" + public final void mT__49() throws RecognitionException { try { - int _type = T__53; + int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmplt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmplt' @@ -904,12 +900,12 @@ public final void mT__53() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__53" + // $ANTLR end "T__49" - // $ANTLR start "T__54" - public final void mT__54() throws RecognitionException { + // $ANTLR start "T__50" + public final void mT__50() throws RecognitionException { try { - int _type = T__54; + int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmpne' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmpne' @@ -927,12 +923,12 @@ public final void mT__54() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__54" + // $ANTLR end "T__50" - // $ANTLR start "T__55" - public final void mT__55() throws RecognitionException { + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { try { - int _type = T__55; + int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'ifeq' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'ifeq' @@ -950,12 +946,12 @@ public final void mT__55() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__55" + // $ANTLR end "T__51" - // $ANTLR start "T__56" - public final void mT__56() throws RecognitionException { + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { try { - int _type = T__56; + int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'ifge' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'ifge' @@ -973,12 +969,12 @@ public final void mT__56() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__56" + // $ANTLR end "T__52" - // $ANTLR start "T__57" - public final void mT__57() throws RecognitionException { + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { try { - int _type = T__57; + int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifgt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifgt' @@ -996,12 +992,12 @@ public final void mT__57() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__57" + // $ANTLR end "T__53" - // $ANTLR start "T__58" - public final void mT__58() throws RecognitionException { + // $ANTLR start "T__54" + public final void mT__54() throws RecognitionException { try { - int _type = T__58; + int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifle' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifle' @@ -1019,12 +1015,12 @@ public final void mT__58() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__58" + // $ANTLR end "T__54" - // $ANTLR start "T__59" - public final void mT__59() throws RecognitionException { + // $ANTLR start "T__55" + public final void mT__55() throws RecognitionException { try { - int _type = T__59; + int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'iflt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'iflt' @@ -1042,12 +1038,12 @@ public final void mT__59() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__59" + // $ANTLR end "T__55" - // $ANTLR start "T__60" - public final void mT__60() throws RecognitionException { + // $ANTLR start "T__56" + public final void mT__56() throws RecognitionException { try { - int _type = T__60; + int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifne' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifne' @@ -1065,12 +1061,12 @@ public final void mT__60() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__60" + // $ANTLR end "T__56" - // $ANTLR start "T__61" - public final void mT__61() throws RecognitionException { + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { try { - int _type = T__61; + int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iinc' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iinc' @@ -1088,12 +1084,12 @@ public final void mT__61() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__61" + // $ANTLR end "T__57" - // $ANTLR start "T__62" - public final void mT__62() throws RecognitionException { + // $ANTLR start "T__58" + public final void mT__58() throws RecognitionException { try { - int _type = T__62; + int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iload' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iload' @@ -1111,12 +1107,12 @@ public final void mT__62() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__62" + // $ANTLR end "T__58" - // $ANTLR start "T__63" - public final void mT__63() throws RecognitionException { + // $ANTLR start "T__59" + public final void mT__59() throws RecognitionException { try { - int _type = T__63; + int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iload_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iload_0' @@ -1134,12 +1130,12 @@ public final void mT__63() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__63" + // $ANTLR end "T__59" - // $ANTLR start "T__64" - public final void mT__64() throws RecognitionException { + // $ANTLR start "T__60" + public final void mT__60() throws RecognitionException { try { - int _type = T__64; + int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload_1' @@ -1157,12 +1153,12 @@ public final void mT__64() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__64" + // $ANTLR end "T__60" - // $ANTLR start "T__65" - public final void mT__65() throws RecognitionException { + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { try { - int _type = T__65; + int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_2' @@ -1180,12 +1176,12 @@ public final void mT__65() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__65" + // $ANTLR end "T__61" - // $ANTLR start "T__66" - public final void mT__66() throws RecognitionException { + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { try { - int _type = T__66; + int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_3' @@ -1203,12 +1199,12 @@ public final void mT__66() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__66" + // $ANTLR end "T__62" - // $ANTLR start "T__67" - public final void mT__67() throws RecognitionException { + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { try { - int _type = T__67; + int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'imul' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'imul' @@ -1226,12 +1222,12 @@ public final void mT__67() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__67" + // $ANTLR end "T__63" - // $ANTLR start "T__68" - public final void mT__68() throws RecognitionException { + // $ANTLR start "T__64" + public final void mT__64() throws RecognitionException { try { - int _type = T__68; + int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ineg' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ineg' @@ -1249,12 +1245,12 @@ public final void mT__68() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__68" + // $ANTLR end "T__64" - // $ANTLR start "T__69" - public final void mT__69() throws RecognitionException { + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { try { - int _type = T__69; + int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'invokespecial' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'invokespecial' @@ -1272,12 +1268,12 @@ public final void mT__69() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__69" + // $ANTLR end "T__65" - // $ANTLR start "T__70" - public final void mT__70() throws RecognitionException { + // $ANTLR start "T__66" + public final void mT__66() throws RecognitionException { try { - int _type = T__70; + int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ior' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ior' @@ -1295,12 +1291,12 @@ public final void mT__70() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__70" + // $ANTLR end "T__66" - // $ANTLR start "T__71" - public final void mT__71() throws RecognitionException { + // $ANTLR start "T__67" + public final void mT__67() throws RecognitionException { try { - int _type = T__71; + int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'irem' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'irem' @@ -1318,12 +1314,12 @@ public final void mT__71() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__71" + // $ANTLR end "T__67" - // $ANTLR start "T__72" - public final void mT__72() throws RecognitionException { + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { try { - int _type = T__72; + int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'istore' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'istore' @@ -1341,12 +1337,12 @@ public final void mT__72() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__72" + // $ANTLR end "T__68" - // $ANTLR start "T__73" - public final void mT__73() throws RecognitionException { + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { try { - int _type = T__73; + int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'istore_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'istore_0' @@ -1364,12 +1360,12 @@ public final void mT__73() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__73" + // $ANTLR end "T__69" - // $ANTLR start "T__74" - public final void mT__74() throws RecognitionException { + // $ANTLR start "T__70" + public final void mT__70() throws RecognitionException { try { - int _type = T__74; + int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore_1' @@ -1387,12 +1383,12 @@ public final void mT__74() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__74" + // $ANTLR end "T__70" - // $ANTLR start "T__75" - public final void mT__75() throws RecognitionException { + // $ANTLR start "T__71" + public final void mT__71() throws RecognitionException { try { - int _type = T__75; + int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_2' @@ -1410,12 +1406,12 @@ public final void mT__75() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__75" + // $ANTLR end "T__71" - // $ANTLR start "T__76" - public final void mT__76() throws RecognitionException { + // $ANTLR start "T__72" + public final void mT__72() throws RecognitionException { try { - int _type = T__76; + int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_3' @@ -1433,12 +1429,12 @@ public final void mT__76() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__76" + // $ANTLR end "T__72" - // $ANTLR start "T__77" - public final void mT__77() throws RecognitionException { + // $ANTLR start "T__73" + public final void mT__73() throws RecognitionException { try { - int _type = T__77; + int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'isub' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'isub' @@ -1456,12 +1452,12 @@ public final void mT__77() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__77" + // $ANTLR end "T__73" - // $ANTLR start "T__78" - public final void mT__78() throws RecognitionException { + // $ANTLR start "T__74" + public final void mT__74() throws RecognitionException { try { - int _type = T__78; + int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ixor' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ixor' @@ -1479,12 +1475,12 @@ public final void mT__78() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__78" + // $ANTLR end "T__74" - // $ANTLR start "T__79" - public final void mT__79() throws RecognitionException { + // $ANTLR start "T__75" + public final void mT__75() throws RecognitionException { try { - int _type = T__79; + int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'ldc' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'ldc' @@ -1502,12 +1498,12 @@ public final void mT__79() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__79" + // $ANTLR end "T__75" - // $ANTLR start "T__80" - public final void mT__80() throws RecognitionException { + // $ANTLR start "T__76" + public final void mT__76() throws RecognitionException { try { - int _type = T__80; + int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'nop' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'nop' @@ -1525,12 +1521,12 @@ public final void mT__80() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__80" + // $ANTLR end "T__76" - // $ANTLR start "T__81" - public final void mT__81() throws RecognitionException { + // $ANTLR start "T__77" + public final void mT__77() throws RecognitionException { try { - int _type = T__81; + int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'pop' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'pop' @@ -1548,12 +1544,12 @@ public final void mT__81() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__81" + // $ANTLR end "T__77" - // $ANTLR start "T__82" - public final void mT__82() throws RecognitionException { + // $ANTLR start "T__78" + public final void mT__78() throws RecognitionException { try { - int _type = T__82; + int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'pop2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'pop2' @@ -1571,12 +1567,12 @@ public final void mT__82() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__82" + // $ANTLR end "T__78" - // $ANTLR start "T__83" - public final void mT__83() throws RecognitionException { + // $ANTLR start "T__79" + public final void mT__79() throws RecognitionException { try { - int _type = T__83; + int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'putfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'putfield' @@ -1594,15 +1590,15 @@ public final void mT__83() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__83" + // $ANTLR end "T__79" // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:8: '' { match(""); @@ -1624,8 +1620,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:7: 'I' { match('I'); @@ -1645,8 +1641,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: 'V' { match('V'); @@ -1666,10 +1662,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1688,7 +1684,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: 'null' { match("null"); @@ -1697,7 +1693,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:18: 'NULL' { match("NULL"); @@ -1725,10 +1721,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1737,7 +1733,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:11: '-' { match('-'); @@ -1747,7 +1743,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1802,8 +1798,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1815,7 +1811,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1865,8 +1861,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: '\\n' { match('\n'); @@ -1886,8 +1882,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -1913,526 +1909,526 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) int alt5=73; alt5 = dfa5.predict(input); switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__19 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__15 { - mT__19(); + mT__15(); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__20 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__16 { - mT__20(); + mT__16(); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__21 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__17 { - mT__21(); + mT__17(); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__22 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__18 { - mT__22(); + mT__18(); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__23 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__19 { - mT__23(); + mT__19(); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__24 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__20 { - mT__24(); + mT__20(); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__25 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__21 { - mT__25(); + mT__21(); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__26 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__22 { - mT__26(); + mT__22(); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__27 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__23 { - mT__27(); + mT__23(); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__28 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__24 { - mT__28(); + mT__24(); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__29 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__25 { - mT__29(); + mT__25(); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__30 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__26 { - mT__30(); + mT__26(); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__31 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__27 { - mT__31(); + mT__27(); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__32 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__28 { - mT__32(); + mT__28(); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__33 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__29 { - mT__33(); + mT__29(); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__34 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__30 { - mT__34(); + mT__30(); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__35 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__31 { - mT__35(); + mT__31(); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__36 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__32 { - mT__36(); + mT__32(); } break; case 19 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__37 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__33 { - mT__37(); + mT__33(); } break; case 20 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__38 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__34 { - mT__38(); + mT__34(); } break; case 21 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__39 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__35 { - mT__39(); + mT__35(); } break; case 22 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__40 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__36 { - mT__40(); + mT__36(); } break; case 23 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__41 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__37 { - mT__41(); + mT__37(); } break; case 24 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__42 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__38 { - mT__42(); + mT__38(); } break; case 25 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__43 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__39 { - mT__43(); + mT__39(); } break; case 26 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__44 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__40 { - mT__44(); + mT__40(); } break; case 27 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__45 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__41 { - mT__45(); + mT__41(); } break; case 28 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__46 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__42 { - mT__46(); + mT__42(); } break; case 29 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__47 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__43 { - mT__47(); + mT__43(); } break; case 30 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__48 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__44 { - mT__48(); + mT__44(); } break; case 31 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__49 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__45 { - mT__49(); + mT__45(); } break; case 32 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__50 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__46 { - mT__50(); + mT__46(); } break; case 33 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__51 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__47 { - mT__51(); + mT__47(); } break; case 34 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__52 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__48 { - mT__52(); + mT__48(); } break; case 35 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__53 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__49 { - mT__53(); + mT__49(); } break; case 36 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__54 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__50 { - mT__54(); + mT__50(); } break; case 37 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__55 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__51 { - mT__55(); + mT__51(); } break; case 38 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__56 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__52 { - mT__56(); + mT__52(); } break; case 39 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__57 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__53 { - mT__57(); + mT__53(); } break; case 40 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__58 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__54 { - mT__58(); + mT__54(); } break; case 41 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__59 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__55 { - mT__59(); + mT__55(); } break; case 42 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__60 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__56 { - mT__60(); + mT__56(); } break; case 43 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__61 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__57 { - mT__61(); + mT__57(); } break; case 44 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__62 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__58 { - mT__62(); + mT__58(); } break; case 45 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__63 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__59 { - mT__63(); + mT__59(); } break; case 46 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__64 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__60 { - mT__64(); + mT__60(); } break; case 47 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__65 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__61 { - mT__65(); + mT__61(); } break; case 48 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__66 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__62 { - mT__66(); + mT__62(); } break; case 49 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__67 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__63 { - mT__67(); + mT__63(); } break; case 50 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__68 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__64 { - mT__68(); + mT__64(); } break; case 51 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__69 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__65 { - mT__69(); + mT__65(); } break; case 52 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__70 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__66 { - mT__70(); + mT__66(); } break; case 53 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__71 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__67 { - mT__71(); + mT__67(); } break; case 54 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__72 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__68 { - mT__72(); + mT__68(); } break; case 55 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__73 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__69 { - mT__73(); + mT__69(); } break; case 56 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__74 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__70 { - mT__74(); + mT__70(); } break; case 57 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__75 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__71 { - mT__75(); + mT__71(); } break; case 58 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__76 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__72 { - mT__76(); + mT__72(); } break; case 59 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__77 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__73 { - mT__77(); + mT__73(); } break; case 60 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__78 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__74 { - mT__78(); + mT__74(); } break; case 61 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__79 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__75 { - mT__79(); + mT__75(); } break; case 62 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__80 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__76 { - mT__80(); + mT__76(); } break; case 63 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__81 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__77 { - mT__81(); + mT__77(); } break; case 64 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__82 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__78 { - mT__82(); + mT__78(); } break; case 65 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__83 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__79 { - mT__83(); + mT__79(); } @@ -2802,7 +2798,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java similarity index 76% rename from src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java rename to src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index ee04fda..547c5da 100644 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,6 +1,6 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-03 22:49:03 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-03 23:57:12 - package br.ufpb.iged.interpretador.bytecodeassembler.parser; + package br.ufpb.iged.interpretador.parser; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; @@ -18,10 +18,14 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "GETFIELD", "ID", "INIT", "INT", "INTEIRO", "INVOKESPECIAL", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PUTFIELD", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; public static final int T__19=19; public static final int T__20=20; public static final int T__21=21; @@ -83,25 +87,17 @@ public abstract class AssemblerParser extends Parser { public static final int T__77=77; public static final int T__78=78; public static final int T__79=79; - public static final int T__80=80; - public static final int T__81=81; - public static final int T__82=82; - public static final int T__83=83; - public static final int CLASSE=4; - public static final int EXTENDS=5; - public static final int FIELD_DECL=6; - public static final int GETFIELD=7; - public static final int ID=8; - public static final int INIT=9; - public static final int INT=10; - public static final int INTEIRO=11; - public static final int INVOKESPECIAL=12; - public static final int MEMBRO_CLASSE=13; - public static final int NOVA_LINHA=14; - public static final int NULL=15; - public static final int PUTFIELD=16; - public static final int VOID=17; - public static final int WS=18; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int INTEIRO=9; + public static final int MEMBRO_CLASSE=10; + public static final int NOVA_LINHA=11; + public static final int NULL=12; + public static final int VOID=13; + public static final int WS=14; // delegates public Parser[] getDelegates() { @@ -148,7 +144,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:1: programa : ( comando )* ; public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -161,28 +157,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: ( comando )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==20||LA1_0==22||(LA1_0 >= 27 && LA1_0 <= 83)) ) { + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==16||LA1_0==18||(LA1_0 >= 23 && LA1_0 <= 79)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: comando { - pushFollow(FOLLOW_comando_in_programa92); + pushFollow(FOLLOW_comando_in_programa72); comando1=comando(); state._fsp--; @@ -229,7 +225,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: comando : ( label instrucao | instrucao ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:1: comando : ( label instrucao | instrucao ) ; public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -246,20 +242,20 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==ID) ) { alt2=1; } - else if ( (LA2_0==NOVA_LINHA||LA2_0==20||LA2_0==22||(LA2_0 >= 27 && LA2_0 <= 83)) ) { + else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 79)) ) { alt2=2; } else { @@ -271,16 +267,16 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==20||LA2_0==22||(LA2_0 >= 27 && LA2_0 <= 83) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:12: label instrucao { - pushFollow(FOLLOW_label_in_comando112); + pushFollow(FOLLOW_label_in_comando92); label2=label(); state._fsp--; adaptor.addChild(root_0, label2.getTree()); - pushFollow(FOLLOW_instrucao_in_comando114); + pushFollow(FOLLOW_instrucao_in_comando94); instrucao3=instrucao(); state._fsp--; @@ -290,9 +286,9 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==20||LA2_0==22||(LA2_0 >= 27 && LA2_0 <= 83) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:30: instrucao { - pushFollow(FOLLOW_instrucao_in_comando118); + pushFollow(FOLLOW_instrucao_in_comando98); instrucao4=instrucao(); state._fsp--; @@ -336,7 +332,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: label : a= ID ':' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: label : a= ID ':' ; public final AssemblerParser.label_return label() throws RecognitionException, LabelException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -351,20 +347,20 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: a= ID ':' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,ID,FOLLOW_ID_in_label140); + a=(Token)match(input,ID,FOLLOW_ID_in_label120); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - char_literal5=(Token)match(input,25,FOLLOW_25_in_label142); + char_literal5=(Token)match(input,21,FOLLOW_21_in_label122); char_literal5_tree = (BytecodesAST)adaptor.create(char_literal5) ; @@ -404,7 +400,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -435,76 +431,80 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? int alt3=11; switch ( input.LA(1) ) { - case 20: - case 22: + case 16: + case 18: { alt3=1; } break; - case 37: - case 69: - case 83: + case 33: + case 65: + case 79: { alt3=2; } break; - case 39: - case 48: - case 61: + case 35: + case 44: + case 57: + case 63: + case 64: case 67: - case 68: - case 71: - case 77: + case 73: { alt3=3; } break; + case 23: + case 24: + case 25: + case 26: case 27: - case 28: - case 29: - case 30: - case 31: + case 37: + case 38: + case 39: + case 40: case 41: case 42: case 43: - case 44: - case 45: - case 46: - case 47: + case 58: + case 59: + case 60: + case 61: case 62: - case 63: - case 64: - case 65: - case 66: - case 79: + case 75: { alt3=4; } break; + case 28: + case 29: + case 30: + case 31: case 32: - case 33: - case 34: - case 35: - case 36: + case 68: + case 69: + case 70: + case 71: case 72: - case 73: - case 74: - case 75: - case 76: { alt3=5; } break; - case 38: + case 34: + case 45: + case 46: + case 47: + case 48: case 49: case 50: case 51: @@ -513,32 +513,28 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce case 54: case 55: case 56: - case 57: - case 58: - case 59: - case 60: { alt3=6; } break; - case 40: - case 70: - case 78: + case 36: + case 66: + case 74: { alt3=7; } break; - case 80: + case 76: { alt3=8; } break; - case 81: + case 77: { alt3=9; } break; - case 82: + case 78: { alt3=10; } @@ -547,9 +543,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:13: definicaoClasse { - pushFollow(FOLLOW_definicaoClasse_in_instrucao152); + pushFollow(FOLLOW_definicaoClasse_in_instrucao132); definicaoClasse6=definicaoClasse(); state._fsp--; @@ -559,9 +555,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:31: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao156); + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao136); manipulacaoObjetos7=manipulacaoObjetos(); state._fsp--; @@ -571,9 +567,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:52: aritmetica { - pushFollow(FOLLOW_aritmetica_in_instrucao160); + pushFollow(FOLLOW_aritmetica_in_instrucao140); aritmetica8=aritmetica(); state._fsp--; @@ -583,9 +579,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:65: load { - pushFollow(FOLLOW_load_in_instrucao164); + pushFollow(FOLLOW_load_in_instrucao144); load9=load(); state._fsp--; @@ -595,9 +591,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:72: store { - pushFollow(FOLLOW_store_in_instrucao168); + pushFollow(FOLLOW_store_in_instrucao148); store10=store(); state._fsp--; @@ -607,9 +603,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:80: desvio { - pushFollow(FOLLOW_desvio_in_instrucao172); + pushFollow(FOLLOW_desvio_in_instrucao152); desvio11=desvio(); state._fsp--; @@ -619,9 +615,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:89: logica { - pushFollow(FOLLOW_logica_in_instrucao176); + pushFollow(FOLLOW_logica_in_instrucao156); logica12=logica(); state._fsp--; @@ -631,9 +627,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:21: 'nop' { - string_literal13=(Token)match(input,80,FOLLOW_80_in_instrucao199); + string_literal13=(Token)match(input,76,FOLLOW_76_in_instrucao179); string_literal13_tree = (BytecodesAST)adaptor.create(string_literal13) ; @@ -643,9 +639,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:17: a= 'pop' { - a=(Token)match(input,81,FOLLOW_81_in_instrucao221); + a=(Token)match(input,77,FOLLOW_77_in_instrucao201); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -657,9 +653,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:17: a= 'pop2' { - a=(Token)match(input,82,FOLLOW_82_in_instrucao245); + a=(Token)match(input,78,FOLLOW_78_in_instrucao225); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -674,7 +670,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } - NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao265); + NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao245); NOVA_LINHA14_tree = (BytecodesAST)adaptor.create(NOVA_LINHA14) ; @@ -712,7 +708,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -740,19 +736,19 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST string_literal22_tree=null; BytecodesAST VOID23_tree=null; RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); - RewriteRuleTokenStream stream_20=new RewriteRuleTokenStream(adaptor,"token 20"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==20) ) { + if ( (LA6_0==16) ) { alt6=1; } - else if ( (LA6_0==22) ) { + else if ( (LA6_0==18) ) { alt6=2; } else { @@ -764,32 +760,32 @@ else if ( (LA6_0==22) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { - string_literal15=(Token)match(input,20,FOLLOW_20_in_definicaoClasse287); - stream_20.add(string_literal15); + string_literal15=(Token)match(input,16,FOLLOW_16_in_definicaoClasse267); + stream_16.add(string_literal15); - ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse289); + ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse269); stream_ID.add(ID16); - NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse291); + NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse271); stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); - if ( (LA4_0==23) ) { + if ( (LA4_0==19) ) { alt4=1; } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:42: superClasse { - pushFollow(FOLLOW_superClasse_in_definicaoClasse293); + pushFollow(FOLLOW_superClasse_in_definicaoClasse273); superClasse18=superClasse(); state._fsp--; @@ -802,23 +798,23 @@ else if ( (LA6_0==22) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:55: ( membroClasse )+ int cnt5=0; loop5: do { int alt5=2; int LA5_0 = input.LA(1); - if ( (LA5_0==21) ) { + if ( (LA5_0==17) ) { alt5=1; } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:55: membroClasse { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse296); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse276); membroClasse19=membroClasse(); state._fsp--; @@ -839,7 +835,7 @@ else if ( (LA6_0==22) ) { // AST REWRITE - // elements: superClasse, ID, membroClasse + // elements: superClasse, ID, 16, membroClasse // token labels: // rule labels: retval // token list labels: @@ -849,27 +845,27 @@ else if ( (LA6_0==22) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 56:19: -> ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 52:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:22: ^( CLASSE ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(CLASSE, "CLASSE") + stream_16.nextNode() , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:34: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:36: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:47: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -899,33 +895,33 @@ else if ( (LA6_0==22) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:19: '.method' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:19: '.method' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal20=(Token)match(input,22,FOLLOW_22_in_definicaoClasse355); + string_literal20=(Token)match(input,18,FOLLOW_18_in_definicaoClasse335); string_literal20_tree = (BytecodesAST)adaptor.create(string_literal20) ; adaptor.addChild(root_0, string_literal20_tree); - INIT21=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse357); + INIT21=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse337); INIT21_tree = (BytecodesAST)adaptor.create(INIT21) ; adaptor.addChild(root_0, INIT21_tree); - string_literal22=(Token)match(input,19,FOLLOW_19_in_definicaoClasse359); + string_literal22=(Token)match(input,15,FOLLOW_15_in_definicaoClasse339); string_literal22_tree = (BytecodesAST)adaptor.create(string_literal22) ; adaptor.addChild(root_0, string_literal22_tree); - VOID23=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse361); + VOID23=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse341); VOID23_tree = (BytecodesAST)adaptor.create(VOID23) ; @@ -965,7 +961,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -978,18 +974,18 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal24_tree=null; BytecodesAST ID25_tree=null; + RewriteRuleTokenStream stream_19=new RewriteRuleTokenStream(adaptor,"token 19"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:15: '.super' ID { - string_literal24=(Token)match(input,23,FOLLOW_23_in_superClasse402); - stream_23.add(string_literal24); + string_literal24=(Token)match(input,19,FOLLOW_19_in_superClasse382); + stream_19.add(string_literal24); - ID25=(Token)match(input,ID,FOLLOW_ID_in_superClasse404); + ID25=(Token)match(input,ID,FOLLOW_ID_in_superClasse384); stream_ID.add(ID25); @@ -1004,9 +1000,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 60:27: -> ^( EXTENDS ID ) + // 56:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1056,7 +1052,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1071,22 +1067,22 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST string_literal26_tree=null; BytecodesAST ID27_tree=null; - RewriteRuleTokenStream stream_21=new RewriteRuleTokenStream(adaptor,"token 21"); + RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:16: '.field' ID tipo { - string_literal26=(Token)match(input,21,FOLLOW_21_in_membroClasse421); - stream_21.add(string_literal26); + string_literal26=(Token)match(input,17,FOLLOW_17_in_membroClasse401); + stream_17.add(string_literal26); - ID27=(Token)match(input,ID,FOLLOW_ID_in_membroClasse423); + ID27=(Token)match(input,ID,FOLLOW_ID_in_membroClasse403); stream_ID.add(ID27); - pushFollow(FOLLOW_tipo_in_membroClasse425); + pushFollow(FOLLOW_tipo_in_membroClasse405); tipo28=tipo(); state._fsp--; @@ -1094,7 +1090,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo28.getTree()); // AST REWRITE - // elements: ID, tipo + // elements: tipo, ID // token labels: // rule labels: retval // token list labels: @@ -1104,9 +1100,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 62:33: -> ^( FIELD_DECL ID tipo ) + // 58:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1158,7 +1154,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( GETFIELD $b tipo ) |a= 'putfield' b= campo tipo -> ^( PUTFIELD $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( INVOKESPECIAL $c) ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1177,27 +1173,27 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); - RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); + RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:20: (a= 'getfield' b= campo tipo -> ^( GETFIELD $b tipo ) |a= 'putfield' b= campo tipo -> ^( PUTFIELD $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( INVOKESPECIAL $c) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ) int alt7=3; switch ( input.LA(1) ) { - case 37: + case 33: { alt7=1; } break; - case 83: + case 79: { alt7=2; } break; - case 69: + case 65: { alt7=3; } @@ -1212,20 +1208,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,37,FOLLOW_37_in_manipulacaoObjetos477); - stream_37.add(a); + a=(Token)match(input,33,FOLLOW_33_in_manipulacaoObjetos457); + stream_33.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos483); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos463); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos485); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos465); tipo29=tipo(); state._fsp--; @@ -1233,7 +1229,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo29.getTree()); // AST REWRITE - // elements: b, tipo + // elements: tipo, 33, b // token labels: // rule labels: retval, b // token list labels: @@ -1244,13 +1240,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 66:52: -> ^( GETFIELD $b tipo ) + // 62:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:55: ^( GETFIELD $b tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(GETFIELD, "GETFIELD") + stream_33.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1268,20 +1264,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,83,FOLLOW_83_in_manipulacaoObjetos523); - stream_83.add(a); + a=(Token)match(input,79,FOLLOW_79_in_manipulacaoObjetos503); + stream_79.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos529); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos509); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos531); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos511); tipo30=tipo(); state._fsp--; @@ -1289,7 +1285,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo30.getTree()); // AST REWRITE - // elements: tipo, b + // elements: tipo, 79, b // token labels: // rule labels: retval, b // token list labels: @@ -1300,13 +1296,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 67:52: -> ^( PUTFIELD $b tipo ) + // 63:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:55: ^( PUTFIELD $b tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(PUTFIELD, "PUTFIELD") + stream_79.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1324,13 +1320,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:22: a= 'invokespecial' c= chamadaMetodo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:22: a= 'invokespecial' c= chamadaMetodo { - a=(Token)match(input,69,FOLLOW_69_in_manipulacaoObjetos570); - stream_69.add(a); + a=(Token)match(input,65,FOLLOW_65_in_manipulacaoObjetos550); + stream_65.add(a); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos576); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos556); c=chamadaMetodo(); state._fsp--; @@ -1338,7 +1334,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(c.getTree()); // AST REWRITE - // elements: c + // elements: c, 65 // token labels: // rule labels: retval, c // token list labels: @@ -1349,13 +1345,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 68:60: -> ^( INVOKESPECIAL $c) + // 64:60: -> ^( 'invokespecial' $c) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:63: ^( INVOKESPECIAL $c) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:63: ^( 'invokespecial' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(INVOKESPECIAL, "INVOKESPECIAL") + stream_65.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -1401,7 +1397,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1418,7 +1414,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST VOID32_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1431,7 +1427,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { alt8=2; } break; - case 26: + case 22: { alt8=3; } @@ -1446,12 +1442,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT31=(Token)match(input,INT,FOLLOW_INT_in_tipo615); + INT31=(Token)match(input,INT,FOLLOW_INT_in_tipo595); INT31_tree = (BytecodesAST)adaptor.create(INT31) ; @@ -1461,12 +1457,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID32=(Token)match(input,VOID,FOLLOW_VOID_in_tipo619); + VOID32=(Token)match(input,VOID,FOLLOW_VOID_in_tipo599); VOID32_tree = (BytecodesAST)adaptor.create(VOID32) ; @@ -1476,12 +1472,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo623); + pushFollow(FOLLOW_tipoRef_in_tipo603); tipoRef33=tipoRef(); state._fsp--; @@ -1521,7 +1517,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1534,40 +1530,40 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { - case 39: + case 35: { alt9=1; } break; - case 77: + case 73: { alt9=2; } break; - case 67: + case 63: { alt9=3; } break; - case 48: + case 44: { alt9=4; } break; - case 71: + case 67: { alt9=5; } break; - case 61: + case 57: { alt9=6; } break; - case 68: + case 64: { alt9=7; } @@ -1582,12 +1578,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,39,FOLLOW_39_in_aritmetica636); + a=(Token)match(input,35,FOLLOW_35_in_aritmetica616); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1599,12 +1595,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,77,FOLLOW_77_in_aritmetica657); + a=(Token)match(input,73,FOLLOW_73_in_aritmetica637); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1616,12 +1612,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,67,FOLLOW_67_in_aritmetica678); + a=(Token)match(input,63,FOLLOW_63_in_aritmetica658); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1633,12 +1629,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,48,FOLLOW_48_in_aritmetica699); + a=(Token)match(input,44,FOLLOW_44_in_aritmetica679); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1650,12 +1646,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,71,FOLLOW_71_in_aritmetica720); + a=(Token)match(input,67,FOLLOW_67_in_aritmetica700); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1667,12 +1663,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,61,FOLLOW_61_in_aritmetica741); + a=(Token)match(input,57,FOLLOW_57_in_aritmetica721); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1684,12 +1680,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,68,FOLLOW_68_in_aritmetica762); + a=(Token)match(input,64,FOLLOW_64_in_aritmetica742); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1731,7 +1727,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1750,95 +1746,95 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST INTEIRO36_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { - case 47: + case 43: { alt10=1; } break; - case 41: + case 37: { alt10=2; } break; - case 42: + case 38: { alt10=3; } break; - case 43: + case 39: { alt10=4; } break; - case 44: + case 40: { alt10=5; } break; - case 45: + case 41: { alt10=6; } break; - case 46: + case 42: { alt10=7; } break; - case 63: + case 59: { alt10=8; } break; - case 64: + case 60: { alt10=9; } break; - case 65: + case 61: { alt10=10; } break; - case 66: + case 62: { alt10=11; } break; - case 62: + case 58: { alt10=12; } break; - case 79: + case 75: { alt10=13; } break; - case 27: + case 23: { alt10=14; } break; - case 28: + case 24: { alt10=15; } break; - case 29: + case 25: { alt10=16; } break; - case 30: + case 26: { alt10=17; } break; - case 31: + case 27: { alt10=18; } @@ -1853,12 +1849,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,47,FOLLOW_47_in_load799); + a=(Token)match(input,43,FOLLOW_43_in_load779); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1870,12 +1866,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,41,FOLLOW_41_in_load813); + a=(Token)match(input,37,FOLLOW_37_in_load793); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1887,12 +1883,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,42,FOLLOW_42_in_load828); + a=(Token)match(input,38,FOLLOW_38_in_load808); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1904,12 +1900,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,43,FOLLOW_43_in_load843); + a=(Token)match(input,39,FOLLOW_39_in_load823); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1921,12 +1917,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,44,FOLLOW_44_in_load858); + a=(Token)match(input,40,FOLLOW_40_in_load838); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1938,12 +1934,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,45,FOLLOW_45_in_load872); + a=(Token)match(input,41,FOLLOW_41_in_load852); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1955,12 +1951,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,46,FOLLOW_46_in_load886); + a=(Token)match(input,42,FOLLOW_42_in_load866); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1972,12 +1968,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,63,FOLLOW_63_in_load900); + a=(Token)match(input,59,FOLLOW_59_in_load880); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -1989,12 +1985,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,64,FOLLOW_64_in_load915); + a=(Token)match(input,60,FOLLOW_60_in_load895); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2006,12 +2002,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,65,FOLLOW_65_in_load930); + a=(Token)match(input,61,FOLLOW_61_in_load910); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2023,12 +2019,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,66,FOLLOW_66_in_load945); + a=(Token)match(input,62,FOLLOW_62_in_load925); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2040,19 +2036,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,62,FOLLOW_62_in_load960); + a=(Token)match(input,58,FOLLOW_58_in_load940); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO34=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load962); + INTEIRO34=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load942); INTEIRO34_tree = (BytecodesAST)adaptor.create(INTEIRO34) ; @@ -2064,19 +2060,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,79,FOLLOW_79_in_load977); + a=(Token)match(input,75,FOLLOW_75_in_load957); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load979); + INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load959); INTEIRO35_tree = (BytecodesAST)adaptor.create(INTEIRO35) ; @@ -2088,19 +2084,19 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: a= 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: a= 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,27,FOLLOW_27_in_load994); + a=(Token)match(input,23,FOLLOW_23_in_load974); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load996); + INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load976); INTEIRO36_tree = (BytecodesAST)adaptor.create(INTEIRO36) ; @@ -2112,12 +2108,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:8: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: a= 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,28,FOLLOW_28_in_load1011); + a=(Token)match(input,24,FOLLOW_24_in_load991); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2129,12 +2125,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:8: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: a= 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,29,FOLLOW_29_in_load1026); + a=(Token)match(input,25,FOLLOW_25_in_load1006); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2146,12 +2142,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:8: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: a= 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,30,FOLLOW_30_in_load1041); + a=(Token)match(input,26,FOLLOW_26_in_load1021); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2163,12 +2159,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:8: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: a= 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,31,FOLLOW_31_in_load1055); + a=(Token)match(input,27,FOLLOW_27_in_load1035); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2210,7 +2206,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2227,55 +2223,55 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST INTEIRO38_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt11=10; switch ( input.LA(1) ) { - case 73: + case 69: { alt11=1; } break; - case 74: + case 70: { alt11=2; } break; - case 75: + case 71: { alt11=3; } break; - case 76: + case 72: { alt11=4; } break; - case 72: + case 68: { alt11=5; } break; - case 32: + case 28: { alt11=6; } break; - case 33: + case 29: { alt11=7; } break; - case 34: + case 30: { alt11=8; } break; - case 35: + case 31: { alt11=9; } break; - case 36: + case 32: { alt11=10; } @@ -2290,12 +2286,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,73,FOLLOW_73_in_store1079); + a=(Token)match(input,69,FOLLOW_69_in_store1059); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2307,12 +2303,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,74,FOLLOW_74_in_store1095); + a=(Token)match(input,70,FOLLOW_70_in_store1075); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2324,12 +2320,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,75,FOLLOW_75_in_store1111); + a=(Token)match(input,71,FOLLOW_71_in_store1091); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2341,12 +2337,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,76,FOLLOW_76_in_store1127); + a=(Token)match(input,72,FOLLOW_72_in_store1107); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2358,19 +2354,19 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,72,FOLLOW_72_in_store1143); + a=(Token)match(input,68,FOLLOW_68_in_store1123); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1145); + INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1125); INTEIRO37_tree = (BytecodesAST)adaptor.create(INTEIRO37) ; @@ -2382,19 +2378,19 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:9: a= 'astore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:9: a= 'astore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,32,FOLLOW_32_in_store1161); + a=(Token)match(input,28,FOLLOW_28_in_store1141); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1163); + INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1143); INTEIRO38_tree = (BytecodesAST)adaptor.create(INTEIRO38) ; @@ -2406,12 +2402,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:9: a= 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:9: a= 'astore_0' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,33,FOLLOW_33_in_store1179); + a=(Token)match(input,29,FOLLOW_29_in_store1159); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2423,12 +2419,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:9: a= 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:9: a= 'astore_1' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,34,FOLLOW_34_in_store1195); + a=(Token)match(input,30,FOLLOW_30_in_store1175); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2440,12 +2436,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:9: a= 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:9: a= 'astore_2' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,35,FOLLOW_35_in_store1211); + a=(Token)match(input,31,FOLLOW_31_in_store1191); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2457,12 +2453,12 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:9: a= 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:9: a= 'astore_3' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,36,FOLLOW_36_in_store1227); + a=(Token)match(input,32,FOLLOW_32_in_store1207); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2504,7 +2500,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2517,20 +2513,20 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { - case 40: + case 36: { alt12=1; } break; - case 70: + case 66: { alt12=2; } break; - case 78: + case 74: { alt12=3; } @@ -2545,12 +2541,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,40,FOLLOW_40_in_logica1248); + a=(Token)match(input,36,FOLLOW_36_in_logica1228); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2562,12 +2558,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,70,FOLLOW_70_in_logica1265); + a=(Token)match(input,66,FOLLOW_66_in_logica1245); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2579,12 +2575,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,78,FOLLOW_78_in_logica1282); + a=(Token)match(input,74,FOLLOW_74_in_logica1262); a_tree = (BytecodesAST)adaptor.create(a) ; @@ -2626,7 +2622,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2641,70 +2637,70 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { - case 55: + case 51: { alt13=1; } break; - case 60: + case 56: { alt13=2; } break; - case 59: + case 55: { alt13=3; } break; - case 56: + case 52: { alt13=4; } break; - case 57: + case 53: { alt13=5; } break; - case 58: + case 54: { alt13=6; } break; - case 49: + case 45: { alt13=7; } break; - case 54: + case 50: { alt13=8; } break; - case 53: + case 49: { alt13=9; } break; - case 50: + case 46: { alt13=10; } break; - case 51: + case 47: { alt13=11; } break; - case 52: + case 48: { alt13=12; } break; - case 38: + case 34: { alt13=13; } @@ -2719,19 +2715,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,55,FOLLOW_55_in_desvio1304); + a=(Token)match(input,51,FOLLOW_51_in_desvio1284); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1310); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1290); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2743,19 +2739,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,60,FOLLOW_60_in_desvio1327); + a=(Token)match(input,56,FOLLOW_56_in_desvio1307); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1333); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1313); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2767,19 +2763,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,59,FOLLOW_59_in_desvio1350); + a=(Token)match(input,55,FOLLOW_55_in_desvio1330); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1356); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1336); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2791,19 +2787,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,56,FOLLOW_56_in_desvio1373); + a=(Token)match(input,52,FOLLOW_52_in_desvio1353); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1379); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1359); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2815,19 +2811,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,57,FOLLOW_57_in_desvio1396); + a=(Token)match(input,53,FOLLOW_53_in_desvio1376); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1402); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1382); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2839,19 +2835,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,58,FOLLOW_58_in_desvio1419); + a=(Token)match(input,54,FOLLOW_54_in_desvio1399); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1425); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1405); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2863,19 +2859,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,49,FOLLOW_49_in_desvio1442); + a=(Token)match(input,45,FOLLOW_45_in_desvio1422); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1448); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1428); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2887,19 +2883,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,54,FOLLOW_54_in_desvio1465); + a=(Token)match(input,50,FOLLOW_50_in_desvio1445); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1471); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1451); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2911,19 +2907,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,53,FOLLOW_53_in_desvio1488); + a=(Token)match(input,49,FOLLOW_49_in_desvio1468); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1494); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1474); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2935,19 +2931,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,50,FOLLOW_50_in_desvio1511); + a=(Token)match(input,46,FOLLOW_46_in_desvio1491); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1517); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1497); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2959,19 +2955,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,51,FOLLOW_51_in_desvio1534); + a=(Token)match(input,47,FOLLOW_47_in_desvio1514); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1540); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1520); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -2983,19 +2979,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,52,FOLLOW_52_in_desvio1557); + a=(Token)match(input,48,FOLLOW_48_in_desvio1537); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1563); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1543); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -3007,19 +3003,19 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); - a=(Token)match(input,38,FOLLOW_38_in_desvio1580); + a=(Token)match(input,34,FOLLOW_34_in_desvio1560); a_tree = (BytecodesAST)adaptor.create(a) ; adaptor.addChild(root_0, a_tree); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1586); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1566); b_tree = (BytecodesAST)adaptor.create(b) ; @@ -3065,7 +3061,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:1: chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] : (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:1: chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] : (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -3093,13 +3089,13 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:6: ( (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:8: (cls+= ID '/' )+ n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:6: ( (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:8: (cls+= ID '/' )+ n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:8: (cls+= ID '/' )+ int cnt14=0; loop14: do { @@ -3113,9 +3109,9 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo1628); + cls=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo1608); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3125,7 +3121,7 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni list_cls.add(cls); - char_literal39=(Token)match(input,24,FOLLOW_24_in_chamadaMetodo1630); + char_literal39=(Token)match(input,20,FOLLOW_20_in_chamadaMetodo1610); char_literal39_tree = (BytecodesAST)adaptor.create(char_literal39) ; @@ -3145,21 +3141,21 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni } while (true); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo1638); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo1618); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,19,FOLLOW_19_in_chamadaMetodo1644); + par=(Token)match(input,15,FOLLOW_15_in_chamadaMetodo1624); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo1650); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo1630); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -3205,7 +3201,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3227,13 +3223,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:8: (cls+= ID '/' )+ int cnt15=0; loop15: do { @@ -3243,7 +3239,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { if ( (LA15_0==ID) ) { int LA15_1 = input.LA(2); - if ( (LA15_1==24) ) { + if ( (LA15_1==20) ) { alt15=1; } @@ -3253,9 +3249,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo1690); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo1670); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3265,7 +3261,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal40=(Token)match(input,24,FOLLOW_24_in_campo1692); + char_literal40=(Token)match(input,20,FOLLOW_20_in_campo1672); char_literal40_tree = (BytecodesAST)adaptor.create(char_literal40) ; @@ -3285,7 +3281,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1700); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1680); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3325,7 +3321,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3344,20 +3340,20 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST ID44_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal41=(Token)match(input,26,FOLLOW_26_in_tipoRef1716); + char_literal41=(Token)match(input,22,FOLLOW_22_in_tipoRef1696); char_literal41_tree = (BytecodesAST)adaptor.create(char_literal41) ; adaptor.addChild(root_0, char_literal41_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:15: ( ID '/' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:15: ( ID '/' )* loop16: do { int alt16=2; @@ -3366,7 +3362,7 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio if ( (LA16_0==ID) ) { int LA16_1 = input.LA(2); - if ( (LA16_1==24) ) { + if ( (LA16_1==20) ) { alt16=1; } @@ -3376,16 +3372,16 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:16: ID '/' { - ID42=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1719); + ID42=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1699); ID42_tree = (BytecodesAST)adaptor.create(ID42) ; adaptor.addChild(root_0, ID42_tree); - char_literal43=(Token)match(input,24,FOLLOW_24_in_tipoRef1721); + char_literal43=(Token)match(input,20,FOLLOW_20_in_tipoRef1701); char_literal43_tree = (BytecodesAST)adaptor.create(char_literal43) ; @@ -3401,7 +3397,7 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio } while (true); - ID44=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1725); + ID44=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1705); ID44_tree = (BytecodesAST)adaptor.create(ID44) ; @@ -3436,128 +3432,128 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio - public static final BitSet FOLLOW_comando_in_programa92 = new BitSet(new long[]{0xFFFFFFFFF8504102L,0x00000000000FFFFFL}); - public static final BitSet FOLLOW_label_in_comando112 = new BitSet(new long[]{0xFFFFFFFFF8504000L,0x00000000000FFFFFL}); - public static final BitSet FOLLOW_instrucao_in_comando114 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando118 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label140 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_25_in_label142 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao152 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao156 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao160 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_load_in_instrucao164 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_store_in_instrucao168 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_desvio_in_instrucao172 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_logica_in_instrucao176 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_80_in_instrucao199 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_81_in_instrucao221 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_82_in_instrucao245 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao265 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_20_in_definicaoClasse287 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse289 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse291 = new BitSet(new long[]{0x0000000000A00000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse293 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse296 = new BitSet(new long[]{0x0000000000200002L}); - public static final BitSet FOLLOW_22_in_definicaoClasse355 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INIT_in_definicaoClasse357 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_19_in_definicaoClasse359 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_VOID_in_definicaoClasse361 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_superClasse402 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_superClasse404 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_21_in_membroClasse421 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_membroClasse423 = new BitSet(new long[]{0x0000000004020400L}); - public static final BitSet FOLLOW_tipo_in_membroClasse425 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_manipulacaoObjetos477 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos483 = new BitSet(new long[]{0x0000000004020400L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos485 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_manipulacaoObjetos523 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos529 = new BitSet(new long[]{0x0000000004020400L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos531 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_manipulacaoObjetos570 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos576 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo615 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo619 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo623 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_aritmetica636 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_aritmetica657 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_aritmetica678 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_aritmetica699 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_aritmetica720 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_aritmetica741 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_aritmetica762 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load799 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load813 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load828 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load843 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load858 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_load872 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load886 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load900 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_load915 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_load930 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_load945 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load960 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_load962 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_load977 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_load979 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load994 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_load996 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_load1011 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_load1026 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_load1041 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_load1055 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_store1079 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_store1095 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_store1111 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_store1127 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_store1143 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_store1145 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_store1161 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_store1163 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_store1179 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_store1195 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_store1211 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_store1227 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_logica1248 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_logica1265 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_logica1282 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio1304 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1310 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_desvio1327 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1333 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio1350 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1356 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio1373 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1379 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio1396 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1402 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_desvio1419 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1425 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1442 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1448 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_desvio1465 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1471 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_desvio1488 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1494 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1511 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1517 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1534 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1540 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1557 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1563 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_desvio1580 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1586 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_chamadaMetodo1628 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_24_in_chamadaMetodo1630 = new BitSet(new long[]{0x0000000000000300L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo1638 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_19_in_chamadaMetodo1644 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo1650 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo1690 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_24_in_campo1692 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_campo1700 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_tipoRef1716 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_tipoRef1719 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_24_in_tipoRef1721 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_tipoRef1725 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_programa72 = new BitSet(new long[]{0xFFFFFFFFFF850842L,0x000000000000FFFFL}); + public static final BitSet FOLLOW_label_in_comando92 = new BitSet(new long[]{0xFFFFFFFFFF850800L,0x000000000000FFFFL}); + public static final BitSet FOLLOW_instrucao_in_comando94 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando98 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label120 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_21_in_label122 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao132 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao136 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao140 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_load_in_instrucao144 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_store_in_instrucao148 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_desvio_in_instrucao152 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_logica_in_instrucao156 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_76_in_instrucao179 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_77_in_instrucao201 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_78_in_instrucao225 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao245 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_16_in_definicaoClasse267 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse269 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse271 = new BitSet(new long[]{0x00000000000A0000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse273 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse276 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_18_in_definicaoClasse335 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_INIT_in_definicaoClasse337 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_definicaoClasse339 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_VOID_in_definicaoClasse341 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_19_in_superClasse382 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_superClasse384 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_membroClasse401 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_membroClasse403 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_membroClasse405 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_manipulacaoObjetos457 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos463 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_manipulacaoObjetos503 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos509 = new BitSet(new long[]{0x0000000000402100L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos511 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_manipulacaoObjetos550 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos556 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo595 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo599 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo603 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_aritmetica616 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_aritmetica637 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_aritmetica658 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_aritmetica679 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_aritmetica700 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_aritmetica721 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_aritmetica742 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load793 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load808 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load823 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load838 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load852 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load866 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load880 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load895 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load910 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load925 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load940 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load942 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_load957 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load959 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_load974 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_load976 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_load991 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_load1006 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_load1021 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_load1035 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_store1059 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_store1075 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_store1091 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_store1107 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_store1123 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_store1125 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_store1141 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INTEIRO_in_store1143 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_store1159 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_store1175 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_store1191 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_store1207 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_logica1228 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_logica1245 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_logica1262 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio1284 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1290 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio1307 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1313 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio1330 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1336 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1353 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1359 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_desvio1376 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1382 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_desvio1399 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1405 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_desvio1422 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1428 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio1445 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1451 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_desvio1468 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1474 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_desvio1491 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1497 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_desvio1514 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1520 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_desvio1537 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1543 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_desvio1560 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_desvio1566 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_chamadaMetodo1608 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_chamadaMetodo1610 = new BitSet(new long[]{0x00000000000000C0L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo1618 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_chamadaMetodo1624 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo1630 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo1670 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_campo1672 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_campo1680 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_22_in_tipoRef1696 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_tipoRef1699 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_tipoRef1701 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_ID_in_tipoRef1705 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java similarity index 63% rename from src/br/ufpb/iged/interpretador/symboltable/parser/Def.java rename to src/br/ufpb/iged/interpretador/parser/Def.java index c5ae7b5..19b70f3 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,6 +1,6 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-03 22:49:06 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-03 23:57:13 - package br.ufpb.iged.interpretador.symboltable.parser; + package br.ufpb.iged.interpretador.parser; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; import br.ufpb.iged.interpretador.symboltable.classes.Escopo; @@ -20,17 +20,86 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "GETFIELD", "ID", "INVOKESPECIAL", "PUTFIELD" + "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int CLASSE=4; - public static final int EXTENDS=5; - public static final int FIELD_DECL=6; - public static final int GETFIELD=7; - public static final int ID=8; - public static final int INVOKESPECIAL=12; - public static final int PUTFIELD=16; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__19=19; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__50=50; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + public static final int T__54=54; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__59=59; + public static final int T__60=60; + public static final int T__61=61; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int T__66=66; + public static final int T__67=67; + public static final int T__68=68; + public static final int T__69=69; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int T__73=73; + public static final int T__74=74; + public static final int T__75=75; + public static final int T__76=76; + public static final int T__77=77; + public static final int T__78=78; + public static final int T__79=79; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int INTEIRO=9; + public static final int MEMBRO_CLASSE=10; + public static final int NOVA_LINHA=11; + public static final int NULL=12; + public static final int VOID=13; + public static final int WS=14; // delegates public TreeFilter[] getDelegates() { @@ -69,7 +138,7 @@ public final void topdown() throws RecognitionException { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==CLASSE) ) { + if ( (LA1_0==16) ) { alt1=1; } else if ( (LA1_0==FIELD_DECL) ) { @@ -87,7 +156,7 @@ else if ( (LA1_0==FIELD_DECL) ) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: entraNaClasse { - pushFollow(FOLLOW_entraNaClasse_in_topdown48); + pushFollow(FOLLOW_entraNaClasse_in_topdown52); entraNaClasse(); state._fsp--; @@ -98,7 +167,7 @@ else if ( (LA1_0==FIELD_DECL) ) { case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown60); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown64); declaracaoVariavel(); state._fsp--; @@ -130,22 +199,22 @@ public final void bottomup() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse | getfield | putfield | invokespecial ) int alt2=4; switch ( input.LA(1) ) { - case CLASSE: + case 16: { alt2=1; } break; - case GETFIELD: + case 33: { alt2=2; } break; - case PUTFIELD: + case 79: { alt2=3; } break; - case INVOKESPECIAL: + case 65: { alt2=4; } @@ -163,7 +232,7 @@ public final void bottomup() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup77); + pushFollow(FOLLOW_saiDaClasse_in_bottomup81); saiDaClasse(); state._fsp--; @@ -174,7 +243,7 @@ public final void bottomup() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:12: getfield { - pushFollow(FOLLOW_getfield_in_bottomup90); + pushFollow(FOLLOW_getfield_in_bottomup94); getfield(); state._fsp--; @@ -185,7 +254,7 @@ public final void bottomup() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:12: putfield { - pushFollow(FOLLOW_putfield_in_bottomup103); + pushFollow(FOLLOW_putfield_in_bottomup107); putfield(); state._fsp--; @@ -196,7 +265,7 @@ public final void bottomup() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:12: invokespecial { - pushFollow(FOLLOW_invokespecial_in_bottomup116); + pushFollow(FOLLOW_invokespecial_in_bottomup120); invokespecial(); state._fsp--; @@ -222,21 +291,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse150); if (state.failed) return ; + match(input,16,FOLLOW_16_in_entraNaClasse154); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse154); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse158); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:26: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:28: ( ^( EXTENDS sup= ID ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -252,7 +321,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= CLASSE && LA3_5 <= PUTFIELD)) ) { + if ( ((LA3_5 >= EXTENDS && LA3_5 <= 79)) ) { alt3=1; } } @@ -261,12 +330,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:27: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:29: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse158); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse162); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse162); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse166); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -321,10 +390,10 @@ public final void declaracaoVariavel() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:5: ( ^( FIELD_DECL ID tipo= . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:9: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel198); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel202); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel200); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel204); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -360,13 +429,13 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:1: saiDaClasse : CLASSE ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:13: ( CLASSE ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:15: CLASSE + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:13: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:15: '.class' { - match(input,CLASSE,FOLLOW_CLASSE_in_saiDaClasse233); if (state.failed) return ; + match(input,16,FOLLOW_16_in_saiDaClasse237); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -391,13 +460,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:1: getfield : GETFIELD ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:1: getfield : 'getfield' ; public final void getfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:5: ( GETFIELD ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:7: GETFIELD + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:5: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:7: 'getfield' { - match(input,GETFIELD,FOLLOW_GETFIELD_in_getfield273); if (state.failed) return ; + match(input,33,FOLLOW_33_in_getfield277); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do getfield.."); @@ -421,13 +490,13 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:1: putfield : PUTFIELD ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:1: putfield : 'putfield' ; public final void putfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:5: ( PUTFIELD ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:7: PUTFIELD + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:5: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:7: 'putfield' { - match(input,PUTFIELD,FOLLOW_PUTFIELD_in_putfield301); if (state.failed) return ; + match(input,79,FOLLOW_79_in_putfield305); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do putfield.."); @@ -451,13 +520,13 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: invokespecial : INVOKESPECIAL ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: invokespecial : 'invokespecial' ; public final void invokespecial() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:5: ( INVOKESPECIAL ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:7: INVOKESPECIAL + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:5: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:7: 'invokespecial' { - match(input,INVOKESPECIAL,FOLLOW_INVOKESPECIAL_in_invokespecial330); if (state.failed) return ; + match(input,65,FOLLOW_65_in_invokespecial334); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do invokespecial.."); @@ -483,21 +552,21 @@ public final void invokespecial() throws RecognitionException { - public static final BitSet FOLLOW_entraNaClasse_in_topdown48 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown60 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDaClasse_in_bottomup77 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getfield_in_bottomup90 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_bottomup103 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_bottomup116 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CLASSE_in_entraNaClasse150 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse154 = new BitSet(new long[]{0x00000000000007F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse158 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel198 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel200 = new BitSet(new long[]{0x00000000000007F0L}); - public static final BitSet FOLLOW_CLASSE_in_saiDaClasse233 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_GETFIELD_in_getfield273 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PUTFIELD_in_putfield301 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INVOKESPECIAL_in_invokespecial330 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown52 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown64 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup81 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getfield_in_bottomup94 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_bottomup107 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_16_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel202 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); + public static final BitSet FOLLOW_16_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens new file mode 100644 index 0000000..ad197b0 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -0,0 +1,141 @@ +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 +T__77=77 +T__78=78 +T__79=79 +EXTENDS=4 +FIELD_DECL=5 +ID=6 +INIT=7 +INT=8 +INTEIRO=9 +MEMBRO_CLASSE=10 +NOVA_LINHA=11 +NULL=12 +VOID=13 +WS=14 +'()'=15 +'.class'=16 +'.field'=17 +'.method'=18 +'.super'=19 +'/'=20 +':'=21 +'L'=22 +'aload'=23 +'aload_0'=24 +'aload_1'=25 +'aload_2'=26 +'aload_3'=27 +'astore'=28 +'astore_0'=29 +'astore_1'=30 +'astore_2'=31 +'astore_3'=32 +'getfield'=33 +'goto'=34 +'iadd'=35 +'iand'=36 +'iconst_0'=37 +'iconst_1'=38 +'iconst_2'=39 +'iconst_3'=40 +'iconst_4'=41 +'iconst_5'=42 +'iconst_m1'=43 +'idiv'=44 +'if_icmpeq'=45 +'if_icmpge'=46 +'if_icmpgt'=47 +'if_icmple'=48 +'if_icmplt'=49 +'if_icmpne'=50 +'ifeq'=51 +'ifge'=52 +'ifgt'=53 +'ifle'=54 +'iflt'=55 +'ifne'=56 +'iinc'=57 +'iload'=58 +'iload_0'=59 +'iload_1'=60 +'iload_2'=61 +'iload_3'=62 +'imul'=63 +'ineg'=64 +'invokespecial'=65 +'ior'=66 +'irem'=67 +'istore'=68 +'istore_0'=69 +'istore_1'=70 +'istore_2'=71 +'istore_3'=72 +'isub'=73 +'ixor'=74 +'ldc'=75 +'nop'=76 +'pop'=77 +'pop2'=78 +'putfield'=79 diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java similarity index 63% rename from src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java rename to src/br/ufpb/iged/interpretador/parser/Ref.java index 729abbf..647d5bc 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,6 +1,6 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-03 22:49:06 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-03 23:57:13 - package br.ufpb.iged.interpretador.symboltable.parser; + package br.ufpb.iged.interpretador.parser; import br.ufpb.iged.interpretador.symboltable.classes.Escopo; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; @@ -20,17 +20,86 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "CLASSE", "EXTENDS", "FIELD_DECL", "GETFIELD", "ID", "INVOKESPECIAL", "PUTFIELD" + "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int CLASSE=4; - public static final int EXTENDS=5; - public static final int FIELD_DECL=6; - public static final int GETFIELD=7; - public static final int ID=8; - public static final int INVOKESPECIAL=12; - public static final int PUTFIELD=16; + public static final int T__15=15; + public static final int T__16=16; + public static final int T__17=17; + public static final int T__18=18; + public static final int T__19=19; + public static final int T__20=20; + public static final int T__21=21; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; + public static final int T__29=29; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__50=50; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + public static final int T__54=54; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__59=59; + public static final int T__60=60; + public static final int T__61=61; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int T__66=66; + public static final int T__67=67; + public static final int T__68=68; + public static final int T__69=69; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int T__73=73; + public static final int T__74=74; + public static final int T__75=75; + public static final int T__76=76; + public static final int T__77=77; + public static final int T__78=78; + public static final int T__79=79; + public static final int EXTENDS=4; + public static final int FIELD_DECL=5; + public static final int ID=6; + public static final int INIT=7; + public static final int INT=8; + public static final int INTEIRO=9; + public static final int MEMBRO_CLASSE=10; + public static final int NOVA_LINHA=11; + public static final int NULL=12; + public static final int VOID=13; + public static final int WS=14; // delegates public TreeFilter[] getDelegates() { @@ -74,7 +143,7 @@ public final void topdown() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ) int alt1=5; switch ( input.LA(1) ) { - case CLASSE: + case 16: { alt1=1; } @@ -84,17 +153,17 @@ public final void topdown() throws RecognitionException { alt1=2; } break; - case GETFIELD: + case 33: { alt1=3; } break; - case PUTFIELD: + case 79: { alt1=4; } break; - case INVOKESPECIAL: + case 65: { alt1=5; } @@ -112,7 +181,7 @@ public final void topdown() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:7: entraNaClasse { - pushFollow(FOLLOW_entraNaClasse_in_topdown53); + pushFollow(FOLLOW_entraNaClasse_in_topdown59); entraNaClasse(); state._fsp--; @@ -123,7 +192,7 @@ public final void topdown() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:37:7: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown61); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown67); declaracaoVariavel(); state._fsp--; @@ -134,7 +203,7 @@ public final void topdown() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:38:7: getfield { - pushFollow(FOLLOW_getfield_in_topdown69); + pushFollow(FOLLOW_getfield_in_topdown75); getfield(); state._fsp--; @@ -145,7 +214,7 @@ public final void topdown() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:39:7: putfield { - pushFollow(FOLLOW_putfield_in_topdown77); + pushFollow(FOLLOW_putfield_in_topdown83); putfield(); state._fsp--; @@ -156,7 +225,7 @@ public final void topdown() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:7: invokespecial { - pushFollow(FOLLOW_invokespecial_in_topdown85); + pushFollow(FOLLOW_invokespecial_in_topdown91); invokespecial(); state._fsp--; @@ -182,21 +251,21 @@ public final void topdown() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:43:1: entraNaClasse : ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:43:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:5: ( ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:9: ^( CLASSE nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,CLASSE,FOLLOW_CLASSE_in_entraNaClasse109); if (state.failed) return ; + match(input,16,FOLLOW_16_in_entraNaClasse115); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse113); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse119); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:26: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:28: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -212,7 +281,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_4==UP) ) { int LA2_5 = input.LA(5); - if ( ((LA2_5 >= CLASSE && LA2_5 <= PUTFIELD)) ) { + if ( ((LA2_5 >= EXTENDS && LA2_5 <= 79)) ) { alt2=1; } } @@ -221,12 +290,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:27: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:29: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse117); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse123); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse121); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse127); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -284,10 +353,10 @@ public final void declaracaoVariavel() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:62:5: ( ^( FIELD_DECL ID tip= . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:62:9: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel162); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel168); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel164); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel170); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -320,17 +389,17 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:70:1: getfield : ^( GETFIELD classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:70:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:71:5: ( ^( GETFIELD classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:71:7: ^( GETFIELD classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:71:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:71:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,GETFIELD,FOLLOW_GETFIELD_in_getfield203); if (state.failed) return ; + match(input,33,FOLLOW_33_in_getfield209); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -372,17 +441,17 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:77:1: putfield : ^( PUTFIELD classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:77:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:78:5: ( ^( PUTFIELD classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:78:7: ^( PUTFIELD classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:78:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:78:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,PUTFIELD,FOLLOW_PUTFIELD_in_putfield253); if (state.failed) return ; + match(input,79,FOLLOW_79_in_putfield259); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -424,7 +493,7 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:1: invokespecial : ^( INVOKESPECIAL classe= . . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:1: invokespecial : ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -432,10 +501,10 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:5: ( ^( INVOKESPECIAL classe= . . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:7: ^( INVOKESPECIAL classe= . . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:5: ( ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:7: ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) { - match(input,INVOKESPECIAL,FOLLOW_INVOKESPECIAL_in_invokespecial303); if (state.failed) return ; + match(input,65,FOLLOW_65_in_invokespecial309); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -483,19 +552,19 @@ public final void invokespecial() throws RecognitionException { - public static final BitSet FOLLOW_entraNaClasse_in_topdown53 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getfield_in_topdown69 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_topdown77 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_topdown85 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CLASSE_in_entraNaClasse109 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse113 = new BitSet(new long[]{0x00000000000007F0L}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse117 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse121 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel162 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel164 = new BitSet(new long[]{0x00000000000007F0L}); - public static final BitSet FOLLOW_GETFIELD_in_getfield203 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PUTFIELD_in_putfield253 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INVOKESPECIAL_in_invokespecial303 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown59 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown67 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getfield_in_topdown75 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_topdown83 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_topdown91 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_16_in_entraNaClasse115 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse119 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse123 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse127 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel168 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel170 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); + public static final BitSet FOLLOW_33_in_getfield209 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_79_in_putfield259 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_65_in_invokespecial309 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens new file mode 100644 index 0000000..ad197b0 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -0,0 +1,141 @@ +T__15=15 +T__16=16 +T__17=17 +T__18=18 +T__19=19 +T__20=20 +T__21=21 +T__22=22 +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 +T__77=77 +T__78=78 +T__79=79 +EXTENDS=4 +FIELD_DECL=5 +ID=6 +INIT=7 +INT=8 +INTEIRO=9 +MEMBRO_CLASSE=10 +NOVA_LINHA=11 +NULL=12 +VOID=13 +WS=14 +'()'=15 +'.class'=16 +'.field'=17 +'.method'=18 +'.super'=19 +'/'=20 +':'=21 +'L'=22 +'aload'=23 +'aload_0'=24 +'aload_1'=25 +'aload_2'=26 +'aload_3'=27 +'astore'=28 +'astore_0'=29 +'astore_1'=30 +'astore_2'=31 +'astore_3'=32 +'getfield'=33 +'goto'=34 +'iadd'=35 +'iand'=36 +'iconst_0'=37 +'iconst_1'=38 +'iconst_2'=39 +'iconst_3'=40 +'iconst_4'=41 +'iconst_5'=42 +'iconst_m1'=43 +'idiv'=44 +'if_icmpeq'=45 +'if_icmpge'=46 +'if_icmpgt'=47 +'if_icmple'=48 +'if_icmplt'=49 +'if_icmpne'=50 +'ifeq'=51 +'ifge'=52 +'ifgt'=53 +'ifle'=54 +'iflt'=55 +'ifne'=56 +'iinc'=57 +'iload'=58 +'iload_0'=59 +'iload_1'=60 +'iload_2'=61 +'iload_3'=62 +'imul'=63 +'ineg'=64 +'invokespecial'=65 +'ior'=66 +'irem'=67 +'istore'=68 +'istore_0'=69 +'istore_1'=70 +'istore_2'=71 +'istore_3'=72 +'isub'=73 +'ixor'=74 +'ldc'=75 +'nop'=76 +'pop'=77 +'pop2'=78 +'putfield'=79 diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 34f1467..8db647e 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -19,7 +19,7 @@ import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerLexer; +import br.ufpb.iged.interpretador.parser.AssemblerLexer; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; @@ -27,8 +27,8 @@ import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; -import br.ufpb.iged.interpretador.symboltable.parser.Def; -import br.ufpb.iged.interpretador.symboltable.parser.Ref; +import br.ufpb.iged.interpretador.parser.Def; +import br.ufpb.iged.interpretador.parser.Ref; public class Interpretador { diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens deleted file mode 100644 index eec9e33..0000000 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Def.tokens +++ /dev/null @@ -1,7 +0,0 @@ -CLASSE=4 -EXTENDS=5 -FIELD_DECL=6 -GETFIELD=7 -ID=8 -INVOKESPECIAL=9 -PUTFIELD=10 diff --git a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens deleted file mode 100644 index eec9e33..0000000 --- a/src/br/ufpb/iged/interpretador/symboltable/parser/Ref.tokens +++ /dev/null @@ -1,7 +0,0 @@ -CLASSE=4 -EXTENDS=5 -FIELD_DECL=6 -GETFIELD=7 -ID=8 -INVOKESPECIAL=9 -PUTFIELD=10 diff --git a/src/br/ufpb/iged/interpretador/testes/Test.java b/src/br/ufpb/iged/interpretador/testes/Test.java index 22a8aac..bd3759e 100755 --- a/src/br/ufpb/iged/interpretador/testes/Test.java +++ b/src/br/ufpb/iged/interpretador/testes/Test.java @@ -4,8 +4,8 @@ import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerLexer; -import br.ufpb.iged.interpretador.bytecodeassembler.parser.AssemblerParser; +import br.ufpb.iged.interpretador.parser.AssemblerLexer; +import br.ufpb.iged.interpretador.parser.AssemblerParser; public class Test { From d6b260b6c9124e147fea8a216bcd691ca13e1b77 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Wed, 4 Jul 2012 23:23:04 -0300 Subject: [PATCH 35/79] commit --- Main.class | 8 +- .../asm/BytecodeAssembler.class | Bin 8399 -> 6816 bytes .../principal/Interpretador.class | Bin 11913 -> 12095 bytes .../asm/BytecodeAssembler.java | 70 +--- .../iged/interpretador/gramaticas/Assembler.g | 58 ++- .../ufpb/iged/interpretador/gramaticas/Def.g | 1 + .../ufpb/iged/interpretador/gramaticas/Ref.g | 67 +++- .../interpretador/parser/AssemblerLexer.java | 48 +-- .../interpretador/parser/AssemblerParser.java | 352 +++++++++--------- .../ufpb/iged/interpretador/parser/Def.java | 27 +- .../ufpb/iged/interpretador/parser/Ref.java | 135 ++++--- .../principal/Interpretador.java | 2 +- 12 files changed, 409 insertions(+), 359 deletions(-) diff --git a/Main.class b/Main.class index 8334173..35b4aa7 100755 --- a/Main.class +++ b/Main.class @@ -50,10 +50,10 @@ L2: ineg iadd ifeq L1 aload_0 - invokespecial Main/() V + invokespecial Teste/() V ldc 5 - putfield Main/abc I + putfield Teste/abc I iconst_3 - putfield Main/xyz I - getfield Main/abc I + putfield Teste/xyz I + getfield Teste/abc I \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index cb0de1254f1a5da6466238be1fc3b0894a650a93..511f12d9bbd1e5b44182af5606b483e594df87a7 100644 GIT binary patch delta 1764 zcmZuweN5D49RECb+#TQv2ZzT2a$JhMzl07Z_>v$vp(6>2WxB?3T!A}Y1{Y$9honuL zVeVOLQL|cGFkmTb6tU8BqOC+W5%W>PRZ7e?sK#1sq~(GGZMY9zs6r3Ddr*V@ zL^*&5@j4#DAv}x`)R7fnpRSAtc&_|Ljo1z!1d9!!N7^m6$Q{t2o=19qUFemSmUyvK zHd;!24T!)aY`T%HZf2_<6ru(9u($%9L76~`cc54Kkrm%w*3d9}F`hvmDQse77&Nz# zVn9VS%Wp$B_e8q45JpiaJL3qlGe@ycgA=Hz9D>akQa1uQ1Uu~wA$7yBWgW#+QMkQ* ze~qG^MpZ9brQv0CgV z`%nytd+}V5td0P-gLmqa!`7vuSN?8Ie5sf!F$A{$2xO~|^Ke_Ihu5o$7SSZD}YqPZ6Cq{50 zYZ&&KVU6dU07nqY88+ixQW)W|jv@`?LFLmism7T(+GlAA#zo1_$5{_QlXu(ar4_wJr0E%+Zt!|gur7e~x!jnP zqQ?!A`c0bbvGPEYL4z+82sxHyvf__f)4r6~l(d^n`-^Ed4ZdQ^A}ju$HT-MYY-jjC z48NsT8MNztg3WzHibj>_x2goWehGAZt_6et>)`gR*x%v%0LTw2NEQEUn5)mod050tOSYLa~Ydk(bGY44q`snUSUx z2~q0NBURvbLC&%Dw5RoW6qh6opa@vox)rQ#Ep@2{Ypr58TT8Wy`rS8^A@Rh{oO9n@ ze&28TzTbWC?xoMI$a?0ZM~(tmB1#Ns0xPA^isU*+f!y!Re)#HcBgYcR2*v`@;Fe%? z-9RAH9h9eyUj0Uai*4IY?xND2Cg$K90{IJCH(Oh*>af+nsd{}p8tUIvSFusv;+`XR zj2>`5Bpk!oDLd2e$q_KEKrj}wqN}XFfrvnZ%yt*ev(eYbL*eSyP%K_Ioi~AYWtutF zv|irk^7S@Mi}2tmjvF|}LZ*UDJdRrh^jK(XP#Ha8Vh?_%%4n&W6nb6P=3pRRmxf>9 zDFaU?3tv3I@&cg&D_q^u9}h+cqQSV;9f_KF8qY9P-0BL3t@WY4u1Gi%6S!=zws_`- zDVucpOPn-tLSQ+$te!RX*u-=Am4ItgIMQW>X+sa*=2##y5Lshy)urRt_^pB82-GS3 zlF5fAUcm1J+|ghx5~g+nt<$NqSNptCXW;h&^>k4mQarq5;wyOhQ*tI*sOV4@e=zZ? zvT#`4-D-W>#2LIMV1)X+gM;gOJ_Fm5j#Db(KP$b3wk&6(6%AQif?>7)7ZY#dEqTVQ z@Vf$GD;5h1I0K39NbisI1y?0EXT%buCf0Iy`Yc(jmFEj&CJ!dO3N*63w25V%e0fGu zc2z>zRFm1Alh;tkjtul#eO9zB7>{(bBmJt)@}_nSyIEk(XZ7Dz4LncBfAPM7_a?f{ zz6)(uyw}A4@Bu07vj$n%f|iyF(s3Ri8~8{d%Z`({H(!gzgMFre5ToloyM;VAqsA$U z1Zqi{x|_3PDC4WblxH%!(#oM@HcaHo*3A9O{cyqy7ktP<5wcOtv4mqO=AjH1@scjX zT-0&Zi1}#7BCN$?1o#Z2M$XQ%(yoDne_%|0GwY$Dacq5<3kS+MZbUxEOJJau?(0#A z20CoSLafA6G;v%_cbDU8j@P1mhU8P(rIkCN(HN{wqw8VT1w2TY&S&GJSljMD40g;x+$6Jd zRxa;B26{=vW)>S}>HWBr*<6OG9j`J0OT}xn;|b*oyRco}kyAXRV;d|8JJ2rLt3WkX zc96EpF)U=fJ2V`}+ABv;s&^iO96=eU?Rw`ZN*9jf=4^btea{BPpk^~zKzV>IENYNk zZl&jKSc0KR8P%jRsu@bAWRT$RQY(#+S)})NyXI}AG{J|?6ccQGfjf#uPh}N_tMrd! z--Xy2_R&sea5K_z%Ouu4shFM=3m)t$pa2?+-cJ%HMUoHZt`IlLcXH?Zc5(l9q+vJw z*vqbxSiwxMz@74s5G+dLAdSd5~8V=zHJ|{*0)A1p^UhDEX$MJ^Gm4s%cmKU(8tpr#prQ2On z%Ys0EPL@%E$54eMY=L7W_;IYk6TDkbqMP5M9)4)9$FsN*C-E(uAob7NWDZ@Ps5Hgq zzLc!{aF$GIiU+*So^mk2*YQ`*bcXmc{)WFZY!9{h2mZ;M_6{vg_Ls6hi+>S$9p~B5 z&SQ;%egmgIM6H3>3I8|VO;SFj;XjIVM$qks@AyBQ^X@3hNu15NZZoP+VVtWAtWBJM znzVAb8Sw?iJ2k{ccnKAFk<7iqTmLG{JB@a{X0ub1NGU~5M~a+|Bss-=uPI6##8=yt z=#z+0Rue>cAkL#XK?HgFHol`?7xL-+qRw;9-uj{=?l$&`!|&jD^bkJukD^TJoM_*f zBp7&uiNDE<@fI(}S-wx-#sZRm;hk6^G}|s0`NF}Opk21mWmCam^Si{JLjgZHbMPKT zdmqd30W&{83BOu6X`z0rZBI(f)x37sKb?IzJp z&BC2@)0}kUL9Ix$-4vi&q;saqnk_t>(E|#F$r=5?A!cyK)J2BKlqUgLG=aAl_wOcY+6(v zQ3bNhm*o<3iJYg9vdw2`B42Lw5mqrRtiXodt6&QWTSQoiPZNc#NE2S+<1?MXSBRNR GDD4yOtZzC1 diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 4b8684651527915da5e1ad8b8ae861748ca26598..05b6c9d65c9fdf76b0afcb20836c75cc08269f1a 100644 GIT binary patch delta 3891 zcmb7HYitx%6h3Emc4u}wY`fjIw4E)5QlKv$T^=GWNXv8O)lxwU<+0GEEHtGo1!FKQ z5E4@jBru>6Py~fW4MtjA5DX$Q{vg6H6aSzQ{~7<_0~L9BX70@Nw%r!mCcEF9^PTUz zbMKkEciLBfwI=PxBgoN~w&mgG9T7d4 ztDuSj?UrwhI84EO?Y=KBdxU}o;6;!cBinaI!!dmzg$j<+#--1w9H-!ToPeNgUEdao z>GILoRs>hks_Ia22m!+~PDBtxHPeQB;5bfJpc$ti1d2k%8lvAHZElRjDrB5Wq&gzW zI8D2i9;m8Ra5@mt*&3q(dSETSppR`PLMD|i?7pSCHX<~ULN&Qj`E2^~$T(Lk^_RIq zy4{P~YJV_mA>BcZJ~_I_VwzG9v1+t4{#p4;tvTA!7HuA1w;|lp5{bECG`^(ZGF+}n z8ToQ8uAmjedTm@ro~ssDDcGRZW-JxgBh1#mPMM}%Q#{&l8D24hP^H~TE70;YM_^M| zRpt?gy9%7(rZ#v}`ziaiAte{#&uMawoa0Qu-`d8UdGUR44BFuYWD}=>m;zn>1Lx@~ z4R*n&@Gl_bKn(7~f0QeLC_I3N;D8FKfk*HdM3@6};Ryoy)WK9l6u<>dP>2o`L4tkY zMkl&JCT1acNi7w?H;b;E0G{1iS*}l!CeFw^0q&B#1bVtcxosHtijAM6w?n?(39r^) zK(CWscG2Yp^ckPt;5E!hU{)m`bEu7%FsH6VZs((7V=}H8n@&vK!f-UJ;<}Aj4Xk5g zI>ojfw3w;I1}6RfELw5n&XSGH6x(DBOgi%{Vo%d*W?J=}mOlT3oHBD@txRkPCzf=f z_9LnW)%6Qejrm_kD{hvt`FAja)dM0&Fx*6zKb=It$U9knUw?TQ%dhX7j~nCgN{mq5 zm%#Ee%NO*Q7g%24^Cbz)>(R1o8k|4!B<64Sx$Xsr9KpH{=NCLlk6X_IVKYZnCl)g7(7&t!1?#M8abq>L zv(1ioR|$7{2CEWo8?kuLxvx|?GvRWQva@{5HhY&d+s`vhvsOOFEq{;xGgpwP_R_0? z_c`TKUd2#mTuGu0OX?6(_&o2zHF+xSZ;Cfrq?E-&=v(o&57R7?%$@m$#qd@(Q2tWzwtvdi)Tpfe$#BAg_|- zUec|tNTpt&2QyPV2B}m-y(H;BXcFZ|8XA)R32&Ub*M1(lJ}Hbj;-ldJop*nwqo{#| z$u`<+qnj3Twa(#?ZK9iWG&5o@3C5UcwvG1M=*u`1nCU+(Bo*0c zjg5}j=!S)40hX{@xyeS~S;$>(qql7Iz(SrS;4y0Bh>u8c49$Wdglu%wMt3aa7;7Py z3Vv4MT4AH37Lv1|f@S4hHu~8@?m0I4SVzNkV^69TgbdG0EW% z6X*qn9cp0>r35-S5952nIHd4RpdBln2`KM`QCHx2y&s>ma$Y{?$LAARq1`FV ziq9Z|AFC2@RmXHXBR!354vs&c5W z$^u?xA&t_ML0`Wz=(A-OS%X0#|C+$G$#u8Lpgz;yU`y1qX)V8{9xIC5^ZdH_;1E8pY}Ff7;seW&i*H delta 3817 zcmb7HYfw~W7=GW~bN0r8rCq>^VWN=d@BnIJHvU-_df6Qyyv@}?|i;? z&zj83x6fVxfC_B3g9RZZZ^6*1>Wyyvxo>^u>zHj5&<=YMEUj@DAUXwfVVcZ)3QE!i z%upj+<4)+tOaUK&eFz!x*0z>tINsD5ZI5+qwWC+A^W@}vFk8SJ*n{9`ZSSg&wry*2 zp$B~e=3<`wvZsji3z#pT^yK@-3K)P41beJ$>-N@Yr{Y^6V4?hzXO1l>;AEU47kMA_ zl_PL9b(H}Z9K;F%+Hfj@zqqDEM)Hh%9WB#|5FvsCA4bToZQ6XPud_88h;;-uTXz3W&?cJE=4mti#z#RdXnZ)Ru3IZjY9=McbRpB3(piu5#c!1SHjJy0{#; zP`>63+LkC4ER{W3p`1sk_By2(6zk>GcP?T*DzC~~fOYcWET3(KfDwFLKA$yqQW)z6 z$igQPe8rkoYe!j4dwg3Lxiv*MSC!PeFpLcXu99upE4W64h4L3^mGVWwB_GYszzy<8 z*^9X*gmM}>zkI}Plf&umzS5jVt8*T3;H1%gO_p8&MOi4iaGg*z*(A~Ku6!5ye^akF7^ouy^b$W!*dO1 zP~f%OKDs@FZuP$qx`>_xX3b*TtYT~c$3%J^d)QVkmWr#l%_gQ|p*reWl42u>{zgqq zp_sO#7Spw~!tB4@kCvo9S*pr(u@<#3`}_AJb}y|qO{;;?Qu=?CU8WZn*Tm8pv6KU~ z8&OoLwjYVA_J1RdxSpopJc4Wh(T4CDGzi@C3DKfs4$ew;jU^Nek9I-#<2~@k!XwH z_L-$Yk2oAtA#P%WBhPQqze5=#by}*A#7#++EG2I~#)cyLcP3|B?`zR(>s0jbx-0n% zYi+Db@c^WkN(p?Bo6hxG-(V@)va#-9+sw4LDb2`Q%`)_?rEHs-b(qPTILM&>*V8qn~Owi~7ZJQj8%W=jfdJmWRY&@lj zWb}U0n@aQ_8+3u2tjf@5fuuQ*(q$Nv_aI#|rZT*B50_`y_-I_-WgaEOiYSj#nLPO5 zF}5O+<^nCuZ0-OkTO>^;UU_@*6d$LG@O||YUb0H#VK1Fuf1v}WiY(Ji)NP_G2D0Xw zXakJVGPq52K2&r00Qhut1;%U0W``mjEi_TLiOx$Jav3DgS~OO1*4o9G7vStlFFCW2SXu&p%Fegipj zph}B6UNF%$134F&=tBhs6l0g$XoM`+Dx8Q#bc(gPTCf;P`r@S@BL?Jg!7)DlU8f#8 z*m0KYf>WKP%0L1~A1Ql-`Cc0A0h}~TA9;0WkUtBSrx`5eE9rW$S}G$iC94oJ=;{W* zZ|JmarR(_9FyR~=Z1Cbk{cuE^G6@VN;DZE|o3Uv|OkiVPoRPqp)>*w!q%)O#*eO;F z;4I4U;@kwBASrr%%v8={TKK}TJKquCi}R^j1q<$y>BmJXwMPskaIq=Fs`Lz1sY$JZ zZgK8#GUzsCmKnv=5;%w9hST_1KR!_#OyElS*(tBgi{MlA{jrR`OVYr06Bc9PIQr4& i>S}7T;2K;@*F3P|I`|5s^wF^%WB4?E&}33O{rwM_#NWCA diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index d8bbf78..6b6b443 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -12,9 +12,7 @@ import br.ufpb.iged.interpretador.parser.AssemblerParser; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; -import br.ufpb.iged.interpretador.principal.Interpretador; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; -import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; public class BytecodeAssembler extends AssemblerParser{ @@ -31,7 +29,7 @@ public class BytecodeAssembler extends AssemblerParser{ protected List constantPool = new ArrayList(); - protected static int ip = 0; + public static int ip = 0; public static byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; protected int tamMemoriaGlobalEstruturas = 0; protected int tamMemoriaGlobalReferencias = 0; @@ -93,7 +91,7 @@ else if (tamMemoriaGlobal < 3) } - escreverOpcode(opc); + escreverOpcode(opc.getText()); } @@ -113,9 +111,7 @@ else if (tamMemoriaGlobal < endereco) } - protected void escreverOpcode(Token opc) { - - String nomeInstrucao = opc.getText(); + public void escreverOpcode(String nomeInstrucao) { Integer opcode = opcodesInstrucoes.get(nomeInstrucao); @@ -127,15 +123,15 @@ protected void escreverOpcode(Token opc) { } - protected void escreverOpcode(Token opc, Token op) throws LabelException { + public void escreverOpcode(Token opc, Token op) throws LabelException { - escreverOpcode(opc); + escreverOpcode(opc.getText()); escreverOperando(op); } - protected void escreverOperando(Token token) throws LabelException { + public void escreverOperando(Token token) throws LabelException { int valor = 0; @@ -178,52 +174,6 @@ protected int obterEndereco(String id) throws LabelException { return label.address; } - - protected void acessarCampo(Token opc, List classe, String campo) { - - escreverOpcode(opc); - - String nomeClasse = (classe.get(classe.size() - 1)).getText(); - - SimboloClasse simboloClasse = - (SimboloClasse) Interpretador.tabelaSimbolos.global.resolver(nomeClasse); - - if(!constantPool.contains(simboloClasse)) - - constantPool.add(simboloClasse); - - escreverInteiro(codigo, ip, constantPool.indexOf(simboloClasse)); - - - SimboloVariavel simboloVariavel = - (SimboloVariavel) simboloClasse.resolver(campo); - - if (!simboloClasse.getConstantPool().contains(simboloVariavel)) - - simboloClasse.getConstantPool().add(simboloVariavel); - - escreverInteiro( - codigo, ip, simboloClasse.getConstantPool().indexOf(simboloVariavel)); - - - } - - protected void chamarMetodo(Token opc, List classe) { - - escreverOpcode(opc); - - String nomeClasse = (classe.get(classe.size() - 1)).getText(); - - SimboloClasse simboloClasse = - (SimboloClasse) Interpretador.tabelaSimbolos.global.resolver(nomeClasse); - - if(!constantPool.contains(simboloClasse)) - - constantPool.add(simboloClasse); - - escreverInteiro(codigo, ip, constantPool.indexOf(simboloClasse)); - - } protected static void verificarAumentoTamanhoMemoria(int indice) { @@ -301,4 +251,12 @@ public void setTamMemoriaGlobalEstruturas(int tamMemoriaGlobalEstruturas) { this.tamMemoriaGlobalEstruturas = tamMemoriaGlobalEstruturas; } + public List getConstantPool() { + return constantPool; + } + + public void setConstantPool(List constantPool) { + this.constantPool = constantPool; + } + } diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 4689337..a62ec4d 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -25,13 +25,11 @@ tokens { @members { - protected abstract void escreverOpcode(Token opc); + protected abstract void escreverOpcode(String nomeInstrucao); protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected abstract void definirLabel(Token id) throws LabelException; - protected abstract void acessarCampo(Token opc, List classe, String campo); - protected abstract void chamarMetodo(Token opc, List classe); } @@ -44,8 +42,8 @@ label : a = ID ':' {definirLabel($a);}; instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' - | a = 'pop' {escreverOpcode($a);} - | a = 'pop2'{escreverOpcode($a);} + | a = 'pop' {escreverOpcode($a.text);} + | a = 'pop2'{escreverOpcode($a.text);} )? NOVA_LINHA; definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ @@ -66,33 +64,33 @@ manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) tipo : INT | VOID | tipoRef ; -aritmetica : a = 'iadd' {escreverOpcode($a);} - | a = 'isub' {escreverOpcode($a);} - | a = 'imul' {escreverOpcode($a);} - | a = 'idiv' {escreverOpcode($a);} - | a = 'irem' {escreverOpcode($a);} - | a = 'iinc' {escreverOpcode($a);} - | a = 'ineg' {escreverOpcode($a);} +aritmetica : a = 'iadd' {escreverOpcode($a.text);} + | a = 'isub' {escreverOpcode($a.text);} + | a = 'imul' {escreverOpcode($a.text);} + | a = 'idiv' {escreverOpcode($a.text);} + | a = 'irem' {escreverOpcode($a.text);} + | a = 'iinc' {escreverOpcode($a.text);} + | a = 'ineg' {escreverOpcode($a.text);} ; -load : a = 'iconst_m1'{escreverOpcode($a);} - | a = 'iconst_0' {escreverOpcode($a);} - | a = 'iconst_1' {escreverOpcode($a);} - | a = 'iconst_2' {escreverOpcode($a);} - | a = 'iconst_3'{escreverOpcode($a);} - | a = 'iconst_4'{escreverOpcode($a);} - | a = 'iconst_5'{escreverOpcode($a);} - | a = 'iload_0' {escreverOpcode($a);} - | a = 'iload_1' {escreverOpcode($a);} - | a = 'iload_2' {escreverOpcode($a);} - | a = 'iload_3' {escreverOpcode($a);} +load : a = 'iconst_m1'{escreverOpcode($a.text);} + | a = 'iconst_0' {escreverOpcode($a.text);} + | a = 'iconst_1' {escreverOpcode($a.text);} + | a = 'iconst_2' {escreverOpcode($a.text);} + | a = 'iconst_3'{escreverOpcode($a.text);} + | a = 'iconst_4'{escreverOpcode($a.text);} + | a = 'iconst_5'{escreverOpcode($a.text);} + | a = 'iload_0' {escreverOpcode($a.text);} + | a = 'iload_1' {escreverOpcode($a.text);} + | a = 'iload_2' {escreverOpcode($a.text);} + | a = 'iload_3' {escreverOpcode($a.text);} | a = 'iload' INTEIRO {escreverOpcode($a, $INTEIRO);} | a = 'ldc' INTEIRO {escreverOpcode($a, $INTEIRO);} | a = 'aload' INTEIRO {escreverOpcode($a, $INTEIRO);} - | a = 'aload_0' {escreverOpcode($a);} - | a = 'aload_1' {escreverOpcode($a);} - | a = 'aload_2'{escreverOpcode($a);} - | a = 'aload_3'{escreverOpcode($a);} + | a = 'aload_0' {escreverOpcode($a.text);} + | a = 'aload_1' {escreverOpcode($a.text);} + | a = 'aload_2'{escreverOpcode($a.text);} + | a = 'aload_3'{escreverOpcode($a.text);} ; store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} @@ -107,9 +105,9 @@ store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} | a = 'astore_3' {verificarAumentoMemoriaGlobal($a);} ; -logica : a = 'iand' {escreverOpcode($a);} - | a = 'ior' {escreverOpcode($a);} - | a = 'ixor' {escreverOpcode($a);} +logica : a = 'iand' {escreverOpcode($a.text);} + | a = 'ior' {escreverOpcode($a.text);} + | a = 'ixor' {escreverOpcode($a.text);} ; desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 96846b4..25c220c 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -61,6 +61,7 @@ declaracaoVariavel variavel.def = $ID; $ID.simbolo = variavel; escopoAtual.definir(variavel); + ((SimboloClasse)escopoAtual).getConstantPool().add(variavel); } ; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index cdc6632..1f7c6de 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -14,22 +14,71 @@ options { import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; import br.ufpb.iged.interpretador.symboltable.classes.Tipo; + import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; } @members { TabelaSimbolos tabelaSimbolos; SimboloClasse simboloClasse; - public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + BytecodeAssembler assembler; + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, + BytecodeAssembler assembler) { this(input); this.tabelaSimbolos = tabelaSimbolos; + this.assembler = assembler; } - public Tipo resolverTipo(String nomeTipo) { + private Tipo resolverTipo(String nomeTipo) { return (Tipo)simboloClasse.resolver(nomeTipo); } + private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) { + + assembler.escreverOpcode(operacao); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + + SimboloVariavel simboloVariavel = + (SimboloVariavel) simboloClasse.resolver(nomeCampo); + + if (!simboloClasse.getConstantPool().contains(simboloVariavel)) + + simboloClasse.getConstantPool().add(simboloVariavel); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + simboloClasse.getConstantPool().indexOf(simboloVariavel)); + + } + + private void chamarConstrutorDefault(String nomeClasse) { + + assembler.escreverOpcode("invokespecial"); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + } + } topdown @@ -45,7 +94,6 @@ entraNaClasse { simboloClasse = ((SimboloClasse)$nome.simbolo); if ( $sup!=null ) { - // look up superclass (if any) $sup.simbolo = $sup.escopo.resolver($sup.text); simboloClasse.superClasse = (SimboloClasse)$sup.simbolo; @@ -58,33 +106,32 @@ entraNaClasse } ; -declaracaoVariavel // global, parameter, or local variable +declaracaoVariavel : ^(FIELD_DECL ID tip =.) { $ID.simbolo.tipo = resolverTipo($tip.getText()); - //$ID.simbolo.tipo = $tip.tsimb; // set return type of variable - System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); + System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); } ; getfield : ^('getfield' classe = . . campo = . tipo = .) - { - System.out.println("Entrando no getfield.."); + { + acessarCampo("getfield", $classe.getText(), $campo.getText()); } ; putfield : ^('putfield' classe = . . campo = . tipo = .) { - System.out.println("Entrando no putfield.."); + acessarCampo("putfield", $classe.getText(), $campo.getText()); } ; invokespecial : ^('invokespecial' classe = . . metodo = . args = . tipo = .) { - System.out.println("Entrando no invokespecial.."); + chamarConstrutorDefault($classe.getText()); } ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 9c56f3f..0fe3fcc 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-03 23:57:13 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-04 22:53:50 package br.ufpb.iged.interpretador.parser; @@ -1597,8 +1597,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:8: '' { match(""); @@ -1620,8 +1620,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:7: 'I' { match('I'); @@ -1641,8 +1641,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:8: 'V' { match('V'); @@ -1662,10 +1662,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1684,7 +1684,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:9: 'null' { match("null"); @@ -1693,7 +1693,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:18: 'NULL' { match("NULL"); @@ -1721,10 +1721,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1733,7 +1733,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:11: '-' { match('-'); @@ -1743,7 +1743,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1798,8 +1798,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1811,7 +1811,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1861,8 +1861,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: '\\n' { match('\n'); @@ -1882,8 +1882,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 547c5da..75f2185 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-03 23:57:12 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-04 22:53:49 package br.ufpb.iged.interpretador.parser; @@ -127,13 +127,11 @@ public TreeAdaptor getTreeAdaptor() { - protected abstract void escreverOpcode(Token opc); + protected abstract void escreverOpcode(String nomeInstrucao); protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; protected abstract void definirLabel(Token id) throws LabelException; - protected abstract void acessarCampo(Token opc, List classe, String campo); - protected abstract void chamarMetodo(Token opc, List classe); @@ -144,7 +142,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:1: programa : ( comando )* ; public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -157,13 +155,13 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: ( comando )* loop1: do { int alt1=2; @@ -176,7 +174,7 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: comando { pushFollow(FOLLOW_comando_in_programa72); comando1=comando(); @@ -225,7 +223,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:1: comando : ( label instrucao | instrucao ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:1: comando : ( label instrucao | instrucao ) ; public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -242,13 +240,13 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); @@ -267,7 +265,7 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 79) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:12: label instrucao { pushFollow(FOLLOW_label_in_comando92); label2=label(); @@ -286,7 +284,7 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 79) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:30: instrucao { pushFollow(FOLLOW_instrucao_in_comando98); instrucao4=instrucao(); @@ -332,7 +330,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: label : a= ID ':' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:1: label : a= ID ':' ; public final AssemblerParser.label_return label() throws RecognitionException, LabelException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -347,8 +345,8 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST char_literal5_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: (a= ID ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: a= ID ':' { root_0 = (BytecodesAST)adaptor.nil(); @@ -400,7 +398,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -431,13 +429,13 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST NOVA_LINHA14_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? int alt3=11; switch ( input.LA(1) ) { case 16: @@ -543,7 +541,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:13: definicaoClasse { pushFollow(FOLLOW_definicaoClasse_in_instrucao132); definicaoClasse6=definicaoClasse(); @@ -555,7 +553,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:31: manipulacaoObjetos { pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao136); manipulacaoObjetos7=manipulacaoObjetos(); @@ -567,7 +565,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:52: aritmetica { pushFollow(FOLLOW_aritmetica_in_instrucao140); aritmetica8=aritmetica(); @@ -579,7 +577,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:65: load { pushFollow(FOLLOW_load_in_instrucao144); load9=load(); @@ -591,7 +589,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:72: store { pushFollow(FOLLOW_store_in_instrucao148); store10=store(); @@ -603,7 +601,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:80: desvio { pushFollow(FOLLOW_desvio_in_instrucao152); desvio11=desvio(); @@ -615,7 +613,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:89: logica { pushFollow(FOLLOW_logica_in_instrucao156); logica12=logica(); @@ -627,7 +625,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:21: 'nop' { string_literal13=(Token)match(input,76,FOLLOW_76_in_instrucao179); string_literal13_tree = @@ -639,7 +637,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:17: a= 'pop' { a=(Token)match(input,77,FOLLOW_77_in_instrucao201); a_tree = @@ -648,12 +646,12 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:17: a= 'pop2' { a=(Token)match(input,78,FOLLOW_78_in_instrucao225); a_tree = @@ -662,7 +660,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; @@ -708,7 +706,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -741,7 +739,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) int alt6=2; int LA6_0 = input.LA(1); @@ -760,7 +758,7 @@ else if ( (LA6_0==18) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { string_literal15=(Token)match(input,16,FOLLOW_16_in_definicaoClasse267); stream_16.add(string_literal15); @@ -774,7 +772,7 @@ else if ( (LA6_0==18) ) { stream_NOVA_LINHA.add(NOVA_LINHA17); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); @@ -783,7 +781,7 @@ else if ( (LA6_0==18) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:42: superClasse { pushFollow(FOLLOW_superClasse_in_definicaoClasse273); superClasse18=superClasse(); @@ -798,7 +796,7 @@ else if ( (LA6_0==18) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:55: ( membroClasse )+ int cnt5=0; loop5: do { @@ -812,7 +810,7 @@ else if ( (LA6_0==18) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:55: membroClasse { pushFollow(FOLLOW_membroClasse_in_definicaoClasse276); membroClasse19=membroClasse(); @@ -835,7 +833,7 @@ else if ( (LA6_0==18) ) { // AST REWRITE - // elements: superClasse, ID, 16, membroClasse + // elements: membroClasse, ID, 16, superClasse // token labels: // rule labels: retval // token list labels: @@ -845,9 +843,9 @@ else if ( (LA6_0==18) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 52:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 50:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -858,14 +856,14 @@ else if ( (LA6_0==18) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:36: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:36: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -895,7 +893,7 @@ else if ( (LA6_0==18) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:19: '.method' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:19: '.method' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); @@ -961,7 +959,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -978,8 +976,8 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:15: '.super' ID { string_literal24=(Token)match(input,19,FOLLOW_19_in_superClasse382); stream_19.add(string_literal24); @@ -1000,9 +998,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 56:27: -> ^( EXTENDS ID ) + // 54:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1052,7 +1050,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1071,8 +1069,8 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:16: '.field' ID tipo { string_literal26=(Token)match(input,17,FOLLOW_17_in_membroClasse401); stream_17.add(string_literal26); @@ -1100,9 +1098,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 58:33: -> ^( FIELD_DECL ID tipo ) + // 56:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1154,7 +1152,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1180,7 +1178,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ) int alt7=3; switch ( input.LA(1) ) { case 33: @@ -1208,7 +1206,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:22: a= 'getfield' b= campo tipo { a=(Token)match(input,33,FOLLOW_33_in_manipulacaoObjetos457); stream_33.add(a); @@ -1229,7 +1227,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo29.getTree()); // AST REWRITE - // elements: tipo, 33, b + // elements: b, 33, tipo // token labels: // rule labels: retval, b // token list labels: @@ -1240,9 +1238,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 62:52: -> ^( 'getfield' $b tipo ) + // 60:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1264,7 +1262,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:22: a= 'putfield' b= campo tipo { a=(Token)match(input,79,FOLLOW_79_in_manipulacaoObjetos503); stream_79.add(a); @@ -1285,7 +1283,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo30.getTree()); // AST REWRITE - // elements: tipo, 79, b + // elements: b, tipo, 79 // token labels: // rule labels: retval, b // token list labels: @@ -1296,9 +1294,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 63:52: -> ^( 'putfield' $b tipo ) + // 61:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1320,7 +1318,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:22: a= 'invokespecial' c= chamadaMetodo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:22: a= 'invokespecial' c= chamadaMetodo { a=(Token)match(input,65,FOLLOW_65_in_manipulacaoObjetos550); stream_65.add(a); @@ -1334,7 +1332,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(c.getTree()); // AST REWRITE - // elements: c, 65 + // elements: 65, c // token labels: // rule labels: retval, c // token list labels: @@ -1345,9 +1343,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 64:60: -> ^( 'invokespecial' $c) + // 62:60: -> ^( 'invokespecial' $c) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:63: ^( 'invokespecial' $c) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:63: ^( 'invokespecial' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1397,7 +1395,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1414,7 +1412,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST VOID32_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1442,7 +1440,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: INT { root_0 = (BytecodesAST)adaptor.nil(); @@ -1457,7 +1455,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); @@ -1472,7 +1470,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); @@ -1517,7 +1515,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1530,7 +1528,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { case 35: @@ -1578,7 +1576,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:14: a= 'iadd' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1590,12 +1588,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:14: a= 'isub' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1607,12 +1605,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:14: a= 'imul' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1624,12 +1622,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:14: a= 'idiv' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1641,12 +1639,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:14: a= 'irem' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1658,12 +1656,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:14: a= 'iinc' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1675,12 +1673,12 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:14: a= 'ineg' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1692,7 +1690,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; @@ -1727,7 +1725,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); public final AssemblerParser.load_return load() throws RecognitionException, LabelException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1746,7 +1744,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST INTEIRO36_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt10=18; switch ( input.LA(1) ) { case 43: @@ -1849,7 +1847,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iconst_m1' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1861,12 +1859,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'iconst_0' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1878,12 +1876,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iconst_1' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1895,12 +1893,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iconst_2' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1912,12 +1910,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'iconst_3' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1929,12 +1927,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'iconst_4' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1946,12 +1944,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'iconst_5' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1963,12 +1961,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'iload_0' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1980,12 +1978,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'iload_1' { root_0 = (BytecodesAST)adaptor.nil(); @@ -1997,12 +1995,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'iload_2' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2014,12 +2012,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:8: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'iload_3' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2031,12 +2029,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: a= 'iload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: a= 'iload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); @@ -2060,7 +2058,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: a= 'ldc' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:8: a= 'ldc' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); @@ -2084,7 +2082,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: a= 'aload' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: a= 'aload' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); @@ -2108,7 +2106,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: a= 'aload_0' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2120,12 +2118,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: a= 'aload_1' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2137,12 +2135,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: a= 'aload_2' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2154,12 +2152,12 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: a= 'aload_3' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2171,7 +2169,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; @@ -2206,7 +2204,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2223,7 +2221,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST INTEIRO38_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt11=10; switch ( input.LA(1) ) { case 69: @@ -2286,7 +2284,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= 'istore_0' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2303,7 +2301,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:9: a= 'istore_1' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2320,7 +2318,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: a= 'istore_2' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2337,7 +2335,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:9: a= 'istore_3' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2354,7 +2352,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: a= 'istore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: a= 'istore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); @@ -2378,7 +2376,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:9: a= 'astore' INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: a= 'astore' INTEIRO { root_0 = (BytecodesAST)adaptor.nil(); @@ -2402,7 +2400,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:9: a= 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: a= 'astore_0' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2419,7 +2417,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:9: a= 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:9: a= 'astore_1' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2436,7 +2434,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:9: a= 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:9: a= 'astore_2' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2453,7 +2451,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:9: a= 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:9: a= 'astore_3' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2500,7 +2498,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2513,7 +2511,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException BytecodesAST a_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt12=3; switch ( input.LA(1) ) { case 36: @@ -2541,7 +2539,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'iand' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2553,12 +2551,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'ior' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2570,12 +2568,12 @@ public final AssemblerParser.logica_return logica() throws RecognitionException adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'ixor' { root_0 = (BytecodesAST)adaptor.nil(); @@ -2587,7 +2585,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException adaptor.addChild(root_0, a_tree); - escreverOpcode(a); + escreverOpcode((a!=null?a.getText():null)); } break; @@ -2622,7 +2620,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2637,7 +2635,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST b_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt13=13; switch ( input.LA(1) ) { case 51: @@ -2715,7 +2713,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'ifeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2739,7 +2737,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'ifne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2763,7 +2761,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'iflt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2787,7 +2785,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'ifge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2811,7 +2809,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:10: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'ifgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2835,7 +2833,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:10: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'ifle' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2859,7 +2857,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:10: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:10: a= 'if_icmpeq' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2883,7 +2881,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:10: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:10: a= 'if_icmpne' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2907,7 +2905,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:10: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:10: a= 'if_icmplt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2931,7 +2929,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:10: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:10: a= 'if_icmpge' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2955,7 +2953,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:10: a= 'if_icmpgt' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -2979,7 +2977,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:10: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:10: a= 'if_icmple' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -3003,7 +3001,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:10: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'goto' b= ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -3061,7 +3059,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:1: chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] : (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:1: chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] : (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -3089,13 +3087,13 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:6: ( (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:8: (cls+= ID '/' )+ n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:6: ( (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (cls+= ID '/' )+ n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (cls+= ID '/' )+ int cnt14=0; loop14: do { @@ -3109,7 +3107,7 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:9: cls+= ID '/' { cls=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo1608); cls_tree = @@ -3201,7 +3199,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3223,13 +3221,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:8: (cls+= ID '/' )+ int cnt15=0; loop15: do { @@ -3249,7 +3247,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:9: cls+= ID '/' { cls=(Token)match(input,ID,FOLLOW_ID_in_campo1670); cls_tree = @@ -3321,7 +3319,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3340,8 +3338,8 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST ID44_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); @@ -3353,7 +3351,7 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio adaptor.addChild(root_0, char_literal41_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:15: ( ID '/' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:15: ( ID '/' )* loop16: do { int alt16=2; @@ -3372,7 +3370,7 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:16: ID '/' { ID42=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1699); ID42_tree = diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 19b70f3..a685f0e 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-03 23:57:13 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-04 22:53:50 package br.ufpb.iged.interpretador.parser; @@ -409,6 +409,7 @@ public final void declaracaoVariavel() throws RecognitionException { variavel.def = ID1; ID1.simbolo = variavel; escopoAtual.definir(variavel); + ((SimboloClasse)escopoAtual).getConstantPool().add(variavel); } } @@ -429,11 +430,11 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:13: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:15: '.class' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:13: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:15: '.class' { match(input,16,FOLLOW_16_in_saiDaClasse237); if (state.failed) return ; @@ -460,11 +461,11 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:1: getfield : 'getfield' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:1: getfield : 'getfield' ; public final void getfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:5: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:7: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:5: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:7: 'getfield' { match(input,33,FOLLOW_33_in_getfield277); if (state.failed) return ; @@ -490,11 +491,11 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:1: putfield : 'putfield' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:1: putfield : 'putfield' ; public final void putfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:5: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:7: 'putfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:5: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:7: 'putfield' { match(input,79,FOLLOW_79_in_putfield305); if (state.failed) return ; @@ -520,11 +521,11 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: invokespecial : 'invokespecial' ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:1: invokespecial : 'invokespecial' ; public final void invokespecial() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:5: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:7: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:5: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:7: 'invokespecial' { match(input,65,FOLLOW_65_in_invokespecial334); if (state.failed) return ; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 647d5bc..5a04bcf 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-03 23:57:13 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-04 22:53:50 package br.ufpb.iged.interpretador.parser; @@ -7,6 +7,8 @@ import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; import br.ufpb.iged.interpretador.symboltable.classes.Tipo; + import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import org.antlr.runtime.*; @@ -122,25 +124,72 @@ public Ref(TreeNodeStream input, RecognizerSharedState state) { TabelaSimbolos tabelaSimbolos; SimboloClasse simboloClasse; - public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + BytecodeAssembler assembler; + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, + BytecodeAssembler assembler) { this(input); this.tabelaSimbolos = tabelaSimbolos; + this.assembler = assembler; } - public Tipo resolverTipo(String nomeTipo) { + private Tipo resolverTipo(String nomeTipo) { return (Tipo)simboloClasse.resolver(nomeTipo); } + private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) { + + assembler.escreverOpcode(operacao); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + + SimboloVariavel simboloVariavel = + (SimboloVariavel) simboloClasse.resolver(nomeCampo); + + if (!simboloClasse.getConstantPool().contains(simboloVariavel)) + + simboloClasse.getConstantPool().add(simboloVariavel); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + simboloClasse.getConstantPool().indexOf(simboloVariavel)); + + } + + private void chamarConstrutorDefault(String nomeClasse) { + + assembler.escreverOpcode("invokespecial"); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + } + // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:35:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ) int alt1=5; switch ( input.LA(1) ) { case 16: @@ -179,7 +228,7 @@ public final void topdown() throws RecognitionException { switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:36:7: entraNaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:7: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown59); entraNaClasse(); @@ -190,7 +239,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:37:7: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:86:7: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown67); declaracaoVariavel(); @@ -201,7 +250,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:38:7: getfield + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:87:7: getfield { pushFollow(FOLLOW_getfield_in_topdown75); getfield(); @@ -212,7 +261,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:39:7: putfield + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:88:7: putfield { pushFollow(FOLLOW_putfield_in_topdown83); putfield(); @@ -223,7 +272,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:40:7: invokespecial + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:89:7: invokespecial { pushFollow(FOLLOW_invokespecial_in_topdown91); invokespecial(); @@ -251,21 +300,21 @@ public final void topdown() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:43:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:92:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { match(input,16,FOLLOW_16_in_entraNaClasse115); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse119); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:28: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:28: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -290,7 +339,7 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:44:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:29: ^( EXTENDS sup= ID ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse123); if (state.failed) return ; @@ -314,7 +363,6 @@ public final void entraNaClasse() throws RecognitionException { if ( state.backtracking==1 ) { simboloClasse = ((SimboloClasse)nome.simbolo); if ( sup!=null ) { - // look up superclass (if any) sup.simbolo = sup.escopo.resolver((sup!=null?sup.getText():null)); simboloClasse.superClasse = (SimboloClasse)sup.simbolo; @@ -344,19 +392,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:61:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:109:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:62:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:62:9: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:9: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel168); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel167); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel170); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel169); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -367,8 +415,7 @@ public final void declaracaoVariavel() throws RecognitionException { if ( state.backtracking==1 ) { ID1.simbolo.tipo = resolverTipo(tip.getText()); - //ID1.simbolo.tipo = tip.tsimb; // set return type of variable - System.out.println("linha "+ID1.getLine()+": set var type "+ID1.simbolo); + System.out.println("linha "+ID1.getLine()+": set var type "+ID1.simbolo); } } @@ -389,17 +436,17 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:70:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:71:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:71:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,33,FOLLOW_33_in_getfield209); if (state.failed) return ; + match(input,33,FOLLOW_33_in_getfield208); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -419,8 +466,8 @@ public final void getfield() throws RecognitionException { match(input, Token.UP, null); if (state.failed) return ; - if ( state.backtracking==1 ) { - System.out.println("Entrando no getfield.."); + if ( state.backtracking==1 ) { + acessarCampo("getfield", classe.getText(), campo.getText()); } } @@ -441,17 +488,17 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:77:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:78:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:78:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,79,FOLLOW_79_in_putfield259); if (state.failed) return ; + match(input,79,FOLLOW_79_in_putfield258); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -472,7 +519,7 @@ public final void putfield() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("Entrando no putfield.."); + acessarCampo("putfield", classe.getText(), campo.getText()); } } @@ -493,7 +540,7 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:1: invokespecial : ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:1: invokespecial : ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -501,10 +548,10 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:5: ( ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:7: ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:5: ( ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:7: ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) { - match(input,65,FOLLOW_65_in_invokespecial309); if (state.failed) return ; + match(input,65,FOLLOW_65_in_invokespecial308); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -529,7 +576,7 @@ public final void invokespecial() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("Entrando no invokespecial.."); + chamarConstrutorDefault(classe.getText()); } } @@ -561,10 +608,10 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_ID_in_entraNaClasse119 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse123 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse127 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel168 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel170 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); - public static final BitSet FOLLOW_33_in_getfield209 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_79_in_putfield259 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_65_in_invokespecial309 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel167 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel169 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); + public static final BitSet FOLLOW_33_in_getfield208 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_79_in_putfield258 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_65_in_invokespecial308 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 8db647e..5ee5b96 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -150,7 +150,7 @@ public static BytecodeAssembler carregarClasses() throws RecognitionException, L Def def = new Def(nos, tabelaSimbolos); def.downup(tree); nos.reset(); - Ref ref = new Ref(nos, tabelaSimbolos); + Ref ref = new Ref(nos, tabelaSimbolos, parser); ref.downup(tree); return parser; From d46ad3af9e22bb2c988c3747bb2382b59d7d1da7 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Thu, 5 Jul 2012 12:13:41 -0300 Subject: [PATCH 36/79] commit --- .../asm/BytecodeAssembler.class | Bin 6816 -> 6816 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4403 -> 4403 bytes .../asm/BytecodeAssembler.java | 6 +- .../iged/interpretador/gramaticas/Assembler.g | 164 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 82 +- .../interpretador/parser/Assembler.tokens | 173 +- .../interpretador/parser/AssemblerLexer.java | 875 +++--- .../interpretador/parser/AssemblerParser.java | 2761 +++++++++-------- .../ufpb/iged/interpretador/parser/Def.java | 83 +- .../ufpb/iged/interpretador/parser/Def.tokens | 173 +- .../ufpb/iged/interpretador/parser/Ref.java | 769 ++++- .../ufpb/iged/interpretador/parser/Ref.tokens | 173 +- 12 files changed, 3045 insertions(+), 2214 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 511f12d9bbd1e5b44182af5606b483e594df87a7..6ab468d93f1653623da725ad591d0e88d67d3a84 100644 GIT binary patch delta 44 zcmZ2ry1;Zpo&Y1`=6r!-Mj-WA@FOED2Ll5G_vD+xvzQqfR!&|hEWEi>M4Sx(E&2?> delta 44 zcmZ2ry1;Zpo&Y1u=6r!-Mj-WA@FOED8v_Fa=j5BhvzS>JR!&|hEWEi>M4Sx(E|Cnz diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 0642c4576e5822980408870c19c9f78e3541f17e..648b4328aeec65ac18e8307e2008192f0a260ab1 100644 GIT binary patch delta 377 zcmYky&q@MO6vy#%XGDjK(w$idwrlcVI?yxB&R`f9QlXpPLoHqP0F-*L{S1#@nsa@?Fz82Tl&oo zoG=ds=t3F+68cs`+dql}DMe3EyR3Ck(T7G=s(B>6y@v6M(YQRXaVk{!w;ONHc1IUN_Cn5snI h__Sa-Bl$&nW~q_mJ;LS|4-TZ&wC{KBxL$f3x8QnI5PIwbt2POcd1e`?mFvQytU^HuZovLrs zw*wb)a0eC$NN6U>Whs;Vq0Cq+B>yNMEI!FWS}Kw8jU!E(TT1`{ diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index 6b6b443..980195c 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -49,7 +49,7 @@ public BytecodeAssembler(TokenStream lexer, Definicao.Instrucao[] instrucoes) { } - protected void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException { + public void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException { String opcodeTxt = opc.getText(); @@ -95,7 +95,7 @@ else if (tamMemoriaGlobal < 3) } - protected void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException { + public void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException { Integer endereco = new Integer(op.getText()); @@ -148,7 +148,7 @@ public void escreverOperando(Token token) throws LabelException { } - protected void definirLabel(Token id) throws LabelException { + public void definirLabel(Token id) throws LabelException { LabelSymbol label = labels.get(id.getText()); diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index a62ec4d..4464868 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -9,6 +9,13 @@ tokens { MEMBRO_CLASSE; FIELD_DECL; EXTENDS; + ARITMETICA; + LOAD; + STORE; + LOGICA; + DESVIO; + LABEL; + PILHA; } @header{ @@ -25,11 +32,11 @@ tokens { @members { - protected abstract void escreverOpcode(String nomeInstrucao); - protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - protected abstract void definirLabel(Token id) throws LabelException; + public abstract void escreverOpcode(String nomeInstrucao); + public abstract void escreverOpcode(Token opc, Token op) throws LabelException; + public abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + public abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + public abstract void definirLabel(Token id) throws LabelException; } @@ -38,13 +45,20 @@ programa : comando* comando : (label instrucao | instrucao); -label : a = ID ':' {definirLabel($a);}; - -instrucao: (definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica - | 'nop' - | a = 'pop' {escreverOpcode($a.text);} - | a = 'pop2'{escreverOpcode($a.text);} - )? NOVA_LINHA; +label : a = ID ':' -> ^(LABEL $a); + +instrucao: ( definicaoClasse + | manipulacaoObjetos + | aritmetica + | load + | loadint + | store + | storeint + | desvio + | logica + | pilha + | 'nop' + )? NOVA_LINHA; definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) @@ -64,66 +78,90 @@ manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) tipo : INT | VOID | tipoRef ; -aritmetica : a = 'iadd' {escreverOpcode($a.text);} - | a = 'isub' {escreverOpcode($a.text);} - | a = 'imul' {escreverOpcode($a.text);} - | a = 'idiv' {escreverOpcode($a.text);} - | a = 'irem' {escreverOpcode($a.text);} - | a = 'iinc' {escreverOpcode($a.text);} - | a = 'ineg' {escreverOpcode($a.text);} +aritmetica : ( a = 'iadd' + | a = 'isub' + | a = 'imul' + | a = 'idiv' + | a = 'irem' + | a = 'iinc' + | a = 'ineg' + ) + -> ^(ARITMETICA $a) ; -load : a = 'iconst_m1'{escreverOpcode($a.text);} - | a = 'iconst_0' {escreverOpcode($a.text);} - | a = 'iconst_1' {escreverOpcode($a.text);} - | a = 'iconst_2' {escreverOpcode($a.text);} - | a = 'iconst_3'{escreverOpcode($a.text);} - | a = 'iconst_4'{escreverOpcode($a.text);} - | a = 'iconst_5'{escreverOpcode($a.text);} - | a = 'iload_0' {escreverOpcode($a.text);} - | a = 'iload_1' {escreverOpcode($a.text);} - | a = 'iload_2' {escreverOpcode($a.text);} - | a = 'iload_3' {escreverOpcode($a.text);} - | a = 'iload' INTEIRO {escreverOpcode($a, $INTEIRO);} - | a = 'ldc' INTEIRO {escreverOpcode($a, $INTEIRO);} - | a = 'aload' INTEIRO {escreverOpcode($a, $INTEIRO);} - | a = 'aload_0' {escreverOpcode($a.text);} - | a = 'aload_1' {escreverOpcode($a.text);} - | a = 'aload_2'{escreverOpcode($a.text);} - | a = 'aload_3'{escreverOpcode($a.text);} +load : ( a = 'iconst_m1' + | a = 'iconst_0' + | a = 'iconst_1' + | a = 'iconst_2' + | a = 'iconst_3' + | a = 'iconst_4' + | a = 'iconst_5' + | a = 'iload_0' + | a = 'iload_1' + | a = 'iload_2' + | a = 'iload_3' + | a = 'aload_0' + | a = 'aload_1' + | a = 'aload_2' + | a = 'aload_3' + ) + -> ^(LOAD $a) ; -store : a = 'istore_0' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_1' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_2' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore_3' {verificarAumentoMemoriaGlobal($a);} - | a = 'istore' INTEIRO {verificarAumentoMemoriaGlobal($a, $INTEIRO);} - | a = 'astore' INTEIRO {verificarAumentoMemoriaGlobal($a, $INTEIRO);} - | a = 'astore_0' {verificarAumentoMemoriaGlobal($a);} - | a = 'astore_1' {verificarAumentoMemoriaGlobal($a);} - | a = 'astore_2' {verificarAumentoMemoriaGlobal($a);} - | a = 'astore_3' {verificarAumentoMemoriaGlobal($a);} +loadint : ( a = 'iload' b = INTEIRO + | a = 'ldc' b = INTEIRO + | a = 'aload' b = INTEIRO + ) + -> ^(LOAD $a $b) + ; + +store : ( a = 'istore_0' + | a = 'istore_1' + | a = 'istore_2' + | a = 'istore_3' + | a = 'astore_0' + | a = 'astore_1' + | a = 'astore_2' + | a = 'astore_3' + ) + -> ^(STORE $a) ; + +storeint : ( a = 'istore' b = INTEIRO + | a = 'astore' b = INTEIRO + ) + -> ^(STORE $a $b) + ; -logica : a = 'iand' {escreverOpcode($a.text);} - | a = 'ior' {escreverOpcode($a.text);} - | a = 'ixor' {escreverOpcode($a.text);} +logica : ( a = 'iand' + | a = 'ior' + | a = 'ixor' + ) + -> ^(LOGICA $a) ; -desvio : a = 'ifeq' b = ID {escreverOpcode($a, $b);} - | a = 'ifne' b = ID {escreverOpcode($a, $b);} - | a = 'iflt' b = ID {escreverOpcode($a, $b);} - | a = 'ifge' b = ID {escreverOpcode($a, $b);} - | a = 'ifgt' b = ID {escreverOpcode($a, $b);} - | a = 'ifle' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpeq' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpne' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmplt' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpge' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmpgt' b = ID {escreverOpcode($a, $b);} - | a = 'if_icmple' b = ID {escreverOpcode($a, $b);} - | a = 'goto' b = ID {escreverOpcode($a, $b);} +desvio : ( a = 'ifeq' b = ID + | a = 'ifne' b = ID + | a = 'iflt' b = ID + | a = 'ifge' b = ID + | a = 'ifgt' b = ID + | a = 'ifle' b = ID + | a = 'if_icmpeq' b = ID + | a = 'if_icmpne' b = ID + | a = 'if_icmplt' b = ID + | a = 'if_icmpge' b = ID + | a = 'if_icmpgt' b = ID + | a = 'if_icmple' b = ID + | a = 'goto' b = ID + ) + -> ^(DESVIO $a $b) ; + +pilha : ( a = 'pop' + | a = 'pop2' + ) + -> ^(PILHA $a) + ; chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] @init { diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 1f7c6de..a7e28fe 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -82,11 +82,20 @@ options { } topdown - : entraNaClasse - | declaracaoVariavel - | getfield - | putfield - | invokespecial + : entraNaClasse + | declaracaoVariavel + | getfield + | putfield + | invokespecial + | aritmetica + | load + | loadint + | store + | storeint + | desvio + | logica + | pilha + | label ; entraNaClasse @@ -134,4 +143,67 @@ invokespecial chamarConstrutorDefault($classe.getText()); } ; + +aritmetica + : ^(ARITMETICA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +load + : ^(LOAD operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +loadint + : ^(LOAD operacao = . operando = .) + { + assembler.escreverOpcode($operacao.token, $operando.token); + } + ; + +store + : ^(STORE operacao = .) + { + assembler.verificarAumentoMemoriaGlobal($operacao.token); + } + ; + +storeint + : ^(STORE operacao = . operando = .) + { + assembler.verificarAumentoMemoriaGlobal($operacao.token, $operando.token); + } + ; + +desvio + : ^(DESVIO operacao = . operando = .) + { + assembler.escreverOpcode($operacao.token, $operando.token); + } + ; + +logica + : ^(LOGICA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +pilha + : ^(PILHA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +label + : ^(LABEL operacao = .) + { + assembler.definirLabel($operacao.token); + } + ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index ad197b0..5a92c95 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,10 +1,3 @@ -T__15=15 -T__16=16 -T__17=17 -T__18=18 -T__19=19 -T__20=20 -T__21=21 T__22=22 T__23=23 T__24=24 @@ -63,79 +56,93 @@ T__76=76 T__77=77 T__78=78 T__79=79 -EXTENDS=4 -FIELD_DECL=5 -ID=6 -INIT=7 -INT=8 -INTEIRO=9 -MEMBRO_CLASSE=10 -NOVA_LINHA=11 -NULL=12 -VOID=13 -WS=14 -'()'=15 -'.class'=16 -'.field'=17 -'.method'=18 -'.super'=19 -'/'=20 -':'=21 -'L'=22 -'aload'=23 -'aload_0'=24 -'aload_1'=25 -'aload_2'=26 -'aload_3'=27 -'astore'=28 -'astore_0'=29 -'astore_1'=30 -'astore_2'=31 -'astore_3'=32 -'getfield'=33 -'goto'=34 -'iadd'=35 -'iand'=36 -'iconst_0'=37 -'iconst_1'=38 -'iconst_2'=39 -'iconst_3'=40 -'iconst_4'=41 -'iconst_5'=42 -'iconst_m1'=43 -'idiv'=44 -'if_icmpeq'=45 -'if_icmpge'=46 -'if_icmpgt'=47 -'if_icmple'=48 -'if_icmplt'=49 -'if_icmpne'=50 -'ifeq'=51 -'ifge'=52 -'ifgt'=53 -'ifle'=54 -'iflt'=55 -'ifne'=56 -'iinc'=57 -'iload'=58 -'iload_0'=59 -'iload_1'=60 -'iload_2'=61 -'iload_3'=62 -'imul'=63 -'ineg'=64 -'invokespecial'=65 -'ior'=66 -'irem'=67 -'istore'=68 -'istore_0'=69 -'istore_1'=70 -'istore_2'=71 -'istore_3'=72 -'isub'=73 -'ixor'=74 -'ldc'=75 -'nop'=76 -'pop'=77 -'pop2'=78 -'putfield'=79 +T__80=80 +T__81=81 +T__82=82 +T__83=83 +T__84=84 +T__85=85 +T__86=86 +ARITMETICA=4 +DESVIO=5 +EXTENDS=6 +FIELD_DECL=7 +ID=8 +INIT=9 +INT=10 +INTEIRO=11 +LABEL=12 +LOAD=13 +LOGICA=14 +MEMBRO_CLASSE=15 +NOVA_LINHA=16 +NULL=17 +PILHA=18 +STORE=19 +VOID=20 +WS=21 +'()'=22 +'.class'=23 +'.field'=24 +'.method'=25 +'.super'=26 +'/'=27 +':'=28 +'L'=29 +'aload'=30 +'aload_0'=31 +'aload_1'=32 +'aload_2'=33 +'aload_3'=34 +'astore'=35 +'astore_0'=36 +'astore_1'=37 +'astore_2'=38 +'astore_3'=39 +'getfield'=40 +'goto'=41 +'iadd'=42 +'iand'=43 +'iconst_0'=44 +'iconst_1'=45 +'iconst_2'=46 +'iconst_3'=47 +'iconst_4'=48 +'iconst_5'=49 +'iconst_m1'=50 +'idiv'=51 +'if_icmpeq'=52 +'if_icmpge'=53 +'if_icmpgt'=54 +'if_icmple'=55 +'if_icmplt'=56 +'if_icmpne'=57 +'ifeq'=58 +'ifge'=59 +'ifgt'=60 +'ifle'=61 +'iflt'=62 +'ifne'=63 +'iinc'=64 +'iload'=65 +'iload_0'=66 +'iload_1'=67 +'iload_2'=68 +'iload_3'=69 +'imul'=70 +'ineg'=71 +'invokespecial'=72 +'ior'=73 +'irem'=74 +'istore'=75 +'istore_0'=76 +'istore_1'=77 +'istore_2'=78 +'istore_3'=79 +'isub'=80 +'ixor'=81 +'ldc'=82 +'nop'=83 +'pop'=84 +'pop2'=85 +'putfield'=86 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 0fe3fcc..0e96707 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-04 22:53:50 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-05 12:07:15 package br.ufpb.iged.interpretador.parser; @@ -11,13 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__19=19; - public static final int T__20=20; - public static final int T__21=21; public static final int T__22=22; public static final int T__23=23; public static final int T__24=24; @@ -76,17 +69,31 @@ public class AssemblerLexer extends Lexer { public static final int T__77=77; public static final int T__78=78; public static final int T__79=79; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int INTEIRO=9; - public static final int MEMBRO_CLASSE=10; - public static final int NOVA_LINHA=11; - public static final int NULL=12; - public static final int VOID=13; - public static final int WS=14; + public static final int T__80=80; + public static final int T__81=81; + public static final int T__82=82; + public static final int T__83=83; + public static final int T__84=84; + public static final int T__85=85; + public static final int T__86=86; + public static final int ARITMETICA=4; + public static final int DESVIO=5; + public static final int EXTENDS=6; + public static final int FIELD_DECL=7; + public static final int ID=8; + public static final int INIT=9; + public static final int INT=10; + public static final int INTEIRO=11; + public static final int LABEL=12; + public static final int LOAD=13; + public static final int LOGICA=14; + public static final int MEMBRO_CLASSE=15; + public static final int NOVA_LINHA=16; + public static final int NULL=17; + public static final int PILHA=18; + public static final int STORE=19; + public static final int VOID=20; + public static final int WS=21; // delegates // delegators @@ -103,10 +110,10 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__15" - public final void mT__15() throws RecognitionException { + // $ANTLR start "T__22" + public final void mT__22() throws RecognitionException { try { - int _type = T__15; + int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '()' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '()' @@ -124,12 +131,12 @@ public final void mT__15() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__15" + // $ANTLR end "T__22" - // $ANTLR start "T__16" - public final void mT__16() throws RecognitionException { + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { try { - int _type = T__16; + int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '.class' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '.class' @@ -147,12 +154,12 @@ public final void mT__16() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__16" + // $ANTLR end "T__23" - // $ANTLR start "T__17" - public final void mT__17() throws RecognitionException { + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { try { - int _type = T__17; + int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.field' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.field' @@ -170,12 +177,12 @@ public final void mT__17() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__17" + // $ANTLR end "T__24" - // $ANTLR start "T__18" - public final void mT__18() throws RecognitionException { + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { try { - int _type = T__18; + int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.method' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.method' @@ -193,12 +200,12 @@ public final void mT__18() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__18" + // $ANTLR end "T__25" - // $ANTLR start "T__19" - public final void mT__19() throws RecognitionException { + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { try { - int _type = T__19; + int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.super' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.super' @@ -216,12 +223,12 @@ public final void mT__19() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__19" + // $ANTLR end "T__26" - // $ANTLR start "T__20" - public final void mT__20() throws RecognitionException { + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { try { - int _type = T__20; + int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '/' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '/' @@ -237,12 +244,12 @@ public final void mT__20() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__20" + // $ANTLR end "T__27" - // $ANTLR start "T__21" - public final void mT__21() throws RecognitionException { + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { try { - int _type = T__21; + int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( ':' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: ':' @@ -258,12 +265,12 @@ public final void mT__21() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__21" + // $ANTLR end "T__28" - // $ANTLR start "T__22" - public final void mT__22() throws RecognitionException { + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { try { - int _type = T__22; + int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'L' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'L' @@ -279,12 +286,12 @@ public final void mT__22() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__22" + // $ANTLR end "T__29" - // $ANTLR start "T__23" - public final void mT__23() throws RecognitionException { + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { try { - int _type = T__23; + int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload' @@ -302,12 +309,12 @@ public final void mT__23() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__23" + // $ANTLR end "T__30" - // $ANTLR start "T__24" - public final void mT__24() throws RecognitionException { + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { try { - int _type = T__24; + int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload_0' @@ -325,12 +332,12 @@ public final void mT__24() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__24" + // $ANTLR end "T__31" - // $ANTLR start "T__25" - public final void mT__25() throws RecognitionException { + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { try { - int _type = T__25; + int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_1' @@ -348,12 +355,12 @@ public final void mT__25() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__25" + // $ANTLR end "T__32" - // $ANTLR start "T__26" - public final void mT__26() throws RecognitionException { + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { try { - int _type = T__26; + int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_2' @@ -371,12 +378,12 @@ public final void mT__26() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__26" + // $ANTLR end "T__33" - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { try { - int _type = T__27; + int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_3' @@ -394,12 +401,12 @@ public final void mT__27() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__27" + // $ANTLR end "T__34" - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { try { - int _type = T__28; + int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'astore' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'astore' @@ -417,12 +424,12 @@ public final void mT__28() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__28" + // $ANTLR end "T__35" - // $ANTLR start "T__29" - public final void mT__29() throws RecognitionException { + // $ANTLR start "T__36" + public final void mT__36() throws RecognitionException { try { - int _type = T__29; + int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore_0' @@ -440,12 +447,12 @@ public final void mT__29() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__29" + // $ANTLR end "T__36" - // $ANTLR start "T__30" - public final void mT__30() throws RecognitionException { + // $ANTLR start "T__37" + public final void mT__37() throws RecognitionException { try { - int _type = T__30; + int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_1' @@ -463,12 +470,12 @@ public final void mT__30() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__30" + // $ANTLR end "T__37" - // $ANTLR start "T__31" - public final void mT__31() throws RecognitionException { + // $ANTLR start "T__38" + public final void mT__38() throws RecognitionException { try { - int _type = T__31; + int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_2' @@ -486,12 +493,12 @@ public final void mT__31() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__31" + // $ANTLR end "T__38" - // $ANTLR start "T__32" - public final void mT__32() throws RecognitionException { + // $ANTLR start "T__39" + public final void mT__39() throws RecognitionException { try { - int _type = T__32; + int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_3' @@ -509,12 +516,12 @@ public final void mT__32() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__32" + // $ANTLR end "T__39" - // $ANTLR start "T__33" - public final void mT__33() throws RecognitionException { + // $ANTLR start "T__40" + public final void mT__40() throws RecognitionException { try { - int _type = T__33; + int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'getfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'getfield' @@ -532,12 +539,12 @@ public final void mT__33() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__33" + // $ANTLR end "T__40" - // $ANTLR start "T__34" - public final void mT__34() throws RecognitionException { + // $ANTLR start "T__41" + public final void mT__41() throws RecognitionException { try { - int _type = T__34; + int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'goto' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'goto' @@ -555,12 +562,12 @@ public final void mT__34() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__34" + // $ANTLR end "T__41" - // $ANTLR start "T__35" - public final void mT__35() throws RecognitionException { + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { try { - int _type = T__35; + int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'iadd' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'iadd' @@ -578,12 +585,12 @@ public final void mT__35() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__35" + // $ANTLR end "T__42" - // $ANTLR start "T__36" - public final void mT__36() throws RecognitionException { + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { try { - int _type = T__36; + int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'iand' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'iand' @@ -601,12 +608,12 @@ public final void mT__36() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__36" + // $ANTLR end "T__43" - // $ANTLR start "T__37" - public final void mT__37() throws RecognitionException { + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { try { - int _type = T__37; + int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iconst_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iconst_0' @@ -624,12 +631,12 @@ public final void mT__37() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__37" + // $ANTLR end "T__44" - // $ANTLR start "T__38" - public final void mT__38() throws RecognitionException { + // $ANTLR start "T__45" + public final void mT__45() throws RecognitionException { try { - int _type = T__38; + int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iconst_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iconst_1' @@ -647,12 +654,12 @@ public final void mT__38() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__38" + // $ANTLR end "T__45" - // $ANTLR start "T__39" - public final void mT__39() throws RecognitionException { + // $ANTLR start "T__46" + public final void mT__46() throws RecognitionException { try { - int _type = T__39; + int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_2' @@ -670,12 +677,12 @@ public final void mT__39() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__39" + // $ANTLR end "T__46" - // $ANTLR start "T__40" - public final void mT__40() throws RecognitionException { + // $ANTLR start "T__47" + public final void mT__47() throws RecognitionException { try { - int _type = T__40; + int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_3' @@ -693,12 +700,12 @@ public final void mT__40() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__40" + // $ANTLR end "T__47" - // $ANTLR start "T__41" - public final void mT__41() throws RecognitionException { + // $ANTLR start "T__48" + public final void mT__48() throws RecognitionException { try { - int _type = T__41; + int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_4' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_4' @@ -716,12 +723,12 @@ public final void mT__41() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__41" + // $ANTLR end "T__48" - // $ANTLR start "T__42" - public final void mT__42() throws RecognitionException { + // $ANTLR start "T__49" + public final void mT__49() throws RecognitionException { try { - int _type = T__42; + int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_5' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_5' @@ -739,12 +746,12 @@ public final void mT__42() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__42" + // $ANTLR end "T__49" - // $ANTLR start "T__43" - public final void mT__43() throws RecognitionException { + // $ANTLR start "T__50" + public final void mT__50() throws RecognitionException { try { - int _type = T__43; + int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_m1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_m1' @@ -762,12 +769,12 @@ public final void mT__43() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__43" + // $ANTLR end "T__50" - // $ANTLR start "T__44" - public final void mT__44() throws RecognitionException { + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { try { - int _type = T__44; + int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'idiv' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'idiv' @@ -785,12 +792,12 @@ public final void mT__44() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__44" + // $ANTLR end "T__51" - // $ANTLR start "T__45" - public final void mT__45() throws RecognitionException { + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { try { - int _type = T__45; + int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'if_icmpeq' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'if_icmpeq' @@ -808,12 +815,12 @@ public final void mT__45() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__45" + // $ANTLR end "T__52" - // $ANTLR start "T__46" - public final void mT__46() throws RecognitionException { + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { try { - int _type = T__46; + int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'if_icmpge' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'if_icmpge' @@ -831,12 +838,12 @@ public final void mT__46() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__46" + // $ANTLR end "T__53" - // $ANTLR start "T__47" - public final void mT__47() throws RecognitionException { + // $ANTLR start "T__54" + public final void mT__54() throws RecognitionException { try { - int _type = T__47; + int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpgt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpgt' @@ -854,12 +861,12 @@ public final void mT__47() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__47" + // $ANTLR end "T__54" - // $ANTLR start "T__48" - public final void mT__48() throws RecognitionException { + // $ANTLR start "T__55" + public final void mT__55() throws RecognitionException { try { - int _type = T__48; + int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmple' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmple' @@ -877,12 +884,12 @@ public final void mT__48() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__48" + // $ANTLR end "T__55" - // $ANTLR start "T__49" - public final void mT__49() throws RecognitionException { + // $ANTLR start "T__56" + public final void mT__56() throws RecognitionException { try { - int _type = T__49; + int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmplt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmplt' @@ -900,12 +907,12 @@ public final void mT__49() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__49" + // $ANTLR end "T__56" - // $ANTLR start "T__50" - public final void mT__50() throws RecognitionException { + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { try { - int _type = T__50; + int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmpne' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmpne' @@ -923,12 +930,12 @@ public final void mT__50() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__50" + // $ANTLR end "T__57" - // $ANTLR start "T__51" - public final void mT__51() throws RecognitionException { + // $ANTLR start "T__58" + public final void mT__58() throws RecognitionException { try { - int _type = T__51; + int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'ifeq' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'ifeq' @@ -946,12 +953,12 @@ public final void mT__51() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__51" + // $ANTLR end "T__58" - // $ANTLR start "T__52" - public final void mT__52() throws RecognitionException { + // $ANTLR start "T__59" + public final void mT__59() throws RecognitionException { try { - int _type = T__52; + int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'ifge' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'ifge' @@ -969,12 +976,12 @@ public final void mT__52() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__52" + // $ANTLR end "T__59" - // $ANTLR start "T__53" - public final void mT__53() throws RecognitionException { + // $ANTLR start "T__60" + public final void mT__60() throws RecognitionException { try { - int _type = T__53; + int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifgt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifgt' @@ -992,12 +999,12 @@ public final void mT__53() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__53" + // $ANTLR end "T__60" - // $ANTLR start "T__54" - public final void mT__54() throws RecognitionException { + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { try { - int _type = T__54; + int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifle' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifle' @@ -1015,12 +1022,12 @@ public final void mT__54() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__54" + // $ANTLR end "T__61" - // $ANTLR start "T__55" - public final void mT__55() throws RecognitionException { + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { try { - int _type = T__55; + int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'iflt' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'iflt' @@ -1038,12 +1045,12 @@ public final void mT__55() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__55" + // $ANTLR end "T__62" - // $ANTLR start "T__56" - public final void mT__56() throws RecognitionException { + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { try { - int _type = T__56; + int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifne' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifne' @@ -1061,12 +1068,12 @@ public final void mT__56() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__56" + // $ANTLR end "T__63" - // $ANTLR start "T__57" - public final void mT__57() throws RecognitionException { + // $ANTLR start "T__64" + public final void mT__64() throws RecognitionException { try { - int _type = T__57; + int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iinc' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iinc' @@ -1084,12 +1091,12 @@ public final void mT__57() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__57" + // $ANTLR end "T__64" - // $ANTLR start "T__58" - public final void mT__58() throws RecognitionException { + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { try { - int _type = T__58; + int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iload' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iload' @@ -1107,12 +1114,12 @@ public final void mT__58() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__58" + // $ANTLR end "T__65" - // $ANTLR start "T__59" - public final void mT__59() throws RecognitionException { + // $ANTLR start "T__66" + public final void mT__66() throws RecognitionException { try { - int _type = T__59; + int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iload_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iload_0' @@ -1130,12 +1137,12 @@ public final void mT__59() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__59" + // $ANTLR end "T__66" - // $ANTLR start "T__60" - public final void mT__60() throws RecognitionException { + // $ANTLR start "T__67" + public final void mT__67() throws RecognitionException { try { - int _type = T__60; + int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload_1' @@ -1153,12 +1160,12 @@ public final void mT__60() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__60" + // $ANTLR end "T__67" - // $ANTLR start "T__61" - public final void mT__61() throws RecognitionException { + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { try { - int _type = T__61; + int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_2' @@ -1176,12 +1183,12 @@ public final void mT__61() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__61" + // $ANTLR end "T__68" - // $ANTLR start "T__62" - public final void mT__62() throws RecognitionException { + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { try { - int _type = T__62; + int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_3' @@ -1199,12 +1206,12 @@ public final void mT__62() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__62" + // $ANTLR end "T__69" - // $ANTLR start "T__63" - public final void mT__63() throws RecognitionException { + // $ANTLR start "T__70" + public final void mT__70() throws RecognitionException { try { - int _type = T__63; + int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'imul' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'imul' @@ -1222,12 +1229,12 @@ public final void mT__63() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__63" + // $ANTLR end "T__70" - // $ANTLR start "T__64" - public final void mT__64() throws RecognitionException { + // $ANTLR start "T__71" + public final void mT__71() throws RecognitionException { try { - int _type = T__64; + int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ineg' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ineg' @@ -1245,12 +1252,12 @@ public final void mT__64() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__64" + // $ANTLR end "T__71" - // $ANTLR start "T__65" - public final void mT__65() throws RecognitionException { + // $ANTLR start "T__72" + public final void mT__72() throws RecognitionException { try { - int _type = T__65; + int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'invokespecial' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'invokespecial' @@ -1268,12 +1275,12 @@ public final void mT__65() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__65" + // $ANTLR end "T__72" - // $ANTLR start "T__66" - public final void mT__66() throws RecognitionException { + // $ANTLR start "T__73" + public final void mT__73() throws RecognitionException { try { - int _type = T__66; + int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ior' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ior' @@ -1291,12 +1298,12 @@ public final void mT__66() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__66" + // $ANTLR end "T__73" - // $ANTLR start "T__67" - public final void mT__67() throws RecognitionException { + // $ANTLR start "T__74" + public final void mT__74() throws RecognitionException { try { - int _type = T__67; + int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'irem' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'irem' @@ -1314,12 +1321,12 @@ public final void mT__67() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__67" + // $ANTLR end "T__74" - // $ANTLR start "T__68" - public final void mT__68() throws RecognitionException { + // $ANTLR start "T__75" + public final void mT__75() throws RecognitionException { try { - int _type = T__68; + int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'istore' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'istore' @@ -1337,12 +1344,12 @@ public final void mT__68() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__68" + // $ANTLR end "T__75" - // $ANTLR start "T__69" - public final void mT__69() throws RecognitionException { + // $ANTLR start "T__76" + public final void mT__76() throws RecognitionException { try { - int _type = T__69; + int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'istore_0' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'istore_0' @@ -1360,12 +1367,12 @@ public final void mT__69() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__69" + // $ANTLR end "T__76" - // $ANTLR start "T__70" - public final void mT__70() throws RecognitionException { + // $ANTLR start "T__77" + public final void mT__77() throws RecognitionException { try { - int _type = T__70; + int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore_1' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore_1' @@ -1383,12 +1390,12 @@ public final void mT__70() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__70" + // $ANTLR end "T__77" - // $ANTLR start "T__71" - public final void mT__71() throws RecognitionException { + // $ANTLR start "T__78" + public final void mT__78() throws RecognitionException { try { - int _type = T__71; + int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_2' @@ -1406,12 +1413,12 @@ public final void mT__71() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__71" + // $ANTLR end "T__78" - // $ANTLR start "T__72" - public final void mT__72() throws RecognitionException { + // $ANTLR start "T__79" + public final void mT__79() throws RecognitionException { try { - int _type = T__72; + int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_3' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_3' @@ -1429,12 +1436,12 @@ public final void mT__72() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__72" + // $ANTLR end "T__79" - // $ANTLR start "T__73" - public final void mT__73() throws RecognitionException { + // $ANTLR start "T__80" + public final void mT__80() throws RecognitionException { try { - int _type = T__73; + int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'isub' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'isub' @@ -1452,12 +1459,12 @@ public final void mT__73() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__73" + // $ANTLR end "T__80" - // $ANTLR start "T__74" - public final void mT__74() throws RecognitionException { + // $ANTLR start "T__81" + public final void mT__81() throws RecognitionException { try { - int _type = T__74; + int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ixor' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ixor' @@ -1475,12 +1482,12 @@ public final void mT__74() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__74" + // $ANTLR end "T__81" - // $ANTLR start "T__75" - public final void mT__75() throws RecognitionException { + // $ANTLR start "T__82" + public final void mT__82() throws RecognitionException { try { - int _type = T__75; + int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'ldc' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'ldc' @@ -1498,12 +1505,12 @@ public final void mT__75() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__75" + // $ANTLR end "T__82" - // $ANTLR start "T__76" - public final void mT__76() throws RecognitionException { + // $ANTLR start "T__83" + public final void mT__83() throws RecognitionException { try { - int _type = T__76; + int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'nop' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'nop' @@ -1521,12 +1528,12 @@ public final void mT__76() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__76" + // $ANTLR end "T__83" - // $ANTLR start "T__77" - public final void mT__77() throws RecognitionException { + // $ANTLR start "T__84" + public final void mT__84() throws RecognitionException { try { - int _type = T__77; + int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'pop' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'pop' @@ -1544,12 +1551,12 @@ public final void mT__77() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__77" + // $ANTLR end "T__84" - // $ANTLR start "T__78" - public final void mT__78() throws RecognitionException { + // $ANTLR start "T__85" + public final void mT__85() throws RecognitionException { try { - int _type = T__78; + int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'pop2' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'pop2' @@ -1567,12 +1574,12 @@ public final void mT__78() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__78" + // $ANTLR end "T__85" - // $ANTLR start "T__79" - public final void mT__79() throws RecognitionException { + // $ANTLR start "T__86" + public final void mT__86() throws RecognitionException { try { - int _type = T__79; + int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'putfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'putfield' @@ -1590,15 +1597,15 @@ public final void mT__79() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__79" + // $ANTLR end "T__86" // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:8: '' { match(""); @@ -1620,8 +1627,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:7: 'I' { match('I'); @@ -1641,8 +1648,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:8: 'V' { match('V'); @@ -1662,10 +1669,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1684,7 +1691,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:9: 'null' { match("null"); @@ -1693,7 +1700,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:18: 'NULL' { match("NULL"); @@ -1721,10 +1728,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1733,7 +1740,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: '-' { match('-'); @@ -1743,7 +1750,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1798,8 +1805,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1811,7 +1818,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1861,8 +1868,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:14: '\\n' { match('\n'); @@ -1882,8 +1889,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -1909,526 +1916,526 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) int alt5=73; alt5 = dfa5.predict(input); switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__15 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__22 { - mT__15(); + mT__22(); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__16 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__23 { - mT__16(); + mT__23(); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__17 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__24 { - mT__17(); + mT__24(); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__18 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__25 { - mT__18(); + mT__25(); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__19 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__26 { - mT__19(); + mT__26(); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__20 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__27 { - mT__20(); + mT__27(); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__21 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__28 { - mT__21(); + mT__28(); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__22 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__29 { - mT__22(); + mT__29(); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__23 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__30 { - mT__23(); + mT__30(); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__24 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__31 { - mT__24(); + mT__31(); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__25 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__32 { - mT__25(); + mT__32(); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__26 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__33 { - mT__26(); + mT__33(); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__27 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__34 { - mT__27(); + mT__34(); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__28 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__35 { - mT__28(); + mT__35(); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__29 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__36 { - mT__29(); + mT__36(); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__30 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__37 { - mT__30(); + mT__37(); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__31 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__38 { - mT__31(); + mT__38(); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__32 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__39 { - mT__32(); + mT__39(); } break; case 19 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__33 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__40 { - mT__33(); + mT__40(); } break; case 20 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__34 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__41 { - mT__34(); + mT__41(); } break; case 21 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__35 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__42 { - mT__35(); + mT__42(); } break; case 22 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__36 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__43 { - mT__36(); + mT__43(); } break; case 23 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__37 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__44 { - mT__37(); + mT__44(); } break; case 24 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__38 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__45 { - mT__38(); + mT__45(); } break; case 25 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__39 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__46 { - mT__39(); + mT__46(); } break; case 26 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__40 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__47 { - mT__40(); + mT__47(); } break; case 27 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__41 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__48 { - mT__41(); + mT__48(); } break; case 28 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__42 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__49 { - mT__42(); + mT__49(); } break; case 29 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__43 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__50 { - mT__43(); + mT__50(); } break; case 30 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__44 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__51 { - mT__44(); + mT__51(); } break; case 31 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__45 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__52 { - mT__45(); + mT__52(); } break; case 32 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__46 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__53 { - mT__46(); + mT__53(); } break; case 33 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__47 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__54 { - mT__47(); + mT__54(); } break; case 34 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__48 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__55 { - mT__48(); + mT__55(); } break; case 35 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__49 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__56 { - mT__49(); + mT__56(); } break; case 36 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__50 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__57 { - mT__50(); + mT__57(); } break; case 37 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__51 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__58 { - mT__51(); + mT__58(); } break; case 38 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__52 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__59 { - mT__52(); + mT__59(); } break; case 39 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__53 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__60 { - mT__53(); + mT__60(); } break; case 40 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__54 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__61 { - mT__54(); + mT__61(); } break; case 41 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__55 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__62 { - mT__55(); + mT__62(); } break; case 42 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__56 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__63 { - mT__56(); + mT__63(); } break; case 43 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__57 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__64 { - mT__57(); + mT__64(); } break; case 44 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__58 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__65 { - mT__58(); + mT__65(); } break; case 45 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__59 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__66 { - mT__59(); + mT__66(); } break; case 46 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__60 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__67 { - mT__60(); + mT__67(); } break; case 47 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__61 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__68 { - mT__61(); + mT__68(); } break; case 48 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__62 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__69 { - mT__62(); + mT__69(); } break; case 49 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__63 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__70 { - mT__63(); + mT__70(); } break; case 50 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__64 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__71 { - mT__64(); + mT__71(); } break; case 51 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__65 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__72 { - mT__65(); + mT__72(); } break; case 52 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__66 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__73 { - mT__66(); + mT__73(); } break; case 53 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__67 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__74 { - mT__67(); + mT__74(); } break; case 54 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__68 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__75 { - mT__68(); + mT__75(); } break; case 55 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__69 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__76 { - mT__69(); + mT__76(); } break; case 56 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__70 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__77 { - mT__70(); + mT__77(); } break; case 57 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__71 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__78 { - mT__71(); + mT__78(); } break; case 58 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__72 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__79 { - mT__72(); + mT__79(); } break; case 59 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__73 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__80 { - mT__73(); + mT__80(); } break; case 60 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__74 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__81 { - mT__74(); + mT__81(); } break; case 61 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__75 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__82 { - mT__75(); + mT__82(); } break; case 62 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__76 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__83 { - mT__76(); + mT__83(); } break; case 63 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__77 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__84 { - mT__77(); + mT__84(); } break; case 64 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__78 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__85 { - mT__78(); + mT__85(); } break; case 65 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__79 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__86 { - mT__79(); + mT__86(); } @@ -2798,7 +2805,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 75f2185..8d72491 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-04 22:53:49 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-05 12:07:14 package br.ufpb.iged.interpretador.parser; @@ -18,17 +18,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__19=19; - public static final int T__20=20; - public static final int T__21=21; public static final int T__22=22; public static final int T__23=23; public static final int T__24=24; @@ -87,17 +80,31 @@ public abstract class AssemblerParser extends Parser { public static final int T__77=77; public static final int T__78=78; public static final int T__79=79; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int INTEIRO=9; - public static final int MEMBRO_CLASSE=10; - public static final int NOVA_LINHA=11; - public static final int NULL=12; - public static final int VOID=13; - public static final int WS=14; + public static final int T__80=80; + public static final int T__81=81; + public static final int T__82=82; + public static final int T__83=83; + public static final int T__84=84; + public static final int T__85=85; + public static final int T__86=86; + public static final int ARITMETICA=4; + public static final int DESVIO=5; + public static final int EXTENDS=6; + public static final int FIELD_DECL=7; + public static final int ID=8; + public static final int INIT=9; + public static final int INT=10; + public static final int INTEIRO=11; + public static final int LABEL=12; + public static final int LOAD=13; + public static final int LOGICA=14; + public static final int MEMBRO_CLASSE=15; + public static final int NOVA_LINHA=16; + public static final int NULL=17; + public static final int PILHA=18; + public static final int STORE=19; + public static final int VOID=20; + public static final int WS=21; // delegates public Parser[] getDelegates() { @@ -127,11 +134,11 @@ public TreeAdaptor getTreeAdaptor() { - protected abstract void escreverOpcode(String nomeInstrucao); - protected abstract void escreverOpcode(Token opc, Token op) throws LabelException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; - protected abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - protected abstract void definirLabel(Token id) throws LabelException; + public abstract void escreverOpcode(String nomeInstrucao); + public abstract void escreverOpcode(Token opc, Token op) throws LabelException; + public abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + public abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + public abstract void definirLabel(Token id) throws LabelException; @@ -142,8 +149,8 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:1: programa : ( comando )* ; - public final AssemblerParser.programa_return programa() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: programa : ( comando )* ; + public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -155,28 +162,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:10: ( ( comando )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( comando )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( comando )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==16||LA1_0==18||(LA1_0 >= 23 && LA1_0 <= 79)) ) { + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==23||LA1_0==25||(LA1_0 >= 30 && LA1_0 <= 86)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: comando { - pushFollow(FOLLOW_comando_in_programa72); + pushFollow(FOLLOW_comando_in_programa107); comando1=comando(); state._fsp--; @@ -223,8 +230,8 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:1: comando : ( label instrucao | instrucao ) ; - public final AssemblerParser.comando_return comando() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: comando : ( label instrucao | instrucao ) ; + public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -240,20 +247,20 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: ( ( label instrucao | instrucao ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:11: ( label instrucao | instrucao ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:11: ( label instrucao | instrucao ) int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==ID) ) { alt2=1; } - else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 79)) ) { + else if ( (LA2_0==NOVA_LINHA||LA2_0==23||LA2_0==25||(LA2_0 >= 30 && LA2_0 <= 86)) ) { alt2=2; } else { @@ -265,16 +272,16 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 79) } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: label instrucao { - pushFollow(FOLLOW_label_in_comando92); + pushFollow(FOLLOW_label_in_comando127); label2=label(); state._fsp--; adaptor.addChild(root_0, label2.getTree()); - pushFollow(FOLLOW_instrucao_in_comando94); + pushFollow(FOLLOW_instrucao_in_comando129); instrucao3=instrucao(); state._fsp--; @@ -284,9 +291,9 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==16||LA2_0==18||(LA2_0 >= 23 && LA2_0 <= 79) } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:30: instrucao { - pushFollow(FOLLOW_instrucao_in_comando98); + pushFollow(FOLLOW_instrucao_in_comando133); instrucao4=instrucao(); state._fsp--; @@ -330,8 +337,8 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:1: label : a= ID ':' ; - public final AssemblerParser.label_return label() throws RecognitionException, LabelException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: label : a= ID ':' -> ^( LABEL $a) ; + public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -343,29 +350,51 @@ public final AssemblerParser.label_return label() throws RecognitionException, L BytecodesAST a_tree=null; BytecodesAST char_literal5_tree=null; + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: (a= ID ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: a= ID ':' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,ID,FOLLOW_ID_in_label155); + stream_ID.add(a); - a=(Token)match(input,ID,FOLLOW_ID_in_label120); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + char_literal5=(Token)match(input,28,FOLLOW_28_in_label157); + stream_28.add(char_literal5); - char_literal5=(Token)match(input,21,FOLLOW_21_in_label122); - char_literal5_tree = - (BytecodesAST)adaptor.create(char_literal5) - ; - adaptor.addChild(root_0, char_literal5_tree); + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 48:20: -> ^( LABEL $a) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:23: ^( LABEL $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(LABEL, "LABEL") + , root_1); + + adaptor.addChild(root_1, stream_a.nextNode()); + + adaptor.addChild(root_0, root_1); + } + + } - definirLabel(a); + retval.tree = root_0; } @@ -398,17 +427,16 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ; - public final AssemblerParser.instrucao_return instrucao() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NOVA_LINHA ; + public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - Token a=null; - Token string_literal13=null; - Token NOVA_LINHA14=null; + Token string_literal16=null; + Token NOVA_LINHA17=null; AssemblerParser.definicaoClasse_return definicaoClasse6 =null; AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos7 =null; @@ -417,133 +445,142 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce AssemblerParser.load_return load9 =null; - AssemblerParser.store_return store10 =null; + AssemblerParser.loadint_return loadint10 =null; - AssemblerParser.desvio_return desvio11 =null; + AssemblerParser.store_return store11 =null; - AssemblerParser.logica_return logica12 =null; + AssemblerParser.storeint_return storeint12 =null; + AssemblerParser.desvio_return desvio13 =null; - BytecodesAST a_tree=null; - BytecodesAST string_literal13_tree=null; - BytecodesAST NOVA_LINHA14_tree=null; + AssemblerParser.logica_return logica14 =null; + + AssemblerParser.pilha_return pilha15 =null; + + + BytecodesAST string_literal16_tree=null; + BytecodesAST NOVA_LINHA17_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NOVA_LINHA ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NOVA_LINHA { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | store | desvio | logica | 'nop' |a= 'pop' |a= 'pop2' )? - int alt3=11; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? + int alt3=12; switch ( input.LA(1) ) { - case 16: - case 18: + case 23: + case 25: { alt3=1; } break; - case 33: - case 65: - case 79: + case 40: + case 72: + case 86: { alt3=2; } break; - case 35: - case 44: - case 57: - case 63: + case 42: + case 51: case 64: - case 67: - case 73: + case 70: + case 71: + case 74: + case 80: { alt3=3; } break; - case 23: - case 24: - case 25: - case 26: - case 27: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 58: - case 59: - case 60: - case 61: - case 62: - case 75: - { - alt3=4; - } - break; - case 28: - case 29: - case 30: case 31: case 32: - case 68: - case 69: - case 70: - case 71: - case 72: - { - alt3=5; - } - break; + case 33: case 34: + case 44: case 45: case 46: case 47: case 48: case 49: case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: + case 66: + case 67: + case 68: + case 69: { - alt3=6; + alt3=4; + } + break; + case 30: + case 65: + case 82: + { + alt3=5; } break; case 36: - case 66: - case 74: + case 37: + case 38: + case 39: + case 76: + case 77: + case 78: + case 79: + { + alt3=6; + } + break; + case 35: + case 75: { alt3=7; } break; - case 76: + case 41: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: { alt3=8; } break; - case 77: + case 43: + case 73: + case 81: { alt3=9; } break; - case 78: + case 84: + case 85: { alt3=10; } break; + case 83: + { + alt3=11; + } + break; } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:13: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:17: definicaoClasse { - pushFollow(FOLLOW_definicaoClasse_in_instrucao132); + pushFollow(FOLLOW_definicaoClasse_in_instrucao178); definicaoClasse6=definicaoClasse(); state._fsp--; @@ -553,9 +590,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:31: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:17: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao136); + pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao197); manipulacaoObjetos7=manipulacaoObjetos(); state._fsp--; @@ -565,9 +602,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:52: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:17: aritmetica { - pushFollow(FOLLOW_aritmetica_in_instrucao140); + pushFollow(FOLLOW_aritmetica_in_instrucao216); aritmetica8=aritmetica(); state._fsp--; @@ -577,9 +614,9 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:65: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:17: load { - pushFollow(FOLLOW_load_in_instrucao144); + pushFollow(FOLLOW_load_in_instrucao235); load9=load(); state._fsp--; @@ -589,78 +626,86 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:72: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:17: loadint { - pushFollow(FOLLOW_store_in_instrucao148); - store10=store(); + pushFollow(FOLLOW_loadint_in_instrucao253); + loadint10=loadint(); state._fsp--; - adaptor.addChild(root_0, store10.getTree()); + adaptor.addChild(root_0, loadint10.getTree()); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:80: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:17: store { - pushFollow(FOLLOW_desvio_in_instrucao152); - desvio11=desvio(); + pushFollow(FOLLOW_store_in_instrucao272); + store11=store(); state._fsp--; - adaptor.addChild(root_0, desvio11.getTree()); + adaptor.addChild(root_0, store11.getTree()); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:89: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:17: storeint { - pushFollow(FOLLOW_logica_in_instrucao156); - logica12=logica(); + pushFollow(FOLLOW_storeint_in_instrucao290); + storeint12=storeint(); state._fsp--; - adaptor.addChild(root_0, logica12.getTree()); + adaptor.addChild(root_0, storeint12.getTree()); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:21: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:17: desvio { - string_literal13=(Token)match(input,76,FOLLOW_76_in_instrucao179); - string_literal13_tree = - (BytecodesAST)adaptor.create(string_literal13) - ; - adaptor.addChild(root_0, string_literal13_tree); + pushFollow(FOLLOW_desvio_in_instrucao309); + desvio13=desvio(); + state._fsp--; + + adaptor.addChild(root_0, desvio13.getTree()); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:17: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: logica { - a=(Token)match(input,77,FOLLOW_77_in_instrucao201); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + pushFollow(FOLLOW_logica_in_instrucao328); + logica14=logica(); + state._fsp--; - escreverOpcode((a!=null?a.getText():null)); + adaptor.addChild(root_0, logica14.getTree()); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:17: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: pilha { - a=(Token)match(input,78,FOLLOW_78_in_instrucao225); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + pushFollow(FOLLOW_pilha_in_instrucao346); + pilha15=pilha(); + + state._fsp--; + + adaptor.addChild(root_0, pilha15.getTree()); + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: 'nop' + { + string_literal16=(Token)match(input,83,FOLLOW_83_in_instrucao365); + string_literal16_tree = + (BytecodesAST)adaptor.create(string_literal16) + ; + adaptor.addChild(root_0, string_literal16_tree); - escreverOpcode((a!=null?a.getText():null)); } break; @@ -668,11 +713,11 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } - NOVA_LINHA14=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao245); - NOVA_LINHA14_tree = - (BytecodesAST)adaptor.create(NOVA_LINHA14) + NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao381); + NOVA_LINHA17_tree = + (BytecodesAST)adaptor.create(NOVA_LINHA17) ; - adaptor.addChild(root_0, NOVA_LINHA14_tree); + adaptor.addChild(root_0, NOVA_LINHA17_tree); } @@ -706,7 +751,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -714,39 +759,39 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST root_0 = null; - Token string_literal15=null; - Token ID16=null; - Token NOVA_LINHA17=null; - Token string_literal20=null; - Token INIT21=null; - Token string_literal22=null; - Token VOID23=null; - AssemblerParser.superClasse_return superClasse18 =null; - - AssemblerParser.membroClasse_return membroClasse19 =null; - - - BytecodesAST string_literal15_tree=null; - BytecodesAST ID16_tree=null; - BytecodesAST NOVA_LINHA17_tree=null; - BytecodesAST string_literal20_tree=null; - BytecodesAST INIT21_tree=null; - BytecodesAST string_literal22_tree=null; - BytecodesAST VOID23_tree=null; + Token string_literal18=null; + Token ID19=null; + Token NOVA_LINHA20=null; + Token string_literal23=null; + Token INIT24=null; + Token string_literal25=null; + Token VOID26=null; + AssemblerParser.superClasse_return superClasse21 =null; + + AssemblerParser.membroClasse_return membroClasse22 =null; + + + BytecodesAST string_literal18_tree=null; + BytecodesAST ID19_tree=null; + BytecodesAST NOVA_LINHA20_tree=null; + BytecodesAST string_literal23_tree=null; + BytecodesAST INIT24_tree=null; + BytecodesAST string_literal25_tree=null; + BytecodesAST VOID26_tree=null; RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_16=new RewriteRuleTokenStream(adaptor,"token 16"); + RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==16) ) { + if ( (LA6_0==23) ) { alt6=1; } - else if ( (LA6_0==18) ) { + else if ( (LA6_0==25) ) { alt6=2; } else { @@ -758,37 +803,37 @@ else if ( (LA6_0==18) ) { } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ { - string_literal15=(Token)match(input,16,FOLLOW_16_in_definicaoClasse267); - stream_16.add(string_literal15); + string_literal18=(Token)match(input,23,FOLLOW_23_in_definicaoClasse403); + stream_23.add(string_literal18); - ID16=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse269); - stream_ID.add(ID16); + ID19=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse405); + stream_ID.add(ID19); - NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse271); - stream_NOVA_LINHA.add(NOVA_LINHA17); + NOVA_LINHA20=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse407); + stream_NOVA_LINHA.add(NOVA_LINHA20); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:42: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:42: ( superClasse )? int alt4=2; int LA4_0 = input.LA(1); - if ( (LA4_0==19) ) { + if ( (LA4_0==26) ) { alt4=1; } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:42: superClasse { - pushFollow(FOLLOW_superClasse_in_definicaoClasse273); - superClasse18=superClasse(); + pushFollow(FOLLOW_superClasse_in_definicaoClasse409); + superClasse21=superClasse(); state._fsp--; - stream_superClasse.add(superClasse18.getTree()); + stream_superClasse.add(superClasse21.getTree()); } break; @@ -796,28 +841,28 @@ else if ( (LA6_0==18) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:55: ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:55: ( membroClasse )+ int cnt5=0; loop5: do { int alt5=2; int LA5_0 = input.LA(1); - if ( (LA5_0==17) ) { + if ( (LA5_0==24) ) { alt5=1; } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:55: membroClasse { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse276); - membroClasse19=membroClasse(); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse412); + membroClasse22=membroClasse(); state._fsp--; - stream_membroClasse.add(membroClasse19.getTree()); + stream_membroClasse.add(membroClasse22.getTree()); } break; @@ -833,7 +878,7 @@ else if ( (LA6_0==18) ) { // AST REWRITE - // elements: membroClasse, ID, 16, superClasse + // elements: membroClasse, 23, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -843,27 +888,27 @@ else if ( (LA6_0==18) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 50:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 64:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_16.nextNode() + stream_23.nextNode() , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:36: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:36: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -893,37 +938,37 @@ else if ( (LA6_0==18) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:19: '.method' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:19: '.method' INIT '()' VOID { root_0 = (BytecodesAST)adaptor.nil(); - string_literal20=(Token)match(input,18,FOLLOW_18_in_definicaoClasse335); - string_literal20_tree = - (BytecodesAST)adaptor.create(string_literal20) + string_literal23=(Token)match(input,25,FOLLOW_25_in_definicaoClasse471); + string_literal23_tree = + (BytecodesAST)adaptor.create(string_literal23) ; - adaptor.addChild(root_0, string_literal20_tree); + adaptor.addChild(root_0, string_literal23_tree); - INIT21=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse337); - INIT21_tree = - (BytecodesAST)adaptor.create(INIT21) + INIT24=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse473); + INIT24_tree = + (BytecodesAST)adaptor.create(INIT24) ; - adaptor.addChild(root_0, INIT21_tree); + adaptor.addChild(root_0, INIT24_tree); - string_literal22=(Token)match(input,15,FOLLOW_15_in_definicaoClasse339); - string_literal22_tree = - (BytecodesAST)adaptor.create(string_literal22) + string_literal25=(Token)match(input,22,FOLLOW_22_in_definicaoClasse475); + string_literal25_tree = + (BytecodesAST)adaptor.create(string_literal25) ; - adaptor.addChild(root_0, string_literal22_tree); + adaptor.addChild(root_0, string_literal25_tree); - VOID23=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse341); - VOID23_tree = - (BytecodesAST)adaptor.create(VOID23) + VOID26=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse477); + VOID26_tree = + (BytecodesAST)adaptor.create(VOID26) ; - adaptor.addChild(root_0, VOID23_tree); + adaptor.addChild(root_0, VOID26_tree); } @@ -959,7 +1004,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -967,24 +1012,24 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST root_0 = null; - Token string_literal24=null; - Token ID25=null; + Token string_literal27=null; + Token ID28=null; - BytecodesAST string_literal24_tree=null; - BytecodesAST ID25_tree=null; - RewriteRuleTokenStream stream_19=new RewriteRuleTokenStream(adaptor,"token 19"); + BytecodesAST string_literal27_tree=null; + BytecodesAST ID28_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:15: '.super' ID { - string_literal24=(Token)match(input,19,FOLLOW_19_in_superClasse382); - stream_19.add(string_literal24); + string_literal27=(Token)match(input,26,FOLLOW_26_in_superClasse518); + stream_26.add(string_literal27); - ID25=(Token)match(input,ID,FOLLOW_ID_in_superClasse384); - stream_ID.add(ID25); + ID28=(Token)match(input,ID,FOLLOW_ID_in_superClasse520); + stream_ID.add(ID28); // AST REWRITE @@ -998,9 +1043,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 54:27: -> ^( EXTENDS ID ) + // 68:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1050,7 +1095,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1058,37 +1103,37 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST root_0 = null; - Token string_literal26=null; - Token ID27=null; - AssemblerParser.tipo_return tipo28 =null; + Token string_literal29=null; + Token ID30=null; + AssemblerParser.tipo_return tipo31 =null; - BytecodesAST string_literal26_tree=null; - BytecodesAST ID27_tree=null; - RewriteRuleTokenStream stream_17=new RewriteRuleTokenStream(adaptor,"token 17"); + BytecodesAST string_literal29_tree=null; + BytecodesAST ID30_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_24=new RewriteRuleTokenStream(adaptor,"token 24"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:16: '.field' ID tipo { - string_literal26=(Token)match(input,17,FOLLOW_17_in_membroClasse401); - stream_17.add(string_literal26); + string_literal29=(Token)match(input,24,FOLLOW_24_in_membroClasse537); + stream_24.add(string_literal29); - ID27=(Token)match(input,ID,FOLLOW_ID_in_membroClasse403); - stream_ID.add(ID27); + ID30=(Token)match(input,ID,FOLLOW_ID_in_membroClasse539); + stream_ID.add(ID30); - pushFollow(FOLLOW_tipo_in_membroClasse405); - tipo28=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse541); + tipo31=tipo(); state._fsp--; - stream_tipo.add(tipo28.getTree()); + stream_tipo.add(tipo31.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1098,9 +1143,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 56:33: -> ^( FIELD_DECL ID tipo ) + // 70:33: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:36: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1152,7 +1197,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1165,33 +1210,33 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro AssemblerParser.chamadaMetodo_return c =null; - AssemblerParser.tipo_return tipo29 =null; + AssemblerParser.tipo_return tipo32 =null; - AssemblerParser.tipo_return tipo30 =null; + AssemblerParser.tipo_return tipo33 =null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); - RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); - RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); + RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); + RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ) int alt7=3; switch ( input.LA(1) ) { - case 33: + case 40: { alt7=1; } break; - case 79: + case 86: { alt7=2; } break; - case 65: + case 72: { alt7=3; } @@ -1206,28 +1251,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,33,FOLLOW_33_in_manipulacaoObjetos457); - stream_33.add(a); + a=(Token)match(input,40,FOLLOW_40_in_manipulacaoObjetos593); + stream_40.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos463); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos599); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos465); - tipo29=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos601); + tipo32=tipo(); state._fsp--; - stream_tipo.add(tipo29.getTree()); + stream_tipo.add(tipo32.getTree()); // AST REWRITE - // elements: b, 33, tipo + // elements: b, 40, tipo // token labels: // rule labels: retval, b // token list labels: @@ -1238,13 +1283,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 60:52: -> ^( 'getfield' $b tipo ) + // 74:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_33.nextNode() + stream_40.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1262,28 +1307,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,79,FOLLOW_79_in_manipulacaoObjetos503); - stream_79.add(a); + a=(Token)match(input,86,FOLLOW_86_in_manipulacaoObjetos639); + stream_86.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos509); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos645); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos511); - tipo30=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos647); + tipo33=tipo(); state._fsp--; - stream_tipo.add(tipo30.getTree()); + stream_tipo.add(tipo33.getTree()); // AST REWRITE - // elements: b, tipo, 79 + // elements: b, tipo, 86 // token labels: // rule labels: retval, b // token list labels: @@ -1294,13 +1339,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 61:52: -> ^( 'putfield' $b tipo ) + // 75:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_79.nextNode() + stream_86.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1318,13 +1363,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:22: a= 'invokespecial' c= chamadaMetodo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:22: a= 'invokespecial' c= chamadaMetodo { - a=(Token)match(input,65,FOLLOW_65_in_manipulacaoObjetos550); - stream_65.add(a); + a=(Token)match(input,72,FOLLOW_72_in_manipulacaoObjetos686); + stream_72.add(a); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos556); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos692); c=chamadaMetodo(); state._fsp--; @@ -1332,7 +1377,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(c.getTree()); // AST REWRITE - // elements: 65, c + // elements: c, 72 // token labels: // rule labels: retval, c // token list labels: @@ -1343,13 +1388,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 62:60: -> ^( 'invokespecial' $c) + // 76:60: -> ^( 'invokespecial' $c) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:63: ^( 'invokespecial' $c) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:63: ^( 'invokespecial' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_65.nextNode() + stream_72.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -1395,7 +1440,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1403,16 +1448,16 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT31=null; - Token VOID32=null; - AssemblerParser.tipoRef_return tipoRef33 =null; + Token INT34=null; + Token VOID35=null; + AssemblerParser.tipoRef_return tipoRef36 =null; - BytecodesAST INT31_tree=null; - BytecodesAST VOID32_tree=null; + BytecodesAST INT34_tree=null; + BytecodesAST VOID35_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1425,7 +1470,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { alt8=2; } break; - case 22: + case 29: { alt8=3; } @@ -1440,47 +1485,47 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT31=(Token)match(input,INT,FOLLOW_INT_in_tipo595); - INT31_tree = - (BytecodesAST)adaptor.create(INT31) + INT34=(Token)match(input,INT,FOLLOW_INT_in_tipo731); + INT34_tree = + (BytecodesAST)adaptor.create(INT34) ; - adaptor.addChild(root_0, INT31_tree); + adaptor.addChild(root_0, INT34_tree); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID32=(Token)match(input,VOID,FOLLOW_VOID_in_tipo599); - VOID32_tree = - (BytecodesAST)adaptor.create(VOID32) + VOID35=(Token)match(input,VOID,FOLLOW_VOID_in_tipo735); + VOID35_tree = + (BytecodesAST)adaptor.create(VOID35) ; - adaptor.addChild(root_0, VOID32_tree); + adaptor.addChild(root_0, VOID35_tree); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo603); - tipoRef33=tipoRef(); + pushFollow(FOLLOW_tipoRef_in_tipo739); + tipoRef36=tipoRef(); state._fsp--; - adaptor.addChild(root_0, tipoRef33.getTree()); + adaptor.addChild(root_0, tipoRef36.getTree()); } break; @@ -1515,7 +1560,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1526,42 +1571,52 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); + RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); + RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); + RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); + RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); + RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); + RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:12: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { - case 35: + case 42: { alt9=1; } break; - case 73: + case 80: { alt9=2; } break; - case 63: + case 70: { alt9=3; } break; - case 44: + case 51: { alt9=4; } break; - case 67: + case 74: { alt9=5; } break; - case 57: + case 64: { alt9=6; } break; - case 64: + case 71: { alt9=7; } @@ -1576,126 +1631,105 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:14: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:19: a= 'iadd' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,35,FOLLOW_35_in_aritmetica616); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + a=(Token)match(input,42,FOLLOW_42_in_aritmetica757); + stream_42.add(a); - escreverOpcode((a!=null?a.getText():null)); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:14: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:19: a= 'isub' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,73,FOLLOW_73_in_aritmetica637); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,80,FOLLOW_80_in_aritmetica781); + stream_80.add(a); - escreverOpcode((a!=null?a.getText():null)); - } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:14: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:19: a= 'imul' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,63,FOLLOW_63_in_aritmetica658); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + a=(Token)match(input,70,FOLLOW_70_in_aritmetica805); + stream_70.add(a); - escreverOpcode((a!=null?a.getText():null)); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:14: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:19: a= 'idiv' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,44,FOLLOW_44_in_aritmetica679); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,51,FOLLOW_51_in_aritmetica829); + stream_51.add(a); - escreverOpcode((a!=null?a.getText():null)); - } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:14: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:19: a= 'irem' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica853); + stream_74.add(a); - a=(Token)match(input,67,FOLLOW_67_in_aritmetica700); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode((a!=null?a.getText():null)); - } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:14: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:19: a= 'iinc' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,57,FOLLOW_57_in_aritmetica721); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,64,FOLLOW_64_in_aritmetica877); + stream_64.add(a); - escreverOpcode((a!=null?a.getText():null)); - } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:14: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:19: a= 'ineg' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,71,FOLLOW_71_in_aritmetica901); + stream_71.add(a); - a=(Token)match(input,64,FOLLOW_64_in_aritmetica742); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + break; + } - escreverOpcode((a!=null?a.getText():null)); - } - break; + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 89:14: -> ^( ARITMETICA $a) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:17: ^( ARITMETICA $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(ARITMETICA, "ARITMETICA") + , root_1); + + adaptor.addChild(root_1, stream_a.nextNode()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; } + retval.stop = input.LT(-1); @@ -1725,8 +1759,8 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ); - public final AssemblerParser.load_return load() throws RecognitionException, LabelException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1734,109 +1768,106 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab BytecodesAST root_0 = null; Token a=null; - Token INTEIRO34=null; - Token INTEIRO35=null; - Token INTEIRO36=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO34_tree=null; - BytecodesAST INTEIRO35_tree=null; - BytecodesAST INTEIRO36_tree=null; + RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); + RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); + RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); + RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); + RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); + RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); + RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); + RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); + RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); + RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); + RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); + RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:6: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'iload' INTEIRO |a= 'ldc' INTEIRO |a= 'aload' INTEIRO |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt10=18; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt10=15; switch ( input.LA(1) ) { - case 43: + case 50: { alt10=1; } break; - case 37: + case 44: { alt10=2; } break; - case 38: + case 45: { alt10=3; } break; - case 39: + case 46: { alt10=4; } break; - case 40: + case 47: { alt10=5; } break; - case 41: + case 48: { alt10=6; } break; - case 42: + case 49: { alt10=7; } break; - case 59: + case 66: { alt10=8; } break; - case 60: + case 67: { alt10=9; } break; - case 61: + case 68: { alt10=10; } break; - case 62: + case 69: { alt10=11; } break; - case 58: + case 31: { alt10=12; } break; - case 75: + case 32: { alt10=13; } break; - case 23: + case 33: { alt10=14; } break; - case 24: + case 34: { alt10=15; } break; - case 25: - { - alt10=16; - } - break; - case 26: - { - alt10=17; - } - break; - case 27: - { - alt10=18; - } - break; default: NoViableAltException nvae = new NoViableAltException("", 10, 0, input); @@ -1847,334 +1878,334 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:13: a= 'iconst_m1' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,50,FOLLOW_50_in_load979); + stream_50.add(a); - a=(Token)match(input,43,FOLLOW_43_in_load779); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode((a!=null?a.getText():null)); - } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:13: a= 'iconst_0' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,44,FOLLOW_44_in_load997); + stream_44.add(a); - a=(Token)match(input,37,FOLLOW_37_in_load793); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode((a!=null?a.getText():null)); - } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:13: a= 'iconst_1' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,38,FOLLOW_38_in_load808); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + a=(Token)match(input,45,FOLLOW_45_in_load1015); + stream_45.add(a); - escreverOpcode((a!=null?a.getText():null)); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:13: a= 'iconst_2' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,39,FOLLOW_39_in_load823); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + a=(Token)match(input,46,FOLLOW_46_in_load1033); + stream_46.add(a); - escreverOpcode((a!=null?a.getText():null)); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:13: a= 'iconst_3' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,40,FOLLOW_40_in_load838); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,47,FOLLOW_47_in_load1052); + stream_47.add(a); - escreverOpcode((a!=null?a.getText():null)); - } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:13: a= 'iconst_4' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,41,FOLLOW_41_in_load852); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,48,FOLLOW_48_in_load1070); + stream_48.add(a); - escreverOpcode((a!=null?a.getText():null)); - } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:13: a= 'iconst_5' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,42,FOLLOW_42_in_load866); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,49,FOLLOW_49_in_load1088); + stream_49.add(a); - escreverOpcode((a!=null?a.getText():null)); - } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'iload_0' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,66,FOLLOW_66_in_load1106); + stream_66.add(a); - a=(Token)match(input,59,FOLLOW_59_in_load880); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode((a!=null?a.getText():null)); - } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'iload_1' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,67,FOLLOW_67_in_load1125); + stream_67.add(a); - a=(Token)match(input,60,FOLLOW_60_in_load895); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - escreverOpcode((a!=null?a.getText():null)); - } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'iload_2' { - root_0 = (BytecodesAST)adaptor.nil(); - + a=(Token)match(input,68,FOLLOW_68_in_load1143); + stream_68.add(a); - a=(Token)match(input,61,FOLLOW_61_in_load910); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'iload_3' + { + a=(Token)match(input,69,FOLLOW_69_in_load1161); + stream_69.add(a); - escreverOpcode((a!=null?a.getText():null)); } break; - case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:8: a= 'iload_3' + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'aload_0' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,31,FOLLOW_31_in_load1179); + stream_31.add(a); - a=(Token)match(input,62,FOLLOW_62_in_load925); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + break; + case 13 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'aload_1' + { + a=(Token)match(input,32,FOLLOW_32_in_load1197); + stream_32.add(a); - escreverOpcode((a!=null?a.getText():null)); + } + break; + case 14 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: a= 'aload_2' + { + a=(Token)match(input,33,FOLLOW_33_in_load1216); + stream_33.add(a); + } break; - case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: a= 'iload' INTEIRO + case 15 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: a= 'aload_3' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,34,FOLLOW_34_in_load1234); + stream_34.add(a); - a=(Token)match(input,58,FOLLOW_58_in_load940); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + break; + } - INTEIRO34=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load942); - INTEIRO34_tree = - (BytecodesAST)adaptor.create(INTEIRO34) - ; - adaptor.addChild(root_0, INTEIRO34_tree); + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - escreverOpcode(a, INTEIRO34); + root_0 = (BytecodesAST)adaptor.nil(); + // 108:8: -> ^( LOAD $a) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:11: ^( LOAD $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(LOAD, "LOAD") + , root_1); - } - break; - case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:8: a= 'ldc' INTEIRO - { - root_0 = (BytecodesAST)adaptor.nil(); + adaptor.addChild(root_1, stream_a.nextNode()); + adaptor.addChild(root_0, root_1); + } - a=(Token)match(input,75,FOLLOW_75_in_load957); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } - INTEIRO35=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load959); - INTEIRO35_tree = - (BytecodesAST)adaptor.create(INTEIRO35) - ; - adaptor.addChild(root_0, INTEIRO35_tree); + retval.tree = root_0; + } - escreverOpcode(a, INTEIRO35); + retval.stop = input.LT(-1); - } - break; - case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: a= 'aload' INTEIRO - { - root_0 = (BytecodesAST)adaptor.nil(); + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - a=(Token)match(input,23,FOLLOW_23_in_load974); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } - INTEIRO36=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_load976); - INTEIRO36_tree = - (BytecodesAST)adaptor.create(INTEIRO36) - ; - adaptor.addChild(root_0, INTEIRO36_tree); + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "load" - escreverOpcode(a, INTEIRO36); + public static class loadint_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; - } - break; - case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: a= 'aload_0' - { - root_0 = (BytecodesAST)adaptor.nil(); + // $ANTLR start "loadint" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + public final AssemblerParser.loadint_return loadint() throws RecognitionException { + AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); + retval.start = input.LT(1); - a=(Token)match(input,24,FOLLOW_24_in_load991); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + BytecodesAST root_0 = null; - escreverOpcode((a!=null?a.getText():null)); + Token a=null; + Token b=null; - } - break; - case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:8: a= 'aload_1' - { - root_0 = (BytecodesAST)adaptor.nil(); + BytecodesAST a_tree=null; + BytecodesAST b_tree=null; + RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); + RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); + RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); + RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + int alt11=3; + switch ( input.LA(1) ) { + case 65: + { + alt11=1; + } + break; + case 82: + { + alt11=2; + } + break; + case 30: + { + alt11=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 11, 0, input); + throw nvae; - a=(Token)match(input,25,FOLLOW_25_in_load1006); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + switch (alt11) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:15: a= 'iload' b= INTEIRO + { + a=(Token)match(input,65,FOLLOW_65_in_loadint1288); + stream_65.add(a); + + + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1294); + stream_INTEIRO.add(b); - escreverOpcode((a!=null?a.getText():null)); } break; - case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: a= 'aload_2' + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:15: a= 'ldc' b= INTEIRO { - root_0 = (BytecodesAST)adaptor.nil(); - + a=(Token)match(input,82,FOLLOW_82_in_loadint1315); + stream_82.add(a); - a=(Token)match(input,26,FOLLOW_26_in_load1021); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1321); + stream_INTEIRO.add(b); - escreverOpcode((a!=null?a.getText():null)); } break; - case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:8: a= 'aload_3' + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:15: a= 'aload' b= INTEIRO { - root_0 = (BytecodesAST)adaptor.nil(); - + a=(Token)match(input,30,FOLLOW_30_in_loadint1341); + stream_30.add(a); - a=(Token)match(input,27,FOLLOW_27_in_load1035); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1347); + stream_INTEIRO.add(b); - escreverOpcode((a!=null?a.getText():null)); } break; } + + + // AST REWRITE + // elements: a, b + // token labels: b, a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_b=new RewriteRuleTokenStream(adaptor,"token b",b); + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 115:11: -> ^( LOAD $a $b) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:14: ^( LOAD $a $b) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(LOAD, "LOAD") + , root_1); + + adaptor.addChild(root_1, stream_a.nextNode()); + + adaptor.addChild(root_1, stream_b.nextNode()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + retval.stop = input.LT(-1); @@ -2194,7 +2225,7 @@ public final AssemblerParser.load_return load() throws RecognitionException, Lab } return retval; } - // $ANTLR end "load" + // $ANTLR end "loadint" public static class store_return extends ParserRuleReturnScope { @@ -2204,8 +2235,8 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ); - public final AssemblerParser.store_return store() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2213,262 +2244,316 @@ public final AssemblerParser.store_return store() throws RecognitionException, A BytecodesAST root_0 = null; Token a=null; - Token INTEIRO37=null; - Token INTEIRO38=null; BytecodesAST a_tree=null; - BytecodesAST INTEIRO37_tree=null; - BytecodesAST INTEIRO38_tree=null; + RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); + RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); + RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); + RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); + RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); + RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:7: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'istore' INTEIRO |a= 'astore' INTEIRO |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt11=10; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + int alt12=8; switch ( input.LA(1) ) { - case 69: - { - alt11=1; - } - break; - case 70: - { - alt11=2; - } - break; - case 71: + case 76: { - alt11=3; + alt12=1; } break; - case 72: + case 77: { - alt11=4; + alt12=2; } break; - case 68: + case 78: { - alt11=5; + alt12=3; } break; - case 28: + case 79: { - alt11=6; + alt12=4; } break; - case 29: + case 36: { - alt11=7; + alt12=5; } break; - case 30: + case 37: { - alt11=8; + alt12=6; } break; - case 31: + case 38: { - alt11=9; + alt12=7; } break; - case 32: + case 39: { - alt11=10; + alt12=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 11, 0, input); + new NoViableAltException("", 12, 0, input); throw nvae; } - switch (alt11) { + switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'istore_0' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,69,FOLLOW_69_in_store1059); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,76,FOLLOW_76_in_store1414); + stream_76.add(a); - verificarAumentoMemoriaGlobal(a); - } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:9: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'istore_1' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,70,FOLLOW_70_in_store1075); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + a=(Token)match(input,77,FOLLOW_77_in_store1433); + stream_77.add(a); - verificarAumentoMemoriaGlobal(a); - } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'istore_2' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,78,FOLLOW_78_in_store1452); + stream_78.add(a); - a=(Token)match(input,71,FOLLOW_71_in_store1091); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'istore_3' + { + a=(Token)match(input,79,FOLLOW_79_in_store1471); + stream_79.add(a); - verificarAumentoMemoriaGlobal(a); } break; - case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:9: a= 'istore_3' + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'astore_0' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,36,FOLLOW_36_in_store1490); + stream_36.add(a); - a=(Token)match(input,72,FOLLOW_72_in_store1107); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'astore_1' + { + a=(Token)match(input,37,FOLLOW_37_in_store1508); + stream_37.add(a); + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'astore_2' + { + a=(Token)match(input,38,FOLLOW_38_in_store1527); + stream_38.add(a); - verificarAumentoMemoriaGlobal(a); } break; - case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: a= 'istore' INTEIRO + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'astore_3' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,39,FOLLOW_39_in_store1546); + stream_39.add(a); - a=(Token)match(input,68,FOLLOW_68_in_store1123); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + break; + } - INTEIRO37=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1125); - INTEIRO37_tree = - (BytecodesAST)adaptor.create(INTEIRO37) - ; - adaptor.addChild(root_0, INTEIRO37_tree); + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - verificarAumentoMemoriaGlobal(a, INTEIRO37); + root_0 = (BytecodesAST)adaptor.nil(); + // 127:9: -> ^( STORE $a) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:12: ^( STORE $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(STORE, "STORE") + , root_1); - } - break; - case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: a= 'astore' INTEIRO - { - root_0 = (BytecodesAST)adaptor.nil(); + adaptor.addChild(root_1, stream_a.nextNode()); + adaptor.addChild(root_0, root_1); + } - a=(Token)match(input,28,FOLLOW_28_in_store1141); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } - INTEIRO38=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_store1143); - INTEIRO38_tree = - (BytecodesAST)adaptor.create(INTEIRO38) - ; - adaptor.addChild(root_0, INTEIRO38_tree); + retval.tree = root_0; + } - verificarAumentoMemoriaGlobal(a, INTEIRO38); + retval.stop = input.LT(-1); - } - break; - case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: a= 'astore_0' - { - root_0 = (BytecodesAST)adaptor.nil(); + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - a=(Token)match(input,29,FOLLOW_29_in_store1159); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + } - verificarAumentoMemoriaGlobal(a); + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "store" - } - break; - case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:9: a= 'astore_1' - { - root_0 = (BytecodesAST)adaptor.nil(); + public static class storeint_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; - a=(Token)match(input,30,FOLLOW_30_in_store1175); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + // $ANTLR start "storeint" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + public final AssemblerParser.storeint_return storeint() throws RecognitionException { + AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); + retval.start = input.LT(1); - verificarAumentoMemoriaGlobal(a); - } - break; - case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:9: a= 'astore_2' - { - root_0 = (BytecodesAST)adaptor.nil(); + BytecodesAST root_0 = null; + Token a=null; + Token b=null; - a=(Token)match(input,31,FOLLOW_31_in_store1191); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + BytecodesAST a_tree=null; + BytecodesAST b_tree=null; + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); + RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==75) ) { + alt13=1; + } + else if ( (LA13_0==35) ) { + alt13=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 13, 0, input); + + throw nvae; + + } + switch (alt13) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:16: a= 'istore' b= INTEIRO + { + a=(Token)match(input,75,FOLLOW_75_in_storeint1604); + stream_75.add(a); - verificarAumentoMemoriaGlobal(a); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1610); + stream_INTEIRO.add(b); + } break; - case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:9: a= 'astore_3' + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:16: a= 'astore' b= INTEIRO { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,35,FOLLOW_35_in_storeint1632); + stream_35.add(a); - a=(Token)match(input,32,FOLLOW_32_in_store1207); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1638); + stream_INTEIRO.add(b); - verificarAumentoMemoriaGlobal(a); } break; } + + + // AST REWRITE + // elements: b, a + // token labels: b, a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_b=new RewriteRuleTokenStream(adaptor,"token b",b); + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 133:12: -> ^( STORE $a $b) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:15: ^( STORE $a $b) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(STORE, "STORE") + , root_1); + + adaptor.addChild(root_1, stream_a.nextNode()); + + adaptor.addChild(root_1, stream_b.nextNode()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + retval.stop = input.LT(-1); @@ -2488,7 +2573,7 @@ public final AssemblerParser.store_return store() throws RecognitionException, A } return retval; } - // $ANTLR end "store" + // $ANTLR end "storeint" public static class logica_return extends ParserRuleReturnScope { @@ -2498,7 +2583,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2509,88 +2594,105 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); + RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); + RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:8: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt12=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt14=3; switch ( input.LA(1) ) { - case 36: + case 43: { - alt12=1; + alt14=1; } break; - case 66: + case 73: { - alt12=2; + alt14=2; } break; - case 74: + case 81: { - alt12=3; + alt14=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); - - throw nvae; - - } - - switch (alt12) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:10: a= 'iand' - { - root_0 = (BytecodesAST)adaptor.nil(); + new NoViableAltException("", 14, 0, input); + throw nvae; - a=(Token)match(input,36,FOLLOW_36_in_logica1228); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + switch (alt14) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:14: a= 'iand' + { + a=(Token)match(input,43,FOLLOW_43_in_logica1702); + stream_43.add(a); - escreverOpcode((a!=null?a.getText():null)); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:10: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:14: a= 'ior' { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,66,FOLLOW_66_in_logica1245); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + a=(Token)match(input,73,FOLLOW_73_in_logica1721); + stream_73.add(a); - escreverOpcode((a!=null?a.getText():null)); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:10: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:14: a= 'ixor' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,81,FOLLOW_81_in_logica1740); + stream_81.add(a); - a=(Token)match(input,74,FOLLOW_74_in_logica1262); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + break; + } - escreverOpcode((a!=null?a.getText():null)); - } - break; + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 140:10: -> ^( LOGICA $a) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: ^( LOGICA $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(LOGICA, "LOGICA") + , root_1); + + adaptor.addChild(root_1, stream_a.nextNode()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; } + retval.stop = input.LT(-1); @@ -2620,8 +2722,8 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ); - public final AssemblerParser.desvio_return desvio() throws RecognitionException, LabelException { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2633,399 +2735,431 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, BytecodesAST a_tree=null; BytecodesAST b_tree=null; + RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); + RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); + RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); + RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); + RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); + RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); + RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); + RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); + RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); + RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); + RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); + RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:8: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt13=13; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt15=13; switch ( input.LA(1) ) { - case 51: + case 58: { - alt13=1; + alt15=1; } break; - case 56: + case 63: { - alt13=2; + alt15=2; } break; - case 55: + case 62: { - alt13=3; + alt15=3; } break; - case 52: + case 59: { - alt13=4; + alt15=4; } break; - case 53: + case 60: { - alt13=5; + alt15=5; } break; - case 54: + case 61: { - alt13=6; + alt15=6; } break; - case 45: + case 52: { - alt13=7; + alt15=7; } break; - case 50: + case 57: { - alt13=8; + alt15=8; } break; - case 49: + case 56: { - alt13=9; + alt15=9; } break; - case 46: + case 53: { - alt13=10; + alt15=10; } break; - case 47: + case 54: { - alt13=11; + alt15=11; } break; - case 48: + case 55: { - alt13=12; + alt15=12; } break; - case 34: + case 41: { - alt13=13; + alt15=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); + new NoViableAltException("", 15, 0, input); throw nvae; } - switch (alt13) { + switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:14: a= 'ifeq' b= ID { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,51,FOLLOW_51_in_desvio1284); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + a=(Token)match(input,58,FOLLOW_58_in_desvio1793); + stream_58.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1290); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1799); + stream_ID.add(b); - escreverOpcode(a, b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:10: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:14: a= 'ifne' b= ID { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,63,FOLLOW_63_in_desvio1819); + stream_63.add(a); - a=(Token)match(input,56,FOLLOW_56_in_desvio1307); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - - - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1313); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1825); + stream_ID.add(b); - escreverOpcode(a, b); - } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:10: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:14: a= 'iflt' b= ID { - root_0 = (BytecodesAST)adaptor.nil(); - - - a=(Token)match(input,55,FOLLOW_55_in_desvio1330); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); - + a=(Token)match(input,62,FOLLOW_62_in_desvio1845); + stream_62.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1336); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1851); + stream_ID.add(b); - escreverOpcode(a, b); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:10: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:14: a= 'ifge' b= ID { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,59,FOLLOW_59_in_desvio1870); + stream_59.add(a); - a=(Token)match(input,52,FOLLOW_52_in_desvio1353); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1876); + stream_ID.add(b); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1359); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + } + break; + case 5 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:14: a= 'ifgt' b= ID + { + a=(Token)match(input,60,FOLLOW_60_in_desvio1895); + stream_60.add(a); - escreverOpcode(a, b); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1901); + stream_ID.add(b); + } break; - case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:10: a= 'ifgt' b= ID + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:14: a= 'ifle' b= ID { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,61,FOLLOW_61_in_desvio1921); + stream_61.add(a); - a=(Token)match(input,53,FOLLOW_53_in_desvio1376); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1927); + stream_ID.add(b); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1382); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:14: a= 'if_icmpeq' b= ID + { + a=(Token)match(input,52,FOLLOW_52_in_desvio1947); + stream_52.add(a); - escreverOpcode(a, b); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1953); + stream_ID.add(b); + } break; - case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'ifle' b= ID + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: a= 'if_icmpne' b= ID { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,57,FOLLOW_57_in_desvio1973); + stream_57.add(a); - a=(Token)match(input,54,FOLLOW_54_in_desvio1399); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1979); + stream_ID.add(b); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1405); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'if_icmplt' b= ID + { + a=(Token)match(input,56,FOLLOW_56_in_desvio1998); + stream_56.add(a); - escreverOpcode(a, b); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2004); + stream_ID.add(b); + } break; - case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:10: a= 'if_icmpeq' b= ID + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'if_icmpge' b= ID { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,53,FOLLOW_53_in_desvio2024); + stream_53.add(a); - a=(Token)match(input,45,FOLLOW_45_in_desvio1422); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2030); + stream_ID.add(b); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1428); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'if_icmpgt' b= ID + { + a=(Token)match(input,54,FOLLOW_54_in_desvio2050); + stream_54.add(a); - escreverOpcode(a, b); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2056); + stream_ID.add(b); + } break; - case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:10: a= 'if_icmpne' b= ID + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'if_icmple' b= ID { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,55,FOLLOW_55_in_desvio2075); + stream_55.add(a); - a=(Token)match(input,50,FOLLOW_50_in_desvio1445); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2081); + stream_ID.add(b); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1451); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + } + break; + case 13 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:14: a= 'goto' b= ID + { + a=(Token)match(input,41,FOLLOW_41_in_desvio2101); + stream_41.add(a); - escreverOpcode(a, b); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2107); + stream_ID.add(b); + } break; - case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:10: a= 'if_icmplt' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); + } - a=(Token)match(input,49,FOLLOW_49_in_desvio1468); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + // AST REWRITE + // elements: a, b + // token labels: b, a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_b=new RewriteRuleTokenStream(adaptor,"token b",b); + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1474); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + root_0 = (BytecodesAST)adaptor.nil(); + // 157:10: -> ^( DESVIO $a $b) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:13: ^( DESVIO $a $b) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(DESVIO, "DESVIO") + , root_1); + adaptor.addChild(root_1, stream_a.nextNode()); - escreverOpcode(a, b); + adaptor.addChild(root_1, stream_b.nextNode()); - } - break; - case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:10: a= 'if_icmpge' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); + adaptor.addChild(root_0, root_1); + } + } - a=(Token)match(input,46,FOLLOW_46_in_desvio1491); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + retval.tree = root_0; - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1497); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + } + retval.stop = input.LT(-1); - escreverOpcode(a, b); - } - break; - case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:10: a= 'if_icmpgt' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - a=(Token)match(input,47,FOLLOW_47_in_desvio1514); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "desvio" - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1520); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + public static class pilha_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; - escreverOpcode(a, b); - } - break; - case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:10: a= 'if_icmple' b= ID - { - root_0 = (BytecodesAST)adaptor.nil(); + // $ANTLR start "pilha" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:1: pilha : (a= 'pop' |a= 'pop2' ) -> ^( PILHA $a) ; + public final AssemblerParser.pilha_return pilha() throws RecognitionException { + AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); + retval.start = input.LT(1); - a=(Token)match(input,48,FOLLOW_48_in_desvio1537); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + BytecodesAST root_0 = null; + + Token a=null; + BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); + RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1543); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:7: ( (a= 'pop' |a= 'pop2' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: (a= 'pop' |a= 'pop2' ) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: (a= 'pop' |a= 'pop2' ) + int alt16=2; + int LA16_0 = input.LA(1); + + if ( (LA16_0==84) ) { + alt16=1; + } + else if ( (LA16_0==85) ) { + alt16=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 16, 0, input); + + throw nvae; + } + switch (alt16) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:13: a= 'pop' + { + a=(Token)match(input,84,FOLLOW_84_in_pilha2172); + stream_84.add(a); - escreverOpcode(a, b); } break; - case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'goto' b= ID + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:13: a= 'pop2' { - root_0 = (BytecodesAST)adaptor.nil(); + a=(Token)match(input,85,FOLLOW_85_in_pilha2190); + stream_85.add(a); - a=(Token)match(input,34,FOLLOW_34_in_desvio1560); - a_tree = - (BytecodesAST)adaptor.create(a) - ; - adaptor.addChild(root_0, a_tree); + } + break; + + } - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1566); - b_tree = - (BytecodesAST)adaptor.create(b) - ; - adaptor.addChild(root_0, b_tree); + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 163:9: -> ^( PILHA $a) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:12: ^( PILHA $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(PILHA, "PILHA") + , root_1); + adaptor.addChild(root_1, stream_a.nextNode()); + + adaptor.addChild(root_0, root_1); + } - escreverOpcode(a, b); + } - } - break; + + retval.tree = root_0; } + retval.stop = input.LT(-1); @@ -3045,7 +3179,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException, } return retval; } - // $ANTLR end "desvio" + // $ANTLR end "pilha" public static class chamadaMetodo_return extends ParserRuleReturnScope { @@ -3059,7 +3193,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:1: chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] : (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:1: chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] : (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -3070,14 +3204,14 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni Token n=null; Token par=null; Token tip=null; - Token char_literal39=null; + Token char_literal37=null; Token cls=null; List list_cls=null; BytecodesAST n_tree=null; BytecodesAST par_tree=null; BytecodesAST tip_tree=null; - BytecodesAST char_literal39_tree=null; + BytecodesAST char_literal37_tree=null; BytecodesAST cls_tree=null; @@ -3087,29 +3221,29 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:6: ( (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (cls+= ID '/' )+ n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:6: ( (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:8: (cls+= ID '/' )+ n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (cls+= ID '/' )+ - int cnt14=0; - loop14: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:8: (cls+= ID '/' )+ + int cnt17=0; + loop17: do { - int alt14=2; - int LA14_0 = input.LA(1); + int alt17=2; + int LA17_0 = input.LA(1); - if ( (LA14_0==ID) ) { - alt14=1; + if ( (LA17_0==ID) ) { + alt17=1; } - switch (alt14) { + switch (alt17) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo1608); + cls=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo2256); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3119,41 +3253,41 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni list_cls.add(cls); - char_literal39=(Token)match(input,20,FOLLOW_20_in_chamadaMetodo1610); - char_literal39_tree = - (BytecodesAST)adaptor.create(char_literal39) + char_literal37=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2258); + char_literal37_tree = + (BytecodesAST)adaptor.create(char_literal37) ; - adaptor.addChild(root_0, char_literal39_tree); + adaptor.addChild(root_0, char_literal37_tree); } break; default : - if ( cnt14 >= 1 ) break loop14; + if ( cnt17 >= 1 ) break loop17; EarlyExitException eee = - new EarlyExitException(14, input); + new EarlyExitException(17, input); throw eee; } - cnt14++; + cnt17++; } while (true); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo1618); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2266); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,15,FOLLOW_15_in_chamadaMetodo1624); + par=(Token)match(input,22,FOLLOW_22_in_chamadaMetodo2272); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo1630); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2278); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -3199,7 +3333,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3208,12 +3342,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal40=null; + Token char_literal38=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal40_tree=null; + BytecodesAST char_literal38_tree=null; BytecodesAST cls_tree=null; @@ -3221,35 +3355,35 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:8: (cls+= ID '/' )+ - int cnt15=0; - loop15: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:8: (cls+= ID '/' )+ + int cnt18=0; + loop18: do { - int alt15=2; - int LA15_0 = input.LA(1); + int alt18=2; + int LA18_0 = input.LA(1); - if ( (LA15_0==ID) ) { - int LA15_1 = input.LA(2); + if ( (LA18_0==ID) ) { + int LA18_1 = input.LA(2); - if ( (LA15_1==20) ) { - alt15=1; + if ( (LA18_1==27) ) { + alt18=1; } } - switch (alt15) { + switch (alt18) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo1670); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2318); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3259,27 +3393,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal40=(Token)match(input,20,FOLLOW_20_in_campo1672); - char_literal40_tree = - (BytecodesAST)adaptor.create(char_literal40) + char_literal38=(Token)match(input,27,FOLLOW_27_in_campo2320); + char_literal38_tree = + (BytecodesAST)adaptor.create(char_literal38) ; - adaptor.addChild(root_0, char_literal40_tree); + adaptor.addChild(root_0, char_literal38_tree); } break; default : - if ( cnt15 >= 1 ) break loop15; + if ( cnt18 >= 1 ) break loop18; EarlyExitException eee = - new EarlyExitException(15, input); + new EarlyExitException(18, input); throw eee; } - cnt15++; + cnt18++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo1680); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2328); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3319,7 +3453,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3327,79 +3461,79 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST root_0 = null; + Token char_literal39=null; + Token ID40=null; Token char_literal41=null; Token ID42=null; - Token char_literal43=null; - Token ID44=null; + BytecodesAST char_literal39_tree=null; + BytecodesAST ID40_tree=null; BytecodesAST char_literal41_tree=null; BytecodesAST ID42_tree=null; - BytecodesAST char_literal43_tree=null; - BytecodesAST ID44_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal41=(Token)match(input,22,FOLLOW_22_in_tipoRef1696); - char_literal41_tree = - (BytecodesAST)adaptor.create(char_literal41) + char_literal39=(Token)match(input,29,FOLLOW_29_in_tipoRef2344); + char_literal39_tree = + (BytecodesAST)adaptor.create(char_literal39) ; - adaptor.addChild(root_0, char_literal41_tree); + adaptor.addChild(root_0, char_literal39_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:15: ( ID '/' )* - loop16: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:15: ( ID '/' )* + loop19: do { - int alt16=2; - int LA16_0 = input.LA(1); + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA16_0==ID) ) { - int LA16_1 = input.LA(2); + if ( (LA19_0==ID) ) { + int LA19_1 = input.LA(2); - if ( (LA16_1==20) ) { - alt16=1; + if ( (LA19_1==27) ) { + alt19=1; } } - switch (alt16) { + switch (alt19) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:16: ID '/' { - ID42=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1699); - ID42_tree = - (BytecodesAST)adaptor.create(ID42) + ID40=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2347); + ID40_tree = + (BytecodesAST)adaptor.create(ID40) ; - adaptor.addChild(root_0, ID42_tree); + adaptor.addChild(root_0, ID40_tree); - char_literal43=(Token)match(input,20,FOLLOW_20_in_tipoRef1701); - char_literal43_tree = - (BytecodesAST)adaptor.create(char_literal43) + char_literal41=(Token)match(input,27,FOLLOW_27_in_tipoRef2349); + char_literal41_tree = + (BytecodesAST)adaptor.create(char_literal41) ; - adaptor.addChild(root_0, char_literal43_tree); + adaptor.addChild(root_0, char_literal41_tree); } break; default : - break loop16; + break loop19; } } while (true); - ID44=(Token)match(input,ID,FOLLOW_ID_in_tipoRef1705); - ID44_tree = - (BytecodesAST)adaptor.create(ID44) + ID42=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2353); + ID42_tree = + (BytecodesAST)adaptor.create(ID42) ; - adaptor.addChild(root_0, ID44_tree); + adaptor.addChild(root_0, ID42_tree); } @@ -3430,128 +3564,131 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio - public static final BitSet FOLLOW_comando_in_programa72 = new BitSet(new long[]{0xFFFFFFFFFF850842L,0x000000000000FFFFL}); - public static final BitSet FOLLOW_label_in_comando92 = new BitSet(new long[]{0xFFFFFFFFFF850800L,0x000000000000FFFFL}); - public static final BitSet FOLLOW_instrucao_in_comando94 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando98 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label120 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_21_in_label122 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao132 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao136 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao140 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_load_in_instrucao144 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_store_in_instrucao148 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_desvio_in_instrucao152 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_logica_in_instrucao156 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_76_in_instrucao179 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_77_in_instrucao201 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_78_in_instrucao225 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao245 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_definicaoClasse267 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse269 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse271 = new BitSet(new long[]{0x00000000000A0000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse273 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse276 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_18_in_definicaoClasse335 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_INIT_in_definicaoClasse337 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_15_in_definicaoClasse339 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_VOID_in_definicaoClasse341 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_19_in_superClasse382 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_superClasse384 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_membroClasse401 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_membroClasse403 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_membroClasse405 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_manipulacaoObjetos457 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos463 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos465 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_manipulacaoObjetos503 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos509 = new BitSet(new long[]{0x0000000000402100L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos511 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_manipulacaoObjetos550 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos556 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo595 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo599 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo603 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_aritmetica616 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_aritmetica637 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_aritmetica658 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_aritmetica679 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_aritmetica700 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_aritmetica721 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_aritmetica742 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load779 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load793 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load808 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load823 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load838 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load852 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load866 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load880 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load895 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load910 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load925 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load940 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load942 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_load957 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load959 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_load974 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_load976 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_load991 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_load1006 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_load1021 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_load1035 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_store1059 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_store1075 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_store1091 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_store1107 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_store1123 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_store1125 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_store1141 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INTEIRO_in_store1143 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_store1159 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_store1175 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_store1191 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_store1207 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_logica1228 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_logica1245 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_logica1262 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio1284 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1290 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio1307 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1313 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio1330 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1336 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1353 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1359 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_desvio1376 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1382 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_desvio1399 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1405 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_desvio1422 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1428 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio1445 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1451 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_desvio1468 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1474 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_desvio1491 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1497 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_desvio1514 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1520 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_desvio1537 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1543 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_desvio1560 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_desvio1566 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_chamadaMetodo1608 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_chamadaMetodo1610 = new BitSet(new long[]{0x00000000000000C0L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo1618 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_15_in_chamadaMetodo1624 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo1630 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo1670 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_campo1672 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_campo1680 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_22_in_tipoRef1696 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_tipoRef1699 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_20_in_tipoRef1701 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_ID_in_tipoRef1705 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_programa107 = new BitSet(new long[]{0xFFFFFFFFC2810102L,0x00000000007FFFFFL}); + public static final BitSet FOLLOW_label_in_comando127 = new BitSet(new long[]{0xFFFFFFFFC2810000L,0x00000000007FFFFFL}); + public static final BitSet FOLLOW_instrucao_in_comando129 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_comando133 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label155 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_label157 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao178 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao197 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao216 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_load_in_instrucao235 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_loadint_in_instrucao253 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_store_in_instrucao272 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_storeint_in_instrucao290 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_desvio_in_instrucao309 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_logica_in_instrucao328 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_pilha_in_instrucao346 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_83_in_instrucao365 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao381 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_definicaoClasse403 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse405 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse407 = new BitSet(new long[]{0x0000000005000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse409 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse412 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_25_in_definicaoClasse471 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INIT_in_definicaoClasse473 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_22_in_definicaoClasse475 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_VOID_in_definicaoClasse477 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_superClasse518 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_superClasse520 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_membroClasse537 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_membroClasse539 = new BitSet(new long[]{0x0000000020100400L}); + public static final BitSet FOLLOW_tipo_in_membroClasse541 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_manipulacaoObjetos593 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos599 = new BitSet(new long[]{0x0000000020100400L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos601 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_manipulacaoObjetos639 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos645 = new BitSet(new long[]{0x0000000020100400L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos647 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_manipulacaoObjetos686 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos692 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo731 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo735 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo739 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_aritmetica757 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_aritmetica781 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_aritmetica805 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_aritmetica829 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica853 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_aritmetica877 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_aritmetica901 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_load979 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load997 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_load1015 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load1033 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1052 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1070 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1088 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_load1106 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_load1125 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_load1143 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_load1161 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_load1179 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_load1197 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load1216 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load1234 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_loadint1288 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_loadint1315 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1321 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_loadint1341 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1347 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_store1414 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_store1433 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_store1452 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_store1471 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_store1490 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_store1508 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_store1527 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_store1546 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_storeint1604 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1610 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_storeint1632 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1638 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_logica1702 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_logica1721 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_logica1740 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_desvio1793 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1799 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio1819 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1825 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio1845 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1851 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio1870 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1876 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_desvio1895 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1901 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_desvio1921 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1927 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio1947 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1953 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio1973 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1979 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio1998 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2004 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_desvio2024 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2030 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_desvio2050 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2056 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio2075 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2081 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_desvio2101 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2107 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_pilha2172 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_pilha2190 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_chamadaMetodo2256 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_chamadaMetodo2258 = new BitSet(new long[]{0x0000000000000300L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2266 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_22_in_chamadaMetodo2272 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2278 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2318 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_campo2320 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_campo2328 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_tipoRef2344 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_tipoRef2347 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_tipoRef2349 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_tipoRef2353 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index a685f0e..1331976 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-04 22:53:50 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-05 12:07:16 package br.ufpb.iged.interpretador.parser; @@ -20,17 +20,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__19=19; - public static final int T__20=20; - public static final int T__21=21; public static final int T__22=22; public static final int T__23=23; public static final int T__24=24; @@ -89,17 +82,31 @@ public class Def extends TreeFilter { public static final int T__77=77; public static final int T__78=78; public static final int T__79=79; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int INTEIRO=9; - public static final int MEMBRO_CLASSE=10; - public static final int NOVA_LINHA=11; - public static final int NULL=12; - public static final int VOID=13; - public static final int WS=14; + public static final int T__80=80; + public static final int T__81=81; + public static final int T__82=82; + public static final int T__83=83; + public static final int T__84=84; + public static final int T__85=85; + public static final int T__86=86; + public static final int ARITMETICA=4; + public static final int DESVIO=5; + public static final int EXTENDS=6; + public static final int FIELD_DECL=7; + public static final int ID=8; + public static final int INIT=9; + public static final int INT=10; + public static final int INTEIRO=11; + public static final int LABEL=12; + public static final int LOAD=13; + public static final int LOGICA=14; + public static final int MEMBRO_CLASSE=15; + public static final int NOVA_LINHA=16; + public static final int NULL=17; + public static final int PILHA=18; + public static final int STORE=19; + public static final int VOID=20; + public static final int WS=21; // delegates public TreeFilter[] getDelegates() { @@ -138,7 +145,7 @@ public final void topdown() throws RecognitionException { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==16) ) { + if ( (LA1_0==23) ) { alt1=1; } else if ( (LA1_0==FIELD_DECL) ) { @@ -199,22 +206,22 @@ public final void bottomup() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse | getfield | putfield | invokespecial ) int alt2=4; switch ( input.LA(1) ) { - case 16: + case 23: { alt2=1; } break; - case 33: + case 40: { alt2=2; } break; - case 79: + case 86: { alt2=3; } break; - case 65: + case 72: { alt2=4; } @@ -300,7 +307,7 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,16,FOLLOW_16_in_entraNaClasse154); if (state.failed) return ; + match(input,23,FOLLOW_23_in_entraNaClasse154); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse158); if (state.failed) return ; @@ -321,7 +328,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= EXTENDS && LA3_5 <= 79)) ) { + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 86)) ) { alt3=1; } } @@ -436,7 +443,7 @@ public final void saiDaClasse() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:13: ( '.class' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:15: '.class' { - match(input,16,FOLLOW_16_in_saiDaClasse237); if (state.failed) return ; + match(input,23,FOLLOW_23_in_saiDaClasse237); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -467,7 +474,7 @@ public final void getfield() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:5: ( 'getfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:7: 'getfield' { - match(input,33,FOLLOW_33_in_getfield277); if (state.failed) return ; + match(input,40,FOLLOW_40_in_getfield277); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do getfield.."); @@ -497,7 +504,7 @@ public final void putfield() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:5: ( 'putfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:7: 'putfield' { - match(input,79,FOLLOW_79_in_putfield305); if (state.failed) return ; + match(input,86,FOLLOW_86_in_putfield305); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do putfield.."); @@ -527,7 +534,7 @@ public final void invokespecial() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:5: ( 'invokespecial' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:7: 'invokespecial' { - match(input,65,FOLLOW_65_in_invokespecial334); if (state.failed) return ; + match(input,72,FOLLOW_72_in_invokespecial334); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do invokespecial.."); @@ -559,15 +566,15 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_getfield_in_bottomup94 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_putfield_in_bottomup107 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_invokespecial_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); + public static final BitSet FOLLOW_23_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel202 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000000FFFFL}); - public static final BitSet FOLLOW_16_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL}); + public static final BitSet FOLLOW_23_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index ad197b0..5a92c95 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,10 +1,3 @@ -T__15=15 -T__16=16 -T__17=17 -T__18=18 -T__19=19 -T__20=20 -T__21=21 T__22=22 T__23=23 T__24=24 @@ -63,79 +56,93 @@ T__76=76 T__77=77 T__78=78 T__79=79 -EXTENDS=4 -FIELD_DECL=5 -ID=6 -INIT=7 -INT=8 -INTEIRO=9 -MEMBRO_CLASSE=10 -NOVA_LINHA=11 -NULL=12 -VOID=13 -WS=14 -'()'=15 -'.class'=16 -'.field'=17 -'.method'=18 -'.super'=19 -'/'=20 -':'=21 -'L'=22 -'aload'=23 -'aload_0'=24 -'aload_1'=25 -'aload_2'=26 -'aload_3'=27 -'astore'=28 -'astore_0'=29 -'astore_1'=30 -'astore_2'=31 -'astore_3'=32 -'getfield'=33 -'goto'=34 -'iadd'=35 -'iand'=36 -'iconst_0'=37 -'iconst_1'=38 -'iconst_2'=39 -'iconst_3'=40 -'iconst_4'=41 -'iconst_5'=42 -'iconst_m1'=43 -'idiv'=44 -'if_icmpeq'=45 -'if_icmpge'=46 -'if_icmpgt'=47 -'if_icmple'=48 -'if_icmplt'=49 -'if_icmpne'=50 -'ifeq'=51 -'ifge'=52 -'ifgt'=53 -'ifle'=54 -'iflt'=55 -'ifne'=56 -'iinc'=57 -'iload'=58 -'iload_0'=59 -'iload_1'=60 -'iload_2'=61 -'iload_3'=62 -'imul'=63 -'ineg'=64 -'invokespecial'=65 -'ior'=66 -'irem'=67 -'istore'=68 -'istore_0'=69 -'istore_1'=70 -'istore_2'=71 -'istore_3'=72 -'isub'=73 -'ixor'=74 -'ldc'=75 -'nop'=76 -'pop'=77 -'pop2'=78 -'putfield'=79 +T__80=80 +T__81=81 +T__82=82 +T__83=83 +T__84=84 +T__85=85 +T__86=86 +ARITMETICA=4 +DESVIO=5 +EXTENDS=6 +FIELD_DECL=7 +ID=8 +INIT=9 +INT=10 +INTEIRO=11 +LABEL=12 +LOAD=13 +LOGICA=14 +MEMBRO_CLASSE=15 +NOVA_LINHA=16 +NULL=17 +PILHA=18 +STORE=19 +VOID=20 +WS=21 +'()'=22 +'.class'=23 +'.field'=24 +'.method'=25 +'.super'=26 +'/'=27 +':'=28 +'L'=29 +'aload'=30 +'aload_0'=31 +'aload_1'=32 +'aload_2'=33 +'aload_3'=34 +'astore'=35 +'astore_0'=36 +'astore_1'=37 +'astore_2'=38 +'astore_3'=39 +'getfield'=40 +'goto'=41 +'iadd'=42 +'iand'=43 +'iconst_0'=44 +'iconst_1'=45 +'iconst_2'=46 +'iconst_3'=47 +'iconst_4'=48 +'iconst_5'=49 +'iconst_m1'=50 +'idiv'=51 +'if_icmpeq'=52 +'if_icmpge'=53 +'if_icmpgt'=54 +'if_icmple'=55 +'if_icmplt'=56 +'if_icmpne'=57 +'ifeq'=58 +'ifge'=59 +'ifgt'=60 +'ifle'=61 +'iflt'=62 +'ifne'=63 +'iinc'=64 +'iload'=65 +'iload_0'=66 +'iload_1'=67 +'iload_2'=68 +'iload_3'=69 +'imul'=70 +'ineg'=71 +'invokespecial'=72 +'ior'=73 +'irem'=74 +'istore'=75 +'istore_0'=76 +'istore_1'=77 +'istore_2'=78 +'istore_3'=79 +'isub'=80 +'ixor'=81 +'ldc'=82 +'nop'=83 +'pop'=84 +'pop2'=85 +'putfield'=86 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 5a04bcf..267f86f 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-04 22:53:50 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-05 12:07:16 package br.ufpb.iged.interpretador.parser; @@ -8,6 +8,8 @@ import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; import br.ufpb.iged.interpretador.symboltable.classes.Tipo; import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; +import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; +import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; @@ -22,17 +24,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__15=15; - public static final int T__16=16; - public static final int T__17=17; - public static final int T__18=18; - public static final int T__19=19; - public static final int T__20=20; - public static final int T__21=21; public static final int T__22=22; public static final int T__23=23; public static final int T__24=24; @@ -91,17 +86,31 @@ public class Ref extends TreeFilter { public static final int T__77=77; public static final int T__78=78; public static final int T__79=79; - public static final int EXTENDS=4; - public static final int FIELD_DECL=5; - public static final int ID=6; - public static final int INIT=7; - public static final int INT=8; - public static final int INTEIRO=9; - public static final int MEMBRO_CLASSE=10; - public static final int NOVA_LINHA=11; - public static final int NULL=12; - public static final int VOID=13; - public static final int WS=14; + public static final int T__80=80; + public static final int T__81=81; + public static final int T__82=82; + public static final int T__83=83; + public static final int T__84=84; + public static final int T__85=85; + public static final int T__86=86; + public static final int ARITMETICA=4; + public static final int DESVIO=5; + public static final int EXTENDS=6; + public static final int FIELD_DECL=7; + public static final int ID=8; + public static final int INIT=9; + public static final int INT=10; + public static final int INTEIRO=11; + public static final int LABEL=12; + public static final int LOAD=13; + public static final int LOGICA=14; + public static final int MEMBRO_CLASSE=15; + public static final int NOVA_LINHA=16; + public static final int NULL=17; + public static final int PILHA=18; + public static final int STORE=19; + public static final int VOID=20; + public static final int WS=21; // delegates public TreeFilter[] getDelegates() { @@ -186,51 +195,17 @@ private void chamarConstrutorDefault(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial ) - int alt1=5; - switch ( input.LA(1) ) { - case 16: - { - alt1=1; - } - break; - case FIELD_DECL: - { - alt1=2; - } - break; - case 33: - { - alt1=3; - } - break; - case 79: - { - alt1=4; - } - break; - case 65: - { - alt1=5; - } - break; - default: - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - - throw nvae; - - } - + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ) + int alt1=14; + alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:7: entraNaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:9: entraNaClasse { - pushFollow(FOLLOW_entraNaClasse_in_topdown59); + pushFollow(FOLLOW_entraNaClasse_in_topdown61); entraNaClasse(); state._fsp--; @@ -239,9 +214,9 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:86:7: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:86:9: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown67); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown71); declaracaoVariavel(); state._fsp--; @@ -250,9 +225,9 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:87:7: getfield + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:87:9: getfield { - pushFollow(FOLLOW_getfield_in_topdown75); + pushFollow(FOLLOW_getfield_in_topdown81); getfield(); state._fsp--; @@ -261,9 +236,9 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:88:7: putfield + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:88:9: putfield { - pushFollow(FOLLOW_putfield_in_topdown83); + pushFollow(FOLLOW_putfield_in_topdown91); putfield(); state._fsp--; @@ -272,14 +247,113 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:89:7: invokespecial + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:89:9: invokespecial { - pushFollow(FOLLOW_invokespecial_in_topdown91); + pushFollow(FOLLOW_invokespecial_in_topdown101); invokespecial(); state._fsp--; if (state.failed) return ; + } + break; + case 6 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:90:9: aritmetica + { + pushFollow(FOLLOW_aritmetica_in_topdown111); + aritmetica(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 7 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:91:9: load + { + pushFollow(FOLLOW_load_in_topdown122); + load(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 8 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:92:9: loadint + { + pushFollow(FOLLOW_loadint_in_topdown132); + loadint(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 9 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:9: store + { + pushFollow(FOLLOW_store_in_topdown143); + store(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 10 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:94:9: storeint + { + pushFollow(FOLLOW_storeint_in_topdown153); + storeint(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 11 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:95:9: desvio + { + pushFollow(FOLLOW_desvio_in_topdown164); + desvio(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 12 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:96:9: logica + { + pushFollow(FOLLOW_logica_in_topdown175); + logica(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 13 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:97:9: pilha + { + pushFollow(FOLLOW_pilha_in_topdown185); + pilha(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 14 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:98:9: label + { + pushFollow(FOLLOW_label_in_topdown195); + label(); + + state._fsp--; + if (state.failed) return ; + } break; @@ -288,7 +362,11 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } + } catch (LabelException e) { + System.out.println(e.getMessage()); + } catch (AcessoIndevidoMemoriaException e) { + System.out.println(e.getMessage()); + } finally { // do for sure before leaving @@ -300,21 +378,21 @@ public final void topdown() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:92:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,16,FOLLOW_16_in_entraNaClasse115); if (state.failed) return ; + match(input,23,FOLLOW_23_in_entraNaClasse220); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse119); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse224); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:28: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:28: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -330,7 +408,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_4==UP) ) { int LA2_5 = input.LA(5); - if ( ((LA2_5 >= EXTENDS && LA2_5 <= 79)) ) { + if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 86)) ) { alt2=1; } } @@ -339,12 +417,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:29: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse123); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse228); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse127); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse232); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -392,19 +470,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:109:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:9: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:9: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel167); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel272); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel169); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel274); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -436,17 +514,17 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,33,FOLLOW_33_in_getfield208); if (state.failed) return ; + match(input,40,FOLLOW_40_in_getfield313); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -488,17 +566,17 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,79,FOLLOW_79_in_putfield258); if (state.failed) return ; + match(input,86,FOLLOW_86_in_putfield363); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -540,7 +618,7 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:1: invokespecial : ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:1: invokespecial : ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -548,10 +626,10 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:5: ( ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:7: ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:5: ( ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:7: ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) { - match(input,65,FOLLOW_65_in_invokespecial308); if (state.failed) return ; + match(input,72,FOLLOW_72_in_invokespecial413); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -594,24 +672,495 @@ public final void invokespecial() throws RecognitionException { } // $ANTLR end "invokespecial" + + + // $ANTLR start "aritmetica" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:1: aritmetica : ^( ARITMETICA operacao= . ) ; + public final void aritmetica() throws RecognitionException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:148:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:148:7: ^( ARITMETICA operacao= . ) + { + match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica468); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.escreverOpcode(operacao.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "aritmetica" + + + + // $ANTLR start "load" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:154:1: load : ^( LOAD operacao= . ) ; + public final void load() throws RecognitionException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:5: ^( LOAD operacao= . ) + { + match(input,LOAD,FOLLOW_LOAD_in_load502); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.escreverOpcode(operacao.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "load" + + + + // $ANTLR start "loadint" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:1: loadint : ^( LOAD operacao= . operando= . ) ; + public final void loadint() throws RecognitionException, LabelException { + BytecodesAST operacao=null; + BytecodesAST operando=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:162:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:162:7: ^( LOAD operacao= . operando= . ) + { + match(input,LOAD,FOLLOW_LOAD_in_loadint531); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + operando=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.escreverOpcode(operacao.token, operando.token); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "loadint" + + + + // $ANTLR start "store" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:1: store : ^( STORE operacao= . ) ; + public final void store() throws RecognitionException, AcessoIndevidoMemoriaException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:6: ^( STORE operacao= . ) + { + match(input,STORE,FOLLOW_STORE_in_store574); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.verificarAumentoMemoriaGlobal(operacao.token); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "store" + + + + // $ANTLR start "storeint" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:1: storeint : ^( STORE operacao= . operando= . ) ; + public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { + BytecodesAST operacao=null; + BytecodesAST operando=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:7: ^( STORE operacao= . operando= . ) + { + match(input,STORE,FOLLOW_STORE_in_storeint603); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + operando=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.verificarAumentoMemoriaGlobal(operacao.token, operando.token); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "storeint" + + + + // $ANTLR start "desvio" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:182:1: desvio : ^( DESVIO operacao= . operando= . ) ; + public final void desvio() throws RecognitionException, LabelException { + BytecodesAST operacao=null; + BytecodesAST operando=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:183:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:183:7: ^( DESVIO operacao= . operando= . ) + { + match(input,DESVIO,FOLLOW_DESVIO_in_desvio644); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + operando=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.escreverOpcode(operacao.token, operando.token); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "desvio" + + + + // $ANTLR start "logica" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: logica : ^( LOGICA operacao= . ) ; + public final void logica() throws RecognitionException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:7: ^( LOGICA operacao= . ) + { + match(input,LOGICA,FOLLOW_LOGICA_in_logica685); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.escreverOpcode(operacao.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "logica" + + + + // $ANTLR start "pilha" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:1: pilha : ^( PILHA operacao= . ) ; + public final void pilha() throws RecognitionException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:197:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:197:6: ^( PILHA operacao= . ) + { + match(input,PILHA,FOLLOW_PILHA_in_pilha719); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.escreverOpcode(operacao.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "pilha" + + + + // $ANTLR start "label" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:1: label : ^( LABEL operacao= . ) ; + public final void label() throws RecognitionException, LabelException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:6: ^( LABEL operacao= . ) + { + match(input,LABEL,FOLLOW_LABEL_in_label747); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + assembler.definirLabel(operacao.token); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "label" + // Delegated rules + protected DFA1 dfa1 = new DFA1(this); + static final String DFA1_eotS = + "\33\uffff"; + static final String DFA1_eofS = + "\33\uffff"; + static final String DFA1_minS = + "\1\4\6\uffff\2\2\4\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; + static final String DFA1_maxS = + "\1\126\6\uffff\2\2\4\uffff\5\126\2\uffff\1\126\2\uffff\4\126"; + static final String DFA1_acceptS = + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\2\uffff\1\13\1\14\1\15\1\16\5\uffff"+ + "\1\7\1\10\1\uffff\1\11\1\12\4\uffff"; + static final String DFA1_specialS = + "\33\uffff}>"; + static final String[] DFA1_transitionS = { + "\1\6\1\11\1\uffff\1\2\4\uffff\1\14\1\7\1\12\3\uffff\1\13\1\10"+ + "\3\uffff\1\1\20\uffff\1\3\37\uffff\1\5\15\uffff\1\4", + "", + "", + "", + "", + "", + "", + "\1\15", + "\1\16", + "", + "", + "", + "", + "\123\17", + "\123\20", + "\1\21\1\22\123\23", + "\1\24\1\25\123\26", + "\123\27", + "", + "", + "\123\30", + "", + "", + "\1\31\123\27", + "\1\32\123\30", + "\1\22\123\23", + "\1\25\123\26" + }; + + static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); + static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS); + static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS); + static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS); + static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS); + static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS); + static final short[][] DFA1_transition; + + static { + int numStates = DFA1_transitionS.length; + DFA1_transition = new short[numStates][]; + for (int i=0; i Date: Fri, 6 Jul 2012 19:05:41 -0300 Subject: [PATCH 37/79] commit --- .../principal/Interpretador.class | Bin 12095 -> 12096 bytes .../ufpb/iged/interpretador/gramaticas/Def.g | 2 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 4 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 18 +++--- .../ufpb/iged/interpretador/parser/Def.java | 4 +- .../ufpb/iged/interpretador/parser/Ref.java | 10 +-- .../principal/Interpretador.java | 4 +- .../iged/interpretador/principal/Objeto.java | 59 ++++++++++++++++++ .../symboltable/classes/EscopoGlobal.java | 7 +++ .../symboltable/classes/Simbolo.java | 8 +++ 11 files changed, 96 insertions(+), 22 deletions(-) create mode 100644 src/br/ufpb/iged/interpretador/principal/Objeto.java diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 05b6c9d65c9fdf76b0afcb20836c75cc08269f1a..d9f2614669dcd4dd1a4f6883de5d55510be3cf92 100644 GIT binary patch delta 15 XcmdlVcOY)VWDX`apUqP^R;vL3HHQWJ delta 14 WcmX>Qw?A&fWDZ8w%~Ls6s{sHoDFv constantPool = simboloClasse.getConstantPool(); + + memoriaLocal = new Object[constantPool.size()]; + + int i; + + for (i = 0; i < constantPool.size(); i++) { + + String nomeTipo = constantPool.get(i).getTipo().obterNome(); + + if(nomeTipo.equals("I")) + + memoriaLocal[i] = new Integer(0); + + else if (nomeTipo.startsWith("L")) + + memoriaLocal[i] = new Integer(0); + + + } + + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Object[] getMemoriaLocal() { + return memoriaLocal; + } + + public void setMemoriaLocal(Object[] memoriaLocal) { + this.memoriaLocal = memoriaLocal; + } + + + +} diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java index 3dadb2e..e6fea05 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java @@ -1,5 +1,10 @@ package br.ufpb.iged.interpretador.symboltable.classes; +import java.util.ArrayList; +import java.util.List; + +import br.ufpb.iged.interpretador.principal.Objeto; + public class EscopoGlobal extends EscopoBase { public static final int TAMANHO_INICIAL_PILHA_OPERANDOS = 100; @@ -16,6 +21,8 @@ public class EscopoGlobal extends EscopoBase { public int sp = -1; + public List heap = new ArrayList(); + public EscopoGlobal() { super(null); } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java index 9275152..f9469b2 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java @@ -34,4 +34,12 @@ public static String stripBrackets(String s) { return s.substring(1,s.length()-1); } + public Tipo getTipo() { + return tipo; + } + + public void setTipo(Tipo tipo) { + this.tipo = tipo; + } + } From 05249ef45f9df97caaa102688a5d1546150b1d42 Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sat, 7 Jul 2012 12:27:39 -0300 Subject: [PATCH 38/79] commit --- .../principal/Interpretador.class | Bin 12096 -> 13464 bytes .../ufpb/iged/interpretador/gramaticas/Ref.g | 7 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 16 +- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 135 +++--- .../principal/Interpretador.java | 425 ++++++++++++------ .../symboltable/classes/EscopoGlobal.java | 17 - 8 files changed, 378 insertions(+), 226 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index d9f2614669dcd4dd1a4f6883de5d55510be3cf92..c5f91776f231acc64af07072f612df999c1e365d 100644 GIT binary patch literal 13464 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 literal 12096 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 E25`}!ga7~l diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index ad91c75..6860d44 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -46,10 +46,9 @@ options { assembler.getConstantPool().add(simboloClasse); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); - - + /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ + SimboloVariavel simboloVariavel = (SimboloVariavel) simboloClasse.resolver(nomeCampo); diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 5c7e969..73086d2 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-06 18:34:39 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-07 12:05:51 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 7c10d3e..60f35ba 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-06 18:34:38 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-07 12:05:50 package br.ufpb.iged.interpretador.parser; @@ -878,7 +878,7 @@ else if ( (LA6_0==25) ) { // AST REWRITE - // elements: ID, membroClasse, superClasse, 23 + // elements: 23, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1133,7 +1133,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo31.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1272,7 +1272,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo32.getTree()); // AST REWRITE - // elements: tipo, 40, b + // elements: b, tipo, 40 // token labels: // rule labels: retval, b // token list labels: @@ -1328,7 +1328,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo33.getTree()); // AST REWRITE - // elements: 86, b, tipo + // elements: tipo, 86, b // token labels: // rule labels: retval, b // token list labels: @@ -1377,7 +1377,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(c.getTree()); // AST REWRITE - // elements: 72, c + // elements: c, 72 // token labels: // rule labels: retval, c // token list labels: @@ -2171,7 +2171,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -2519,7 +2519,7 @@ else if ( (LA13_0==35) ) { // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index fb22690..2583817 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-06 18:34:40 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-07 12:05:52 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index ede3536..d129999 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-06 18:34:40 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-07 12:05:52 package br.ufpb.iged.interpretador.parser; @@ -158,10 +158,9 @@ private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) assembler.getConstantPool().add(simboloClasse); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); - - + /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ + SimboloVariavel simboloVariavel = (SimboloVariavel) simboloClasse.resolver(nomeCampo); @@ -195,15 +194,15 @@ private void chamarConstrutorDefault(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:83:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ) int alt1=14; alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:9: entraNaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:9: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown61); entraNaClasse(); @@ -214,7 +213,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:86:9: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:9: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown71); declaracaoVariavel(); @@ -225,7 +224,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:87:9: getfield + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:86:9: getfield { pushFollow(FOLLOW_getfield_in_topdown81); getfield(); @@ -236,7 +235,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:88:9: putfield + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:87:9: putfield { pushFollow(FOLLOW_putfield_in_topdown91); putfield(); @@ -247,7 +246,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:89:9: invokespecial + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:88:9: invokespecial { pushFollow(FOLLOW_invokespecial_in_topdown101); invokespecial(); @@ -258,7 +257,7 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:90:9: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:89:9: aritmetica { pushFollow(FOLLOW_aritmetica_in_topdown111); aritmetica(); @@ -269,7 +268,7 @@ public final void topdown() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:91:9: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:90:9: load { pushFollow(FOLLOW_load_in_topdown122); load(); @@ -280,7 +279,7 @@ public final void topdown() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:92:9: loadint + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:91:9: loadint { pushFollow(FOLLOW_loadint_in_topdown132); loadint(); @@ -291,7 +290,7 @@ public final void topdown() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:9: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:92:9: store { pushFollow(FOLLOW_store_in_topdown143); store(); @@ -302,7 +301,7 @@ public final void topdown() throws RecognitionException { } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:94:9: storeint + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:9: storeint { pushFollow(FOLLOW_storeint_in_topdown153); storeint(); @@ -313,7 +312,7 @@ public final void topdown() throws RecognitionException { } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:95:9: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:94:9: desvio { pushFollow(FOLLOW_desvio_in_topdown164); desvio(); @@ -324,7 +323,7 @@ public final void topdown() throws RecognitionException { } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:96:9: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:95:9: logica { pushFollow(FOLLOW_logica_in_topdown175); logica(); @@ -335,7 +334,7 @@ public final void topdown() throws RecognitionException { } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:97:9: pilha + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:96:9: pilha { pushFollow(FOLLOW_pilha_in_topdown185); pilha(); @@ -346,7 +345,7 @@ public final void topdown() throws RecognitionException { } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:98:9: label + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:97:9: label { pushFollow(FOLLOW_label_in_topdown195); label(); @@ -362,9 +361,9 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } catch (AcessoIndevidoMemoriaException e) { + } catch (LabelException e) { System.out.println(e.getMessage()); - } catch (LabelException e) { + } catch (AcessoIndevidoMemoriaException e) { System.out.println(e.getMessage()); } @@ -378,21 +377,21 @@ public final void topdown() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { match(input,23,FOLLOW_23_in_entraNaClasse220); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse224); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:28: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:28: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -417,7 +416,7 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:29: ^( EXTENDS sup= ID ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse228); if (state.failed) return ; @@ -470,14 +469,14 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:9: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( FIELD_DECL ID tip= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel272); if (state.failed) return ; @@ -514,15 +513,15 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:7: ^( 'getfield' classe= . . campo= . tipo= . ) { match(input,40,FOLLOW_40_in_getfield313); if (state.failed) return ; @@ -566,15 +565,15 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:7: ^( 'putfield' classe= . . campo= . tipo= . ) { match(input,86,FOLLOW_86_in_putfield363); if (state.failed) return ; @@ -618,7 +617,7 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:1: invokespecial : ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:139:1: invokespecial : ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -626,8 +625,8 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:5: ( ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:7: ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:5: ( ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:7: ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) { match(input,72,FOLLOW_72_in_invokespecial413); if (state.failed) return ; @@ -675,13 +674,13 @@ public final void invokespecial() throws RecognitionException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:148:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:148:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:7: ^( ARITMETICA operacao= . ) { match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica468); if (state.failed) return ; @@ -715,13 +714,13 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:154:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:154:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:154:5: ^( LOAD operacao= . ) { match(input,LOAD,FOLLOW_LOAD_in_load502); if (state.failed) return ; @@ -755,14 +754,14 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:160:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:162:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:162:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:7: ^( LOAD operacao= . operando= . ) { match(input,LOAD,FOLLOW_LOAD_in_loadint531); if (state.failed) return ; @@ -800,13 +799,13 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:1: store : ^( STORE operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: store : ^( STORE operacao= . ) ; public final void store() throws RecognitionException, AcessoIndevidoMemoriaException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:6: ^( STORE operacao= . ) { match(input,STORE,FOLLOW_STORE_in_store574); if (state.failed) return ; @@ -840,14 +839,14 @@ public final void store() throws RecognitionException, AcessoIndevidoMemoriaExce // $ANTLR start "storeint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:1: storeint : ^( STORE operacao= . operando= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:174:1: storeint : ^( STORE operacao= . operando= . ) ; public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:7: ^( STORE operacao= . operando= . ) { match(input,STORE,FOLLOW_STORE_in_storeint603); if (state.failed) return ; @@ -885,14 +884,14 @@ public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaE // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:182:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:183:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:183:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:182:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:182:7: ^( DESVIO operacao= . operando= . ) { match(input,DESVIO,FOLLOW_DESVIO_in_desvio644); if (state.failed) return ; @@ -930,13 +929,13 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:188:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:7: ^( LOGICA operacao= . ) { match(input,LOGICA,FOLLOW_LOGICA_in_logica685); if (state.failed) return ; @@ -970,13 +969,13 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:195:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:197:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:197:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:6: ^( PILHA operacao= . ) { match(input,PILHA,FOLLOW_PILHA_in_pilha719); if (state.failed) return ; @@ -1010,13 +1009,13 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:202:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:6: ^( LABEL operacao= . ) { match(input,LABEL,FOLLOW_LABEL_in_label747); if (state.failed) return ; @@ -1125,7 +1124,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "84:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label );"; + return "83:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label );"; } } diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 2792480..3aeca3a 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -2,6 +2,8 @@ import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Scanner; import org.antlr.runtime.ANTLRFileStream; @@ -26,17 +28,32 @@ import br.ufpb.iged.interpretador.symboltable.classes.BytecodesErrorNode; import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; import br.ufpb.iged.interpretador.parser.Def; import br.ufpb.iged.interpretador.parser.Ref; public class Interpretador { + public static final int TAMANHO_INICIAL_PILHA = 100; + + public int sp = -1; + + public int ip = 0; + + private static int tamanhoCodigo; + + public Object[] pilha = new Object[TAMANHO_INICIAL_PILHA]; + public static TabelaSimbolos tabelaSimbolos; static EscopoGlobal global; private static StringBuffer entrada; + + public List heap = new ArrayList(); + + private static BytecodeAssembler assembler; public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { @@ -118,11 +135,11 @@ public static void carregar() tabelaSimbolos = new TabelaSimbolos(); - BytecodeAssembler assembler = carregarClasses(); + assembler = carregarClasses(); global = tabelaSimbolos.global; global.codigo = assembler.obterCodigoMaquina(); - global.tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); + tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; //Para testes @@ -164,12 +181,14 @@ protected void cpu() { short opcode; boolean desvio; + + Objeto objeto; - while (global.ip < global.tamanhoCodigo) { + while (ip < tamanhoCodigo) { desvio = false; - opcode = global.codigo[global.ip]; + opcode = global.codigo[ip]; if (opcode < 0) @@ -184,33 +203,33 @@ protected void cpu() { break; case Definicao.POP: - global.sp-- ; + sp-- ; break; case Definicao.POP2: - global.sp -= 2 ; + sp -= 2 ; break; // operaçőes aritméticas case Definicao.INEG: { - op1 = (Integer) global.pilhaOperandos[global.sp]; + op1 = (Integer) pilha[sp]; - global.pilhaOperandos[global.sp] = 0 - op1; + pilha[sp] = 0 - op1; }; break; case Definicao.IADD: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; - global.pilhaOperandos[global.sp] = op1 + op2; + pilha[sp] = op1 + op2; } ; @@ -218,13 +237,13 @@ protected void cpu() { case Definicao.ISUB: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; - global.pilhaOperandos[global.sp] = op1 - op2; + pilha[sp] = op1 - op2; } ; @@ -232,13 +251,13 @@ protected void cpu() { case Definicao.IMUL: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; - global.pilhaOperandos[global.sp] = op1 * op2; + pilha[sp] = op1 * op2; } ; @@ -246,13 +265,13 @@ protected void cpu() { case Definicao.IDIV: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; - global.pilhaOperandos[global.sp] = op1 / op2; + pilha[sp] = op1 / op2; } ; @@ -260,13 +279,13 @@ protected void cpu() { case Definicao.IREM: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; - global.pilhaOperandos[global.sp] = op1 % op2; + pilha[sp] = op1 % op2; } ; @@ -274,9 +293,9 @@ protected void cpu() { case Definicao.IINC: { - op1 = (Integer) global.pilhaOperandos[global.sp]; + op1 = (Integer) pilha[sp]; - global.pilhaOperandos[global.sp] = ++op1; + pilha[sp] = ++op1; } ; @@ -286,9 +305,9 @@ protected void cpu() { case Definicao.ICONST0: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; } ; @@ -296,9 +315,9 @@ protected void cpu() { case Definicao.ICONST1: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = 1; + pilha[sp] = 1; } ; @@ -306,9 +325,9 @@ protected void cpu() { case Definicao.ICONST2: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = 2; + pilha[sp] = 2; } ; @@ -316,9 +335,9 @@ protected void cpu() { case Definicao.ICONST3: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = 3; + pilha[sp] = 3; } ; @@ -326,9 +345,9 @@ protected void cpu() { case Definicao.ICONST4: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = 4; + pilha[sp] = 4; } ; @@ -336,9 +355,9 @@ protected void cpu() { case Definicao.ICONST5: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = 5; + pilha[sp] = 5; } ; @@ -346,9 +365,9 @@ protected void cpu() { case Definicao.ICONSTM1: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = -1; + pilha[sp] = -1; } ; @@ -356,11 +375,11 @@ protected void cpu() { case Definicao.LDC: { - global.sp++; + sp++; op1 = obterOperandoInteiro(); - global.pilhaOperandos[global.sp] = op1; + pilha[sp] = op1; } ; @@ -370,9 +389,9 @@ protected void cpu() { case Definicao.ILOAD0: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = global.memoriaGlobal[0]; + pilha[sp] = global.memoriaGlobal[0]; } ; @@ -380,9 +399,9 @@ protected void cpu() { case Definicao.ILOAD1: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = global.memoriaGlobal[1]; + pilha[sp] = global.memoriaGlobal[1]; } ; @@ -390,9 +409,9 @@ protected void cpu() { case Definicao.ILOAD2: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = global.memoriaGlobal[2]; + pilha[sp] = global.memoriaGlobal[2]; } ; @@ -400,9 +419,9 @@ protected void cpu() { case Definicao.ILOAD3: { - global.sp++; + sp++; - global.pilhaOperandos[global.sp] = global.memoriaGlobal[3]; + pilha[sp] = global.memoriaGlobal[3]; } ; @@ -410,23 +429,76 @@ protected void cpu() { case Definicao.ILOAD: { - global.sp++; + sp++; op1 = obterOperandoInteiro(); - global.pilhaOperandos[global.sp] = global.memoriaGlobal[op1]; + pilha[sp] = global.memoriaGlobal[op1]; + + } + ; + break; + + case Definicao.ALOAD0: { + + sp++; + + pilha[sp] = global.memoriaGlobal[0]; } ; break; + + case Definicao.ALOAD1: { + + sp++; + + pilha[sp] = global.memoriaGlobal[1]; + + } + ; + break; + + case Definicao.ALOAD2: { + + sp++; + + pilha[sp] = global.memoriaGlobal[2]; + + } + ; + break; + + case Definicao.ALOAD3: { + + sp++; + + pilha[sp] = global.memoriaGlobal[3]; + + } + ; + break; + + case Definicao.ALOAD: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilha[sp] = global.memoriaGlobal[op1]; + + } + ; + break; + // operaçőes de store case Definicao.ISTORE0: { - global.memoriaGlobal[0] = global.pilhaOperandos[global.sp]; + global.memoriaGlobal[0] = pilha[sp]; - global.sp--; + sp--; } ; @@ -434,9 +506,9 @@ protected void cpu() { case Definicao.ISTORE1: { - global.memoriaGlobal[1] = global.pilhaOperandos[global.sp]; + global.memoriaGlobal[1] = pilha[sp]; - global.sp--; + sp--; } ; @@ -444,9 +516,9 @@ protected void cpu() { case Definicao.ISTORE2: { - global.memoriaGlobal[2] = global.pilhaOperandos[global.sp]; + global.memoriaGlobal[2] = pilha[sp]; - global.sp--; + sp--; } ; @@ -454,9 +526,9 @@ protected void cpu() { case Definicao.ISTORE3: { - global.memoriaGlobal[3] = global.pilhaOperandos[global.sp]; + global.memoriaGlobal[3] = pilha[sp]; - global.sp--; + sp--; } ; @@ -466,9 +538,61 @@ protected void cpu() { op1 = obterOperandoInteiro(); - global.memoriaGlobal[op1] = global.pilhaOperandos[global.sp]; + global.memoriaGlobal[op1] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE0: { + + global.memoriaGlobal[0] = pilha[sp]; - global.sp--; + sp--; + + } + ; + break; + + case Definicao.ASTORE1: { + + global.memoriaGlobal[1] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE2: { + + global.memoriaGlobal[2] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE3: { + + global.memoriaGlobal[3] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE: { + + op1 = obterOperandoInteiro(); + + global.memoriaGlobal[op1] = pilha[sp]; + + sp--; } ; @@ -478,13 +602,13 @@ protected void cpu() { case Definicao.IAND: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; op1 = op1 & op2; - global.sp--; + sp--; } ; @@ -492,13 +616,13 @@ protected void cpu() { case Definicao.IOR: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; op1 = op1 | op2; - global.sp--; + sp--; } ; @@ -506,13 +630,13 @@ protected void cpu() { case Definicao.IXOR: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; op1 = op1 ^ op2; - global.sp--; + sp--; } ; @@ -522,7 +646,7 @@ protected void cpu() { case Definicao.IFEQ: { - op1 = (Integer) global.pilhaOperandos[global.sp]; + op1 = (Integer) pilha[sp]; if (op1 == 0) { @@ -532,7 +656,7 @@ protected void cpu() { } else - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; } ; @@ -540,7 +664,7 @@ protected void cpu() { case Definicao.IFNE: { - op1 = (Integer) global.pilhaOperandos[global.sp]; + op1 = (Integer) pilha[sp]; if (op1 != 0) { @@ -550,7 +674,7 @@ protected void cpu() { } else - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; } ; @@ -558,7 +682,7 @@ protected void cpu() { case Definicao.IFLT: { - op1 = (Integer) global.pilhaOperandos[global.sp]; + op1 = (Integer) pilha[sp]; if (op1 > 0) { @@ -568,7 +692,7 @@ protected void cpu() { } else - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; } ; @@ -576,7 +700,7 @@ protected void cpu() { case Definicao.IFGE: { - op1 = (Integer) global.pilhaOperandos[global.sp]; + op1 = (Integer) pilha[sp]; if (op1 >= 0) { @@ -586,7 +710,7 @@ protected void cpu() { } else - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; } ; @@ -594,7 +718,7 @@ protected void cpu() { case Definicao.IFGT: { - op1 = (Integer) global.pilhaOperandos[global.sp]; + op1 = (Integer) pilha[sp]; if (op1 > 0) { @@ -604,7 +728,7 @@ protected void cpu() { } else - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; } ; @@ -612,7 +736,7 @@ protected void cpu() { case Definicao.IFLE: { - op1 = (Integer) global.pilhaOperandos[global.sp]; + op1 = (Integer) pilha[sp]; if (op1 <= 0) { @@ -622,7 +746,7 @@ protected void cpu() { } else - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; } ; @@ -630,11 +754,11 @@ protected void cpu() { case Definicao.IF_ICMPEQ: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; if (op1 == op2) { @@ -644,9 +768,9 @@ protected void cpu() { } else { - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; - global.ip += 4; + ip += 4; } @@ -656,11 +780,11 @@ protected void cpu() { case Definicao.IF_ICMPNE: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; if (op1 != op2) { @@ -670,9 +794,9 @@ protected void cpu() { } else { - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; - global.ip += 4; + ip += 4; } @@ -682,11 +806,11 @@ protected void cpu() { case Definicao.IF_ICMPLT: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; if (op1 < op2) { @@ -696,9 +820,9 @@ protected void cpu() { } else { - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; - global.ip += 4; + ip += 4; } @@ -708,11 +832,11 @@ protected void cpu() { case Definicao.IF_ICMPGE: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; if (op1 >= op2) { @@ -722,9 +846,9 @@ protected void cpu() { } else { - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; - global.ip += 4; + ip += 4; } @@ -734,11 +858,11 @@ protected void cpu() { case Definicao.IF_ICMPGT: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; if (op1 > op2) { @@ -748,9 +872,9 @@ protected void cpu() { } else { - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; - global.ip += 4; + ip += 4; } @@ -760,11 +884,11 @@ protected void cpu() { case Definicao.IF_ICMPLE: { - op1 = (Integer) global.pilhaOperandos[global.sp - 1]; + op1 = (Integer) pilha[sp - 1]; - op2 = (Integer) global.pilhaOperandos[global.sp]; + op2 = (Integer) pilha[sp]; - global.sp--; + sp--; if (op1 <= op2) { @@ -774,9 +898,9 @@ protected void cpu() { } else { - global.pilhaOperandos[global.sp] = 0; + pilha[sp] = 0; - global.ip += 4; + ip += 4; } @@ -789,7 +913,7 @@ protected void cpu() { op1 = obterOperandoInteiro(); - global.ip = op1; + ip = op1; desvio = true; @@ -797,11 +921,58 @@ protected void cpu() { ; break; + //manipulaçăo de objetos + + case Definicao.INVOKESPECIAL: { + + op1 = obterOperandoInteiro(); + + SimboloClasse simboloClasse = assembler.getConstantPool().get(op1); + + objeto = new Objeto(simboloClasse); + + heap.add(objeto); + + pilha[sp] = heap.indexOf(objeto); + + } + + ; + break; + + case Definicao.GETFIELD: { + + objeto = heap.get((int) pilha[sp]); + + op1 = obterOperandoInteiro(); + + sp++; + + pilha[sp] = objeto.getMemoriaLocal()[op1]; + + } + + ; + break; + + case Definicao.PUTFIELD: { + + objeto = heap.get((int) pilha[sp - 1]); + + op1 = obterOperandoInteiro(); + + objeto.getMemoriaLocal()[op1] = pilha[sp]; + + } + + ; + break; + } if (!desvio) - global.ip++; + ip++; // Para testes exibirTela(); @@ -812,19 +983,19 @@ protected void cpu() { protected void desviar() { - global.pilhaOperandos[global.sp] = 1; + pilha[sp] = 1; int op = obterOperandoInteiro(); - global.ip = op; + ip = op; } protected int obterOperandoInteiro() { - int op = BytecodeAssembler.obterInteiro(global.codigo, global.ip + 1); + int op = BytecodeAssembler.obterInteiro(global.codigo, ip + 1); - global.ip += 4; + ip += 4; return op; @@ -841,9 +1012,9 @@ protected void exibirTela() { int i; - System.out.println("IP: " + global.ip); + System.out.println("IP: " + ip); - System.out.println("SP: " + global.sp); + System.out.println("SP: " + sp); System.out.print("Memória do código: "); @@ -863,9 +1034,9 @@ protected void exibirTela() { System.out.print("Pilha: "); - for (i = 0; i < global.pilhaOperandos.length; i++) + for (i = 0; i < pilha.length; i++) - System.out.print(global.pilhaOperandos[i] + " "); + System.out.print(pilha[i] + " "); System.out.print("\n\n"); diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java index e6fea05..1044a89 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java @@ -1,27 +1,10 @@ package br.ufpb.iged.interpretador.symboltable.classes; -import java.util.ArrayList; -import java.util.List; - -import br.ufpb.iged.interpretador.principal.Objeto; - public class EscopoGlobal extends EscopoBase { - - public static final int TAMANHO_INICIAL_PILHA_OPERANDOS = 100; - - public int ip = 0; public byte[] codigo; - public int tamanhoCodigo; - public Object[] memoriaGlobal; - - public Object[] pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA_OPERANDOS]; - - public int sp = -1; - - public List heap = new ArrayList(); public EscopoGlobal() { super(null); From 16207409fbc3fd6ece73580a190ae9a1e7853a3e Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Thu, 12 Jul 2012 01:23:41 -0300 Subject: [PATCH 39/79] commit --- Main.class | 22 +- .../asm/Definicao$Instrucao.class | Bin 841 -> 841 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4403 -> 4589 bytes .../principal/Interpretador.class | Bin 13464 -> 13868 bytes instropcode_set.txt | 7 +- .../bytecodeassembler/asm/Definicao.java | 9 +- .../iged/interpretador/gramaticas/Assembler.g | 18 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 26 +- .../interpretador/parser/Assembler.tokens | 120 +- .../interpretador/parser/AssemblerLexer.java | 850 ++++++----- .../interpretador/parser/AssemblerParser.java | 1337 ++++++++++------- .../ufpb/iged/interpretador/parser/Def.java | 31 +- .../ufpb/iged/interpretador/parser/Def.tokens | 120 +- .../ufpb/iged/interpretador/parser/Ref.java | 374 +++-- .../ufpb/iged/interpretador/parser/Ref.tokens | 120 +- .../principal/Interpretador.java | 49 +- .../iged/interpretador/principal/Objeto.java | 2 +- .../interpretador/principal/Referencia.java | 21 + 18 files changed, 1807 insertions(+), 1299 deletions(-) create mode 100644 src/br/ufpb/iged/interpretador/principal/Referencia.java diff --git a/Main.class b/Main.class index 35b4aa7..3306ecd 100755 --- a/Main.class +++ b/Main.class @@ -18,18 +18,23 @@ iconst_2 irem istore 4 -L1: iload_1 + iconst_m1 + istore 5 +L1: iload 5 + iinc + istore 5 + iload_1 iload_2 iadd - istore 5 + istore 6 iload 4 - iload 5 + iload 6 pop iinc - istore 6 + istore 7 ldc 14 ineg - istore 7 + istore 8 ldc 25 ldc 34 if_icmpgt L1 @@ -47,13 +52,18 @@ L2: ineg if_icmplt L2 ldc 23 ldc -23 + iload 5 + iadd iadd ifeq L1 - aload_0 + new Teste + dup invokespecial Teste/() V ldc 5 putfield Teste/abc I iconst_3 putfield Teste/xyz I getfield Teste/abc I + astore 9 + aconst_null \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class index e7dfb1e0a724835ca1ac466b4e2c6adf0a3f4935..69ae911c341e55a134960086ae8a08db361fa29a 100644 GIT binary patch delta 43 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 delta 5266 zcmbVQ30zfG8vnj??*1OAAnSW5;6i{xfJ-Q#XqJQ=bq)Bd*8O= zl|>Cd`1zgv0FZ(!Wnc)&#=$VB@nNuPyubfS}iKcFPPSQwDDk2h%L*^$+lw;>}hNdN)US6v5#>+sJ-!8aH=sdILD7oC^fq` z%#KgsaN|mFlYo&3LROy+ks4HEz8#*y0;6e2l&z4ebE#UvA|pG*89L66#n1;qEG?s< z(qKB4n4>ho&_lu-OhiCZP9o40oMLPZX(dfFy`~$Vg(L^hq+a$ZDjt((+C7E9G*anC zbZFO@rxDx};~JOTQF$dL1!XF9#<_N!hx18WRDuv>ycrrq<1rf-nB%d~s0@veX5+JV ze9kx?+819mqQd$M%MdbY@RE$mumD`XbAMQW(JwF!1dsu2Ln~}KMr6}SJ&IOIDt+mL zr|2I85J&)={>Bjsg!2hS!nK4F;ci0Ga8s`k))5Af)bt7>+(j5hDY=Bx8W+F@&%+VOzp>gx?Z&ptctgcBFDSVH)8w!gRtNgc*b% z5@wUG5n&I)M8ckg^o3r8<^>I)3q4IZknl@tA4bqcQ|}?4un*xF!siK#36Bz%(iLii zlPTdl!dYarjc_*MIl?(K7-s%F(sd_XMdfaUbanD1!Zn2J3122WLHG*cEy7o6@Zza` zpkY-85w0WLPDo;vh95Q%QZHd6;TwdT05qB&s34@PfNDZh|2APAVJ%@{h1x4_P&LE~ z`ENsPg_`Lqi0(q0xN2xk-`L~>7+r(S)8eXicLjIk@4}ee3N^rz2>JD*UnHg1+gn

8|WC?#2iHo^0LWEOw`d|DJS*v(%L>pS7~@9JP6f z4!2~td*DXUyjWtstAjb}^4hyYf;(yc-4W3p8D}Il3raP!bMDs2ZcY2UBZ@l`Vd%|* znw#0&M^l6Gv?kos?e4X7!I;=Q0uR&wP)SJ6t&q05sA$q>O&TkiwD=w_JK&{isC1Z; zESFP!y_28UNxb595GT)d#hDl4Y1$PC zqzoq$u2PCq6+W%c31Y%-N{aAXb4N~)E=;qA;@+#-;hdG`?yqZy3El1|W%e&p?zQ90 zo#9zb=?>={-yD9wK)1Sg9^6Qx&hvv{U0NSh*FtKi9QBt{tt^dRLEWloh$RsqWj?4fU>g(aOEk z6^~kxd%OCYuJhbQr;#4bif3BN+T)j6Fud8Jm{hOw`&q3pGZmf5OudLiV zUE!E(6URAd;>?`@`#hWa#TracCv~UcGnNewmRLX3CADaS@@t zNFKifwygi5vWm`e4lU_f$RD|Z@u50Ba~#3%;W*xc6Lk8YWEz}ee(*OI0cTh%_<|+E zKUgMQU^#G+4S`E+EL>*e;X9_of7lD~16u_@vaRqFtAwA~K6-*YhKzlR0=tL``x@=+ z2KsXwHsnDVz?)+*kHK)BicX$|O?WQqk$faJ=LPrxpMr6GJ|^&m*oH5~c6=>%;2SW5 zZ^O=fH$KewVt0NRALFO67e9@C`FZTe>u@0d4u|re@CiZ2k%ES!g~m8Wh{9r_IhG0u zSSEDDav=j}2;K2Xp(oA~2ICxI7%mhF@mXP-j?W7-aj7sLmkG;prLYQL7B=FmLN#s> zYH^Ej5Vr~^ahvc7z9pQ)9l`~y7Ovth;lH?7WVl}p#6w~*9u_0?yfF)8*l8t~`=0lFQh0ayeTp&tNae zvzZ|;W-H_+Y>m8*y&`X7YvrwMy}X@mmiMsNg&9x`WDYo_wiiyFMN>t0UxHG<-^s>JWu_Rk5X^& z0`)d8)I>f`3*h55C!eG>)$C`D$$*U#BhN8?@DYleU>}(W>}X?LGd6c7#`Hm-tStj=!y45PlkB=mm-PdmHnGjsDZ?5bgQ^%%Qh1q&?rt z!*nm(=Vdo6##6m)3Iw_{gr3mQ!!AH$HxqS>Ne!WiyH2VE-J)k8%3Ue@ds(KJm02nB zIxjo!Wj8IR#Ch33FIxy*-OkGA7E_ZgrmG7qs-Cr&mgHsA!RAiZ7C{#etD~PETw`QQ zu&$Htj!x`LXEC*lm#y%! z%NElzEd~L$PMC}R=uR)$vavrt4uZBBTH*j42%>fgqTS3E3qc({m8&5E2jO74f&zLE zeH|X>w;>cn8IX$fy@98g-5!;0exk$NpPkE+reeS&87cm^sVQ`6LBI!%$drhznB4lq z(mZvTdFs$>yg&!gXW+-rLID2)Lil-e6+*E2!vHntT7;yMaEQ4G$*r~VOiEnk0Wlt(>)HQhN6Ic7Px?SC zt$}wABl;|2dvNxk9XO{JpXu4E1{V$RJ~hB#nknGdXt1wC8-4@Q`7P)| zOJx+{L;+!jz+tW+!b19y=QYAwL4^Z?4c-_0;JDBL>Ikn3jgSd}DAGx76M`{V2t|hw w?wXxQ&sQ3 ^(FIELD_DECL ID tipo) manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) - | a = 'invokespecial' c = chamadaMetodo -> ^('invokespecial' $c) + | a = 'invokespecial' c = classe '/' d = chamadaMetodo + -> ^('invokespecial' $c $d) + | a = 'new'c = classe -> ^('new' $c) ; tipo : INT | VOID | tipoRef ; @@ -96,6 +98,7 @@ load : ( a = 'iconst_m1' | a = 'iconst_3' | a = 'iconst_4' | a = 'iconst_5' + | a = 'aconst_null' | a = 'iload_0' | a = 'iload_1' | a = 'iload_2' @@ -122,7 +125,7 @@ store : ( a = 'istore_0' | a = 'astore_0' | a = 'astore_1' | a = 'astore_2' - | a = 'astore_3' + | a = 'astore_3' ) -> ^(STORE $a) ; @@ -159,18 +162,25 @@ desvio : ( a = 'ifeq' b = ID pilha : ( a = 'pop' | a = 'pop2' + | a = 'dup' ) -> ^(PILHA $a) ; -chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] +classe returns [List classe] @init { $classe = new ArrayList(); + } + : (cls += ID '/')* (cls += ID) {$classe = $cls;} + ; + +chamadaMetodo returns [String nome, String params, String tipoRetorno] + @init { $nome = ""; $params = ""; $tipoRetorno = ""; } - : (cls += ID '/')+ n = INIT par = '()' tip = VOID {$classe = $cls; + : n = INIT par = '()' tip = VOID { $nome = $n.text; $params = $par.text; $tipoRetorno = $tip.text; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 6860d44..5925dc1 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -77,6 +77,22 @@ options { BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); } + + private void newClass(String nomeClasse) { + + assembler.escreverOpcode("new"); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + } } @@ -86,6 +102,7 @@ topdown | getfield | putfield | invokespecial + | novaClasse | aritmetica | load | loadint @@ -137,12 +154,19 @@ putfield ; invokespecial - : ^('invokespecial' classe = . . metodo = . args = . tipo = .) + : ^('invokespecial' classe = . metodo = . args = . tipo = .) { chamarConstrutorDefault($classe.getText()); } ; +novaClasse + : ^('new' classe = .) + { + newClass($classe.getText()); + } + ; + aritmetica : ^(ARITMETICA operacao = .) { diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index 5a92c95..0941094 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -63,6 +63,9 @@ T__83=83 T__84=84 T__85=85 T__86=86 +T__87=87 +T__88=88 +T__89=89 ARITMETICA=4 DESVIO=5 EXTENDS=6 @@ -89,60 +92,63 @@ WS=21 '/'=27 ':'=28 'L'=29 -'aload'=30 -'aload_0'=31 -'aload_1'=32 -'aload_2'=33 -'aload_3'=34 -'astore'=35 -'astore_0'=36 -'astore_1'=37 -'astore_2'=38 -'astore_3'=39 -'getfield'=40 -'goto'=41 -'iadd'=42 -'iand'=43 -'iconst_0'=44 -'iconst_1'=45 -'iconst_2'=46 -'iconst_3'=47 -'iconst_4'=48 -'iconst_5'=49 -'iconst_m1'=50 -'idiv'=51 -'if_icmpeq'=52 -'if_icmpge'=53 -'if_icmpgt'=54 -'if_icmple'=55 -'if_icmplt'=56 -'if_icmpne'=57 -'ifeq'=58 -'ifge'=59 -'ifgt'=60 -'ifle'=61 -'iflt'=62 -'ifne'=63 -'iinc'=64 -'iload'=65 -'iload_0'=66 -'iload_1'=67 -'iload_2'=68 -'iload_3'=69 -'imul'=70 -'ineg'=71 -'invokespecial'=72 -'ior'=73 -'irem'=74 -'istore'=75 -'istore_0'=76 -'istore_1'=77 -'istore_2'=78 -'istore_3'=79 -'isub'=80 -'ixor'=81 -'ldc'=82 -'nop'=83 -'pop'=84 -'pop2'=85 -'putfield'=86 +'aconst_null'=30 +'aload'=31 +'aload_0'=32 +'aload_1'=33 +'aload_2'=34 +'aload_3'=35 +'astore'=36 +'astore_0'=37 +'astore_1'=38 +'astore_2'=39 +'astore_3'=40 +'dup'=41 +'getfield'=42 +'goto'=43 +'iadd'=44 +'iand'=45 +'iconst_0'=46 +'iconst_1'=47 +'iconst_2'=48 +'iconst_3'=49 +'iconst_4'=50 +'iconst_5'=51 +'iconst_m1'=52 +'idiv'=53 +'if_icmpeq'=54 +'if_icmpge'=55 +'if_icmpgt'=56 +'if_icmple'=57 +'if_icmplt'=58 +'if_icmpne'=59 +'ifeq'=60 +'ifge'=61 +'ifgt'=62 +'ifle'=63 +'iflt'=64 +'ifne'=65 +'iinc'=66 +'iload'=67 +'iload_0'=68 +'iload_1'=69 +'iload_2'=70 +'iload_3'=71 +'imul'=72 +'ineg'=73 +'invokespecial'=74 +'ior'=75 +'irem'=76 +'istore'=77 +'istore_0'=78 +'istore_1'=79 +'istore_2'=80 +'istore_3'=81 +'isub'=82 +'ixor'=83 +'ldc'=84 +'new'=85 +'nop'=86 +'pop'=87 +'pop2'=88 +'putfield'=89 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 73086d2..333bd52 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-07 12:05:51 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-12 00:25:26 package br.ufpb.iged.interpretador.parser; @@ -76,6 +76,9 @@ public class AssemblerLexer extends Lexer { public static final int T__84=84; public static final int T__85=85; public static final int T__86=86; + public static final int T__87=87; + public static final int T__88=88; + public static final int T__89=89; public static final int ARITMETICA=4; public static final int DESVIO=5; public static final int EXTENDS=6; @@ -293,10 +296,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aconst_null' { - match("aload"); + match("aconst_null"); @@ -316,10 +319,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload' { - match("aload_0"); + match("aload"); @@ -339,10 +342,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_0' { - match("aload_1"); + match("aload_0"); @@ -362,10 +365,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_1' { - match("aload_2"); + match("aload_1"); @@ -385,10 +388,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_2' { - match("aload_3"); + match("aload_2"); @@ -408,10 +411,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'astore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'astore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_3' { - match("astore"); + match("aload_3"); @@ -431,10 +434,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore' { - match("astore_0"); + match("astore"); @@ -454,10 +457,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_0' { - match("astore_1"); + match("astore_0"); @@ -477,10 +480,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_1' { - match("astore_2"); + match("astore_1"); @@ -500,10 +503,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_2' { - match("astore_3"); + match("astore_2"); @@ -523,10 +526,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore_3' { - match("getfield"); + match("astore_3"); @@ -546,10 +549,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'goto' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'dup' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'dup' { - match("goto"); + match("dup"); @@ -569,10 +572,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'getfield' { - match("iadd"); + match("getfield"); @@ -592,10 +595,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'goto' { - match("iand"); + match("goto"); @@ -615,10 +618,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iadd' { - match("iconst_0"); + match("iadd"); @@ -638,10 +641,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iand' { - match("iconst_1"); + match("iand"); @@ -661,10 +664,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_0' { - match("iconst_2"); + match("iconst_0"); @@ -684,10 +687,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_1' { - match("iconst_3"); + match("iconst_1"); @@ -707,10 +710,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_2' { - match("iconst_4"); + match("iconst_2"); @@ -730,10 +733,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_3' { - match("iconst_5"); + match("iconst_3"); @@ -753,10 +756,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_4' { - match("iconst_m1"); + match("iconst_4"); @@ -776,10 +779,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_5' { - match("idiv"); + match("iconst_5"); @@ -799,10 +802,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'if_icmpeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_m1' { - match("if_icmpeq"); + match("iconst_m1"); @@ -822,10 +825,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'if_icmpge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'idiv' { - match("if_icmpge"); + match("idiv"); @@ -845,10 +848,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpeq' { - match("if_icmpgt"); + match("if_icmpeq"); @@ -868,10 +871,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmple' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmpge' { - match("if_icmple"); + match("if_icmpge"); @@ -891,10 +894,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmplt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmpgt' { - match("if_icmplt"); + match("if_icmpgt"); @@ -914,10 +917,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmpne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmple' { - match("if_icmpne"); + match("if_icmple"); @@ -937,10 +940,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'ifeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmplt' { - match("ifeq"); + match("if_icmplt"); @@ -960,10 +963,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'ifge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpne' { - match("ifge"); + match("if_icmpne"); @@ -983,10 +986,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifeq' { - match("ifgt"); + match("ifeq"); @@ -1006,10 +1009,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifle' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifge' { - match("ifle"); + match("ifge"); @@ -1029,10 +1032,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'iflt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ifgt' { - match("iflt"); + match("ifgt"); @@ -1052,10 +1055,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifle' { - match("ifne"); + match("ifle"); @@ -1075,10 +1078,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iflt' { - match("iinc"); + match("iflt"); @@ -1098,10 +1101,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifne' { - match("iload"); + match("ifne"); @@ -1121,10 +1124,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iinc' { - match("iload_0"); + match("iinc"); @@ -1144,10 +1147,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload' { - match("iload_1"); + match("iload"); @@ -1167,10 +1170,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_0' { - match("iload_2"); + match("iload_0"); @@ -1190,10 +1193,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_1' { - match("iload_3"); + match("iload_1"); @@ -1213,10 +1216,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iload_2' { - match("imul"); + match("iload_2"); @@ -1236,10 +1239,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload_3' { - match("ineg"); + match("iload_3"); @@ -1259,10 +1262,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'imul' { - match("invokespecial"); + match("imul"); @@ -1282,10 +1285,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ineg' { - match("ior"); + match("ineg"); @@ -1305,10 +1308,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'invokespecial' { - match("irem"); + match("invokespecial"); @@ -1328,10 +1331,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'istore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'ior' { - match("istore"); + match("ior"); @@ -1351,10 +1354,10 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'irem' { - match("istore_0"); + match("irem"); @@ -1374,10 +1377,10 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore' { - match("istore_1"); + match("istore"); @@ -1397,10 +1400,10 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_0' { - match("istore_2"); + match("istore_0"); @@ -1420,10 +1423,10 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_1' { - match("istore_3"); + match("istore_1"); @@ -1443,10 +1446,10 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'istore_2' { - match("isub"); + match("istore_2"); @@ -1466,10 +1469,10 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'istore_3' { - match("ixor"); + match("istore_3"); @@ -1489,10 +1492,10 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'ldc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'isub' { - match("ldc"); + match("isub"); @@ -1512,10 +1515,10 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'ixor' { - match("nop"); + match("ixor"); @@ -1535,10 +1538,10 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ldc' { - match("pop"); + match("ldc"); @@ -1558,10 +1561,10 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'new' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'new' { - match("pop2"); + match("new"); @@ -1581,10 +1584,10 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'putfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'nop' { - match("putfield"); + match("nop"); @@ -1599,13 +1602,82 @@ public final void mT__86() throws RecognitionException { } // $ANTLR end "T__86" + // $ANTLR start "T__87" + public final void mT__87() throws RecognitionException { + try { + int _type = T__87; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'pop' + { + match("pop"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__87" + + // $ANTLR start "T__88" + public final void mT__88() throws RecognitionException { + try { + int _type = T__88; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'pop2' + { + match("pop2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__88" + + // $ANTLR start "T__89" + public final void mT__89() throws RecognitionException { + try { + int _type = T__89; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'putfield' + { + match("putfield"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__89" + // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:8: '' { match(""); @@ -1627,8 +1699,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:7: 'I' { match('I'); @@ -1648,8 +1720,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:8: 'V' { match('V'); @@ -1669,10 +1741,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1691,7 +1763,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:9: 'null' { match("null"); @@ -1700,7 +1772,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:18: 'NULL' { match("NULL"); @@ -1728,10 +1800,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1740,7 +1812,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:11: '-' { match('-'); @@ -1750,7 +1822,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1805,8 +1877,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1818,7 +1890,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1868,8 +1940,8 @@ public final void mNOVA_LINHA() throws RecognitionException { try { int _type = NOVA_LINHA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:12: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:14: '\\n' { match('\n'); @@ -1889,8 +1961,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -1916,8 +1988,8 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) - int alt5=73; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) + int alt5=76; alt5 = dfa5.predict(input); switch (alt5) { case 1 : @@ -2441,63 +2513,87 @@ public void mTokens() throws RecognitionException { } break; case 66 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: INIT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__87 { - mINIT(); + mT__87(); } break; case 67 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:405: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__88 { - mINT(); + mT__88(); } break; case 68 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:409: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__89 { - mVOID(); + mT__89(); } break; case 69 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:414: NULL + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: INIT { - mNULL(); + mINIT(); } break; case 70 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:419: INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:423: INT { - mINTEIRO(); + mINT(); } break; case 71 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:427: ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:427: VOID { - mID(); + mVOID(); } break; case 72 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:432: NULL { - mNOVA_LINHA(); + mNULL(); } break; case 73 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:441: WS + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:437: INTEIRO + { + mINTEIRO(); + + + } + break; + case 74 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:445: ID + { + mID(); + + + } + break; + case 75 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:448: NOVA_LINHA + { + mNOVA_LINHA(); + + + } + break; + case 76 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:459: WS { mWS(); @@ -2512,79 +2608,83 @@ public void mTokens() throws RecognitionException { protected DFA5 dfa5 = new DFA5(this); static final String DFA5_eotS = - "\5\uffff\1\30\6\21\1\uffff\1\56\1\57\1\21\11\uffff\25\21\2\uffff"+ - "\11\21\1\uffff\11\21\1\142\4\21\1\147\1\150\1\21\1\153\5\21\1\161"+ - "\1\162\1\163\1\21\1\165\1\uffff\1\167\1\170\1\171\1\172\1\173\1"+ - "\174\1\175\1\21\1\177\1\u0080\1\21\1\uffff\1\u0082\1\21\1\u0084"+ - "\1\u0085\2\uffff\1\u0086\1\u0087\1\uffff\1\21\1\u0086\1\u008a\2"+ - "\21\3\uffff\1\21\11\uffff\1\u0090\2\uffff\1\21\1\uffff\1\21\4\uffff"+ - "\1\21\2\uffff\1\u0099\2\21\3\uffff\1\21\1\u00a3\1\21\6\uffff\1\21"+ - "\6\uffff\1\21\2\uffff\1\21\4\uffff\1\u00bb\13\uffff\1\21\4\uffff"+ - "\1\u00c1\5\uffff\1\21\1\uffff\3\21\1\u00c6\1\uffff"; + "\5\uffff\1\31\7\22\1\uffff\1\62\1\63\1\22\11\uffff\30\22\2\uffff"+ + "\4\22\1\130\6\22\1\uffff\11\22\1\153\4\22\1\160\1\161\1\162\1\22"+ + "\1\165\5\22\1\uffff\1\22\1\174\1\175\1\176\1\22\1\u0080\1\uffff"+ + "\1\u0082\1\u0083\1\u0084\1\u0085\1\u0086\1\u0087\1\u0088\1\22\1"+ + "\u008a\1\u008b\1\22\1\uffff\1\u008d\1\22\1\u008f\1\u0090\3\uffff"+ + "\1\u0091\1\u0092\1\uffff\1\22\1\u0091\1\22\1\u0096\2\22\3\uffff"+ + "\1\22\11\uffff\1\u009c\2\uffff\1\22\1\uffff\1\22\4\uffff\2\22\2"+ + "\uffff\1\u00a6\2\22\3\uffff\1\22\1\u00b0\1\22\7\uffff\1\22\6\uffff"+ + "\1\22\2\uffff\1\22\4\uffff\1\u00c8\13\uffff\1\22\4\uffff\1\u00ce"+ + "\5\uffff\1\22\1\uffff\3\22\1\u00d3\1\uffff"; static final String DFA5_eofS = - "\u00c7\uffff"; + "\u00d4\uffff"; static final String DFA5_minS = - "\1\11\1\uffff\1\143\2\uffff\1\56\1\154\1\145\1\141\1\144\2\157\1"+ - "\uffff\2\56\1\125\11\uffff\1\157\3\164\1\144\1\157\1\151\1\137\1"+ - "\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\160\1\154"+ - "\1\160\1\164\2\uffff\1\114\1\141\1\157\1\146\1\157\2\144\1\156\1"+ - "\166\1\151\1\161\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155"+ - "\1\157\1\142\1\162\2\56\1\154\1\56\1\146\1\114\1\144\1\162\1\151"+ - "\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff\1\56\1\162"+ - "\2\56\2\uffff\2\56\1\uffff\1\151\2\56\2\145\3\uffff\1\164\1\uffff"+ + "\1\11\1\uffff\1\143\2\uffff\1\56\1\143\1\165\1\145\1\141\1\144\1"+ + "\145\1\157\1\uffff\2\56\1\125\11\uffff\2\157\1\164\1\160\2\164\1"+ + "\144\1\157\1\151\1\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164"+ + "\1\157\1\143\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1\156\1"+ + "\141\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161\3\145"+ + "\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162\3\56"+ + "\1\154\1\56\1\146\1\114\1\163\1\144\1\162\1\uffff\1\151\3\56\1\163"+ + "\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff\1\56\1\162\2\56\3\uffff"+ + "\2\56\1\uffff\1\151\1\56\1\164\1\56\2\145\3\uffff\1\164\1\uffff"+ "\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1"+ - "\60\1\uffff\1\56\1\154\1\137\1\160\1\60\1\uffff\1\163\1\56\1\154"+ - "\4\uffff\1\60\1\uffff\1\144\1\60\1\145\4\uffff\1\160\1\60\1\uffff"+ - "\1\144\4\uffff\1\56\10\uffff\2\145\1\uffff\1\145\4\uffff\1\56\5"+ - "\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56\1\uffff"; + "\137\1\60\1\uffff\1\56\1\154\1\137\1\160\1\60\1\uffff\1\163\1\56"+ + "\1\154\5\uffff\1\60\1\uffff\1\144\1\60\1\145\4\uffff\1\160\1\60"+ + "\1\uffff\1\144\4\uffff\1\56\10\uffff\2\145\1\uffff\1\145\4\uffff"+ + "\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56\1\uffff"; static final String DFA5_maxS = - "\1\172\1\uffff\1\163\2\uffff\1\172\1\163\1\157\1\170\1\144\2\165"+ - "\1\uffff\2\172\1\125\11\uffff\1\157\3\164\1\156\1\157\1\151\2\156"+ - "\1\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143\1\160\1\154\1\160"+ - "\1\164\2\uffff\1\114\1\141\1\157\1\146\1\157\2\144\1\156\1\166\1"+ - "\151\1\161\2\164\1\145\1\143\1\141\1\154\1\147\1\157\1\172\1\155"+ - "\1\157\1\142\1\162\2\172\1\154\1\172\1\146\1\114\1\144\1\162\1\151"+ - "\3\172\1\163\1\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1\172\1"+ - "\162\2\172\2\uffff\2\172\1\uffff\1\151\2\172\2\145\3\uffff\1\164"+ - "\1\uffff\1\155\7\uffff\1\172\2\uffff\1\145\1\uffff\1\145\4\uffff"+ - "\1\145\1\63\1\uffff\1\172\1\154\1\137\1\160\1\63\1\uffff\1\163\1"+ - "\172\1\154\4\uffff\1\63\1\uffff\1\144\1\155\1\156\4\uffff\1\160"+ - "\1\63\1\uffff\1\144\4\uffff\1\172\10\uffff\2\164\1\uffff\1\145\4"+ - "\uffff\1\172\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; + "\1\172\1\uffff\1\163\2\uffff\1\172\1\163\1\165\1\157\1\170\1\144"+ + "\2\165\1\uffff\2\172\1\125\11\uffff\2\157\1\164\1\160\2\164\1\156"+ + "\1\157\1\151\2\156\1\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143"+ + "\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1\156\1\141\1\157\1"+ + "\172\1\146\1\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145\1\143"+ + "\1\141\1\154\1\147\1\157\1\172\1\155\1\157\1\142\1\162\3\172\1\154"+ + "\1\172\1\146\1\114\1\163\1\144\1\162\1\uffff\1\151\3\172\1\163\1"+ + "\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1\172\1\162\2\172\3\uffff"+ + "\2\172\1\uffff\1\151\1\172\1\164\1\172\2\145\3\uffff\1\164\1\uffff"+ + "\1\155\7\uffff\1\172\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1"+ + "\137\1\63\1\uffff\1\172\1\154\1\137\1\160\1\63\1\uffff\1\163\1\172"+ + "\1\154\5\uffff\1\63\1\uffff\1\144\1\155\1\156\4\uffff\1\160\1\63"+ + "\1\uffff\1\144\4\uffff\1\172\10\uffff\2\164\1\uffff\1\145\4\uffff"+ + "\1\172\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; static final String DFA5_acceptS = - "\1\uffff\1\1\1\uffff\1\6\1\7\7\uffff\1\102\3\uffff\1\106\1\107\1"+ - "\110\1\111\1\2\1\3\1\4\1\5\1\10\25\uffff\1\103\1\104\62\uffff\1"+ - "\64\4\uffff\1\75\1\76\2\uffff\1\77\5\uffff\1\24\1\25\1\26\1\uffff"+ - "\1\36\1\uffff\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\uffff\1\61\1"+ - "\62\1\uffff\1\65\1\uffff\1\73\1\74\1\105\1\100\2\uffff\1\11\5\uffff"+ - "\1\54\3\uffff\1\12\1\13\1\14\1\15\1\uffff\1\16\3\uffff\1\55\1\56"+ - "\1\57\1\60\2\uffff\1\66\1\uffff\1\17\1\20\1\21\1\22\1\uffff\1\27"+ - "\1\30\1\31\1\32\1\33\1\34\1\35\1\37\2\uffff\1\44\1\uffff\1\67\1"+ - "\70\1\71\1\72\1\uffff\1\23\1\40\1\41\1\42\1\43\1\uffff\1\101\4\uffff"+ - "\1\63"; + "\1\uffff\1\1\1\uffff\1\6\1\7\10\uffff\1\105\3\uffff\1\111\1\112"+ + "\1\113\1\114\1\2\1\3\1\4\1\5\1\10\30\uffff\1\106\1\107\44\uffff"+ + "\1\24\22\uffff\1\66\4\uffff\1\77\1\100\1\101\2\uffff\1\102\6\uffff"+ + "\1\26\1\27\1\30\1\uffff\1\40\1\uffff\1\47\1\50\1\51\1\52\1\53\1"+ + "\54\1\55\1\uffff\1\63\1\64\1\uffff\1\67\1\uffff\1\75\1\76\1\110"+ + "\1\103\3\uffff\1\12\5\uffff\1\56\3\uffff\1\11\1\13\1\14\1\15\1\16"+ + "\1\uffff\1\17\3\uffff\1\57\1\60\1\61\1\62\2\uffff\1\70\1\uffff\1"+ + "\20\1\21\1\22\1\23\1\uffff\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1"+ + "\41\2\uffff\1\46\1\uffff\1\71\1\72\1\73\1\74\1\uffff\1\25\1\42\1"+ + "\43\1\44\1\45\1\uffff\1\104\4\uffff\1\65"; static final String DFA5_specialS = - "\u00c7\uffff}>"; + "\u00d4\uffff}>"; static final String[] DFA5_transitionS = { - "\1\23\1\22\2\uffff\1\23\22\uffff\1\23\7\uffff\1\1\4\uffff\1"+ - "\20\1\2\1\3\12\20\1\4\1\uffff\1\14\4\uffff\10\21\1\15\2\21\1"+ - "\5\1\21\1\17\7\21\1\16\4\21\6\uffff\1\6\5\21\1\7\1\21\1\10\2"+ - "\21\1\11\1\21\1\12\1\21\1\13\12\21", - "", - "\1\24\2\uffff\1\25\6\uffff\1\26\5\uffff\1\27", - "", - "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\31\6\uffff\1\32", - "\1\33\11\uffff\1\34", - "\1\35\1\uffff\1\36\1\37\1\uffff\1\40\2\uffff\1\41\2\uffff\1"+ - "\42\1\43\1\44\1\45\2\uffff\1\46\1\47\4\uffff\1\50", - "\1\51", - "\1\52\5\uffff\1\53", - "\1\54\5\uffff\1\55", - "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\60", + "\1\24\1\23\2\uffff\1\24\22\uffff\1\24\7\uffff\1\1\4\uffff\1"+ + "\21\1\2\1\3\12\21\1\4\1\uffff\1\15\4\uffff\10\22\1\16\2\22\1"+ + "\5\1\22\1\20\7\22\1\17\4\22\6\uffff\1\6\2\22\1\7\2\22\1\10\1"+ + "\22\1\11\2\22\1\12\1\22\1\13\1\22\1\14\12\22", + "", + "\1\25\2\uffff\1\26\6\uffff\1\27\5\uffff\1\30", + "", + "", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\32\10\uffff\1\33\6\uffff\1\34", + "\1\35", + "\1\36\11\uffff\1\37", + "\1\40\1\uffff\1\41\1\42\1\uffff\1\43\2\uffff\1\44\2\uffff\1"+ + "\45\1\46\1\47\1\50\2\uffff\1\51\1\52\4\uffff\1\53", + "\1\54", + "\1\55\11\uffff\1\56\5\uffff\1\57", + "\1\60\5\uffff\1\61", + "", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\64", "", "", "", @@ -2594,29 +2694,23 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\61", - "\1\62", - "\1\63", - "\1\64", - "\1\65\11\uffff\1\66", + "\1\65", + "\1\66", "\1\67", "\1\70", - "\1\71\5\uffff\1\72\1\uffff\1\73\4\uffff\1\74\1\uffff\1\75", + "\1\71", + "\1\72", + "\1\73\11\uffff\1\74", + "\1\75", "\1\76", - "\1\77", - "\1\100", - "\1\101\20\uffff\1\102", - "\1\103", + "\1\77\5\uffff\1\100\1\uffff\1\101\4\uffff\1\102\1\uffff\1\103", "\1\104", - "\1\105\1\106", - "\1\107", - "\1\110", + "\1\105", + "\1\106", + "\1\107\20\uffff\1\110", "\1\111", "\1\112", - "\1\113", - "\1\114", - "", - "", + "\1\113\1\114", "\1\115", "\1\116", "\1\117", @@ -2624,127 +2718,144 @@ public void mTokens() throws RecognitionException { "\1\121", "\1\122", "\1\123", + "", + "", "\1\124", "\1\125", "\1\126", "\1\127", - "\1\130\16\uffff\1\131", - "\1\132\16\uffff\1\133", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\131", + "\1\132", + "\1\133", "\1\134", "\1\135", "\1\136", "\1\137", "\1\140", - "\1\141", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\143", - "\1\144", + "\1\141\16\uffff\1\142", + "\1\143\16\uffff\1\144", "\1\145", "\1\146", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\147", + "\1\150", "\1\151", - "\1\21\1\uffff\2\21\1\152\7\21\7\uffff\32\21\6\uffff\32\21", + "\1\152", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\154", "\1\155", "\1\156", "\1\157", - "\1\160", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\164", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\163", + "\1\22\1\uffff\2\22\1\164\7\22\7\uffff\32\22\6\uffff\32\22", "\1\166", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\176", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\167", + "\1\170", + "\1\171", + "\1\172", + "", + "\1\173", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\177", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\u0081", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u0089", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u008c", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\u0083", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u008e", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", - "\1\u0088", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u0089\1\uffff\32"+ - "\21", - "\1\u008b", - "\1\u008c", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", + "\1\u0093", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u0094", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u0095\1\uffff\32"+ + "\22", + "\1\u0097", + "\1\u0098", "", "", - "\1\u008d", "", - "\1\u008e", + "\1\u0099", "", + "\1\u009a", "", "", "", "", "", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u008f\1\uffff\32"+ - "\21", "", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u009b\1\uffff\32"+ + "\22", "", - "\1\u0091", "", - "\1\u0092", + "\1\u009d", "", + "\1\u009e", "", "", "", - "\1\u0093", - "\1\u0094\1\u0095\1\u0096\1\u0097", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u0098\1\uffff\32"+ - "\21", - "\1\u009a", - "\1\u009b", - "\1\u009c", - "\1\u009d\1\u009e\1\u009f\1\u00a0", + "\1\u009f", + "\1\u00a0", + "\1\u00a1\1\u00a2\1\u00a3\1\u00a4", "", - "\1\u00a1", - "\1\21\1\uffff\12\21\7\uffff\32\21\4\uffff\1\u00a2\1\uffff\32"+ - "\21", - "\1\u00a4", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00a5\1\uffff\32"+ + "\22", + "\1\u00a7", + "\1\u00a8", + "\1\u00a9", + "\1\u00aa\1\u00ab\1\u00ac\1\u00ad", "", + "\1\u00ae", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00af\1\uffff\32"+ + "\22", + "\1\u00b1", "", "", "", - "\1\u00a5\1\u00a6\1\u00a7\1\u00a8", "", - "\1\u00a9", - "\1\u00aa\1\u00ab\1\u00ac\1\u00ad\1\u00ae\1\u00af\67\uffff\1"+ - "\u00b0", - "\1\u00b1\1\uffff\1\u00b2\4\uffff\1\u00b3\1\uffff\1\u00b4", "", + "\1\u00b2\1\u00b3\1\u00b4\1\u00b5", + "", + "\1\u00b6", + "\1\u00b7\1\u00b8\1\u00b9\1\u00ba\1\u00bb\1\u00bc\67\uffff\1"+ + "\u00bd", + "\1\u00be\1\uffff\1\u00bf\4\uffff\1\u00c0\1\uffff\1\u00c1", "", "", "", - "\1\u00b5", - "\1\u00b6\1\u00b7\1\u00b8\1\u00b9", "", - "\1\u00ba", + "\1\u00c2", + "\1\u00c3\1\u00c4\1\u00c5\1\u00c6", "", + "\1\u00c7", "", "", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", "", "", @@ -2752,26 +2863,27 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00bc\16\uffff\1\u00bd", - "\1\u00be\16\uffff\1\u00bf", "", - "\1\u00c0", + "\1\u00c9\16\uffff\1\u00ca", + "\1\u00cb\16\uffff\1\u00cc", "", + "\1\u00cd", "", "", "", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", "", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", "", "", "", - "\1\u00c2", "", - "\1\u00c3", - "\1\u00c4", - "\1\u00c5", - "\1\21\1\uffff\12\21\7\uffff\32\21\6\uffff\32\21", + "\1\u00cf", + "", + "\1\u00d0", + "\1\u00d1", + "\1\u00d2", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "" }; @@ -2805,7 +2917,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 60f35ba..facc9e1 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-07 12:05:50 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-12 00:25:25 package br.ufpb.iged.interpretador.parser; @@ -18,7 +18,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; @@ -87,6 +87,9 @@ public abstract class AssemblerParser extends Parser { public static final int T__84=84; public static final int T__85=85; public static final int T__86=86; + public static final int T__87=87; + public static final int T__88=88; + public static final int T__89=89; public static final int ARITMETICA=4; public static final int DESVIO=5; public static final int EXTENDS=6; @@ -174,7 +177,7 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==23||LA1_0==25||(LA1_0 >= 30 && LA1_0 <= 86)) ) { + if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==23||LA1_0==25||(LA1_0 >= 30 && LA1_0 <= 89)) ) { alt1=1; } @@ -260,7 +263,7 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio if ( (LA2_0==ID) ) { alt2=1; } - else if ( (LA2_0==NOVA_LINHA||LA2_0==23||LA2_0==25||(LA2_0 >= 30 && LA2_0 <= 86)) ) { + else if ( (LA2_0==NOVA_LINHA||LA2_0==23||LA2_0==25||(LA2_0 >= 30 && LA2_0 <= 89)) ) { alt2=2; } else { @@ -477,71 +480,71 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce alt3=1; } break; - case 40: - case 72: - case 86: + case 42: + case 74: + case 85: + case 89: { alt3=2; } break; - case 42: - case 51: - case 64: - case 70: - case 71: - case 74: - case 80: + case 44: + case 53: + case 66: + case 72: + case 73: + case 76: + case 82: { alt3=3; } break; - case 31: + case 30: case 32: case 33: case 34: - case 44: - case 45: + case 35: case 46: case 47: case 48: case 49: case 50: - case 66: - case 67: + case 51: + case 52: case 68: case 69: + case 70: + case 71: { alt3=4; } break; - case 30: - case 65: - case 82: + case 31: + case 67: + case 84: { alt3=5; } break; - case 36: case 37: case 38: case 39: - case 76: - case 77: + case 40: case 78: case 79: + case 80: + case 81: { alt3=6; } break; - case 35: - case 75: + case 36: + case 77: { alt3=7; } break; - case 41: - case 52: - case 53: + case 43: case 54: case 55: case 56: @@ -552,24 +555,27 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce case 61: case 62: case 63: + case 64: + case 65: { alt3=8; } break; - case 43: - case 73: - case 81: + case 45: + case 75: + case 83: { alt3=9; } break; - case 84: - case 85: + case 41: + case 87: + case 88: { alt3=10; } break; - case 83: + case 86: { alt3=11; } @@ -700,7 +706,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce case 11 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: 'nop' { - string_literal16=(Token)match(input,83,FOLLOW_83_in_instrucao365); + string_literal16=(Token)match(input,86,FOLLOW_86_in_instrucao365); string_literal16_tree = (BytecodesAST)adaptor.create(string_literal16) ; @@ -878,7 +884,7 @@ else if ( (LA6_0==25) ) { // AST REWRITE - // elements: 23, membroClasse, superClasse, ID + // elements: ID, membroClasse, superClasse, 23 // token labels: // rule labels: retval // token list labels: @@ -1133,7 +1139,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo31.getTree()); // AST REWRITE - // elements: ID, tipo + // elements: tipo, ID // token labels: // rule labels: retval // token list labels: @@ -1197,7 +1203,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1206,9 +1212,12 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; + Token char_literal34=null; AssemblerParser.campo_return b =null; - AssemblerParser.chamadaMetodo_return c =null; + AssemblerParser.classe_return c =null; + + AssemblerParser.chamadaMetodo_return d =null; AssemblerParser.tipo_return tipo32 =null; @@ -1216,31 +1225,40 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); - RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); - RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); + BytecodesAST char_literal34_tree=null; + RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); + RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); + RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); + RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); + RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); + RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= chamadaMetodo -> ^( 'invokespecial' $c) ) - int alt7=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + int alt7=4; switch ( input.LA(1) ) { - case 40: + case 42: { alt7=1; } break; - case 86: + case 89: { alt7=2; } break; - case 72: + case 74: { alt7=3; } break; + case 85: + { + alt7=4; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 7, 0, input); @@ -1253,8 +1271,8 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,40,FOLLOW_40_in_manipulacaoObjetos593); - stream_40.add(a); + a=(Token)match(input,42,FOLLOW_42_in_manipulacaoObjetos593); + stream_42.add(a); pushFollow(FOLLOW_campo_in_manipulacaoObjetos599); @@ -1272,7 +1290,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo32.getTree()); // AST REWRITE - // elements: b, tipo, 40 + // elements: tipo, 42, b // token labels: // rule labels: retval, b // token list labels: @@ -1289,7 +1307,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_40.nextNode() + stream_42.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1309,8 +1327,8 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,86,FOLLOW_86_in_manipulacaoObjetos639); - stream_86.add(a); + a=(Token)match(input,89,FOLLOW_89_in_manipulacaoObjetos639); + stream_89.add(a); pushFollow(FOLLOW_campo_in_manipulacaoObjetos645); @@ -1328,7 +1346,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo33.getTree()); // AST REWRITE - // elements: tipo, 86, b + // elements: 89, b, tipo // token labels: // rule labels: retval, b // token list labels: @@ -1345,7 +1363,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_86.nextNode() + stream_89.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1363,21 +1381,82 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:22: a= 'invokespecial' c= chamadaMetodo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,72,FOLLOW_72_in_manipulacaoObjetos686); - stream_72.add(a); + a=(Token)match(input,74,FOLLOW_74_in_manipulacaoObjetos686); + stream_74.add(a); + + + pushFollow(FOLLOW_classe_in_manipulacaoObjetos692); + c=classe(); + + state._fsp--; + + stream_classe.add(c.getTree()); + + char_literal34=(Token)match(input,27,FOLLOW_27_in_manipulacaoObjetos694); + stream_27.add(char_literal34); + + + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos700); + d=chamadaMetodo(); + + state._fsp--; + + stream_chamadaMetodo.add(d.getTree()); + + // AST REWRITE + // elements: c, 74, d + // token labels: + // rule labels: retval, d, c + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); + RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 77:23: -> ^( 'invokespecial' $c $d) + { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:26: ^( 'invokespecial' $c $d) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_74.nextNode() + , root_1); + + adaptor.addChild(root_1, stream_c.nextTree()); + + adaptor.addChild(root_1, stream_d.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 4 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:22: a= 'new' c= classe + { + a=(Token)match(input,85,FOLLOW_85_in_manipulacaoObjetos762); + stream_85.add(a); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos692); - c=chamadaMetodo(); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos767); + c=classe(); state._fsp--; - stream_chamadaMetodo.add(c.getTree()); + stream_classe.add(c.getTree()); // AST REWRITE - // elements: c, 72 + // elements: 85, c // token labels: // rule labels: retval, c // token list labels: @@ -1388,13 +1467,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 76:60: -> ^( 'invokespecial' $c) + // 78:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:63: ^( 'invokespecial' $c) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_72.nextNode() + stream_85.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -1440,7 +1519,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1448,16 +1527,16 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT34=null; - Token VOID35=null; - AssemblerParser.tipoRef_return tipoRef36 =null; + Token INT35=null; + Token VOID36=null; + AssemblerParser.tipoRef_return tipoRef37 =null; - BytecodesAST INT34_tree=null; - BytecodesAST VOID35_tree=null; + BytecodesAST INT35_tree=null; + BytecodesAST VOID36_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:6: ( INT | VOID | tipoRef ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:6: ( INT | VOID | tipoRef ) int alt8=3; switch ( input.LA(1) ) { case INT: @@ -1485,47 +1564,47 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT34=(Token)match(input,INT,FOLLOW_INT_in_tipo731); - INT34_tree = - (BytecodesAST)adaptor.create(INT34) + INT35=(Token)match(input,INT,FOLLOW_INT_in_tipo806); + INT35_tree = + (BytecodesAST)adaptor.create(INT35) ; - adaptor.addChild(root_0, INT34_tree); + adaptor.addChild(root_0, INT35_tree); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID35=(Token)match(input,VOID,FOLLOW_VOID_in_tipo735); - VOID35_tree = - (BytecodesAST)adaptor.create(VOID35) + VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_tipo810); + VOID36_tree = + (BytecodesAST)adaptor.create(VOID36) ; - adaptor.addChild(root_0, VOID35_tree); + adaptor.addChild(root_0, VOID36_tree); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo739); - tipoRef36=tipoRef(); + pushFollow(FOLLOW_tipoRef_in_tipo814); + tipoRef37=tipoRef(); state._fsp--; - adaptor.addChild(root_0, tipoRef36.getTree()); + adaptor.addChild(root_0, tipoRef37.getTree()); } break; @@ -1560,7 +1639,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1571,52 +1650,52 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); - RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); - RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); - RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); - RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); - RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); - RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); + RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); + RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); + RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); + RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); + RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); + RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); + RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt9=7; switch ( input.LA(1) ) { - case 42: + case 44: { alt9=1; } break; - case 80: + case 82: { alt9=2; } break; - case 70: + case 72: { alt9=3; } break; - case 51: + case 53: { alt9=4; } break; - case 74: + case 76: { alt9=5; } break; - case 64: + case 66: { alt9=6; } break; - case 71: + case 73: { alt9=7; } @@ -1631,64 +1710,64 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:19: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:19: a= 'iadd' { - a=(Token)match(input,42,FOLLOW_42_in_aritmetica757); - stream_42.add(a); + a=(Token)match(input,44,FOLLOW_44_in_aritmetica832); + stream_44.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:19: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:19: a= 'isub' { - a=(Token)match(input,80,FOLLOW_80_in_aritmetica781); - stream_80.add(a); + a=(Token)match(input,82,FOLLOW_82_in_aritmetica856); + stream_82.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:19: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:19: a= 'imul' { - a=(Token)match(input,70,FOLLOW_70_in_aritmetica805); - stream_70.add(a); + a=(Token)match(input,72,FOLLOW_72_in_aritmetica880); + stream_72.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:19: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:19: a= 'idiv' { - a=(Token)match(input,51,FOLLOW_51_in_aritmetica829); - stream_51.add(a); + a=(Token)match(input,53,FOLLOW_53_in_aritmetica904); + stream_53.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:19: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:19: a= 'irem' { - a=(Token)match(input,74,FOLLOW_74_in_aritmetica853); - stream_74.add(a); + a=(Token)match(input,76,FOLLOW_76_in_aritmetica928); + stream_76.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:19: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:19: a= 'iinc' { - a=(Token)match(input,64,FOLLOW_64_in_aritmetica877); - stream_64.add(a); + a=(Token)match(input,66,FOLLOW_66_in_aritmetica952); + stream_66.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:19: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:19: a= 'ineg' { - a=(Token)match(input,71,FOLLOW_71_in_aritmetica901); - stream_71.add(a); + a=(Token)match(input,73,FOLLOW_73_in_aritmetica976); + stream_73.add(a); } @@ -1709,9 +1788,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 89:14: -> ^( ARITMETICA $a) + // 91:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1759,7 +1838,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1770,85 +1849,86 @@ public final AssemblerParser.load_return load() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); - RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); - RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); - RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); + RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); - RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); + RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); + RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); + RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); + RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt10=15; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt10=16; switch ( input.LA(1) ) { - case 50: + case 52: { alt10=1; } break; - case 44: + case 46: { alt10=2; } break; - case 45: + case 47: { alt10=3; } break; - case 46: + case 48: { alt10=4; } break; - case 47: + case 49: { alt10=5; } break; - case 48: + case 50: { alt10=6; } break; - case 49: + case 51: { alt10=7; } break; - case 66: + case 30: { alt10=8; } break; - case 67: + case 68: { alt10=9; } break; - case 68: + case 69: { alt10=10; } break; - case 69: + case 70: { alt10=11; } break; - case 31: + case 71: { alt10=12; } @@ -1868,6 +1948,11 @@ public final AssemblerParser.load_return load() throws RecognitionException { alt10=15; } break; + case 35: + { + alt10=16; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 10, 0, input); @@ -1878,138 +1963,147 @@ public final AssemblerParser.load_return load() throws RecognitionException { switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:13: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:13: a= 'iconst_m1' { - a=(Token)match(input,50,FOLLOW_50_in_load979); - stream_50.add(a); + a=(Token)match(input,52,FOLLOW_52_in_load1054); + stream_52.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:13: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:13: a= 'iconst_0' { - a=(Token)match(input,44,FOLLOW_44_in_load997); - stream_44.add(a); + a=(Token)match(input,46,FOLLOW_46_in_load1072); + stream_46.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:13: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:13: a= 'iconst_1' { - a=(Token)match(input,45,FOLLOW_45_in_load1015); - stream_45.add(a); + a=(Token)match(input,47,FOLLOW_47_in_load1090); + stream_47.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:13: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:13: a= 'iconst_2' { - a=(Token)match(input,46,FOLLOW_46_in_load1033); - stream_46.add(a); + a=(Token)match(input,48,FOLLOW_48_in_load1108); + stream_48.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:13: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:13: a= 'iconst_3' { - a=(Token)match(input,47,FOLLOW_47_in_load1052); - stream_47.add(a); + a=(Token)match(input,49,FOLLOW_49_in_load1127); + stream_49.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:13: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'iconst_4' { - a=(Token)match(input,48,FOLLOW_48_in_load1070); - stream_48.add(a); + a=(Token)match(input,50,FOLLOW_50_in_load1145); + stream_50.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:13: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'iconst_5' { - a=(Token)match(input,49,FOLLOW_49_in_load1088); - stream_49.add(a); + a=(Token)match(input,51,FOLLOW_51_in_load1163); + stream_51.add(a); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'aconst_null' { - a=(Token)match(input,66,FOLLOW_66_in_load1106); - stream_66.add(a); + a=(Token)match(input,30,FOLLOW_30_in_load1181); + stream_30.add(a); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'iload_0' { - a=(Token)match(input,67,FOLLOW_67_in_load1125); - stream_67.add(a); + a=(Token)match(input,68,FOLLOW_68_in_load1200); + stream_68.add(a); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'iload_1' { - a=(Token)match(input,68,FOLLOW_68_in_load1143); - stream_68.add(a); + a=(Token)match(input,69,FOLLOW_69_in_load1219); + stream_69.add(a); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'iload_2' { - a=(Token)match(input,69,FOLLOW_69_in_load1161); - stream_69.add(a); + a=(Token)match(input,70,FOLLOW_70_in_load1237); + stream_70.add(a); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: a= 'iload_3' { - a=(Token)match(input,31,FOLLOW_31_in_load1179); - stream_31.add(a); + a=(Token)match(input,71,FOLLOW_71_in_load1255); + stream_71.add(a); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: a= 'aload_0' { - a=(Token)match(input,32,FOLLOW_32_in_load1197); + a=(Token)match(input,32,FOLLOW_32_in_load1273); stream_32.add(a); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:13: a= 'aload_1' { - a=(Token)match(input,33,FOLLOW_33_in_load1216); + a=(Token)match(input,33,FOLLOW_33_in_load1291); stream_33.add(a); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:13: a= 'aload_2' { - a=(Token)match(input,34,FOLLOW_34_in_load1234); + a=(Token)match(input,34,FOLLOW_34_in_load1310); stream_34.add(a); + } + break; + case 16 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:13: a= 'aload_3' + { + a=(Token)match(input,35,FOLLOW_35_in_load1328); + stream_35.add(a); + + } break; @@ -2028,9 +2122,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 108:8: -> ^( LOAD $a) + // 111:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:11: ^( LOAD $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2078,7 +2172,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -2091,29 +2185,29 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); - RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); - RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); + RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); + RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); + RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) int alt11=3; switch ( input.LA(1) ) { - case 65: + case 67: { alt11=1; } break; - case 82: + case 84: { alt11=2; } break; - case 30: + case 31: { alt11=3; } @@ -2128,39 +2222,39 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:15: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:15: a= 'iload' b= INTEIRO { - a=(Token)match(input,65,FOLLOW_65_in_loadint1288); - stream_65.add(a); + a=(Token)match(input,67,FOLLOW_67_in_loadint1382); + stream_67.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1294); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1388); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,82,FOLLOW_82_in_loadint1315); - stream_82.add(a); + a=(Token)match(input,84,FOLLOW_84_in_loadint1409); + stream_84.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1321); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1415); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,30,FOLLOW_30_in_loadint1341); - stream_30.add(a); + a=(Token)match(input,31,FOLLOW_31_in_loadint1435); + stream_31.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1347); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1441); stream_INTEIRO.add(b); @@ -2183,9 +2277,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 115:11: -> ^( LOAD $a $b) + // 118:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2235,7 +2329,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2248,56 +2342,56 @@ public final AssemblerParser.store_return store() throws RecognitionException { BytecodesAST a_tree=null; RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); - RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); - RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); + RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); + RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); + RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); - RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt12=8; switch ( input.LA(1) ) { - case 76: + case 78: { alt12=1; } break; - case 77: + case 79: { alt12=2; } break; - case 78: + case 80: { alt12=3; } break; - case 79: + case 81: { alt12=4; } break; - case 36: + case 37: { alt12=5; } break; - case 37: + case 38: { alt12=6; } break; - case 38: + case 39: { alt12=7; } break; - case 39: + case 40: { alt12=8; } @@ -2312,73 +2406,73 @@ public final AssemblerParser.store_return store() throws RecognitionException { switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'istore_0' { - a=(Token)match(input,76,FOLLOW_76_in_store1414); - stream_76.add(a); + a=(Token)match(input,78,FOLLOW_78_in_store1508); + stream_78.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'istore_1' { - a=(Token)match(input,77,FOLLOW_77_in_store1433); - stream_77.add(a); + a=(Token)match(input,79,FOLLOW_79_in_store1527); + stream_79.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'istore_2' { - a=(Token)match(input,78,FOLLOW_78_in_store1452); - stream_78.add(a); + a=(Token)match(input,80,FOLLOW_80_in_store1546); + stream_80.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'istore_3' { - a=(Token)match(input,79,FOLLOW_79_in_store1471); - stream_79.add(a); + a=(Token)match(input,81,FOLLOW_81_in_store1565); + stream_81.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'astore_0' { - a=(Token)match(input,36,FOLLOW_36_in_store1490); - stream_36.add(a); + a=(Token)match(input,37,FOLLOW_37_in_store1584); + stream_37.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'astore_1' { - a=(Token)match(input,37,FOLLOW_37_in_store1508); - stream_37.add(a); + a=(Token)match(input,38,FOLLOW_38_in_store1602); + stream_38.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'astore_2' { - a=(Token)match(input,38,FOLLOW_38_in_store1527); - stream_38.add(a); + a=(Token)match(input,39,FOLLOW_39_in_store1621); + stream_39.add(a); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'astore_3' { - a=(Token)match(input,39,FOLLOW_39_in_store1546); - stream_39.add(a); + a=(Token)match(input,40,FOLLOW_40_in_store1640); + stream_40.add(a); } @@ -2399,9 +2493,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 127:9: -> ^( STORE $a) + // 130:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:12: ^( STORE $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2449,7 +2543,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -2462,22 +2556,22 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); + RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) int alt13=2; int LA13_0 = input.LA(1); - if ( (LA13_0==75) ) { + if ( (LA13_0==77) ) { alt13=1; } - else if ( (LA13_0==35) ) { + else if ( (LA13_0==36) ) { alt13=2; } else { @@ -2489,26 +2583,26 @@ else if ( (LA13_0==35) ) { } switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:16: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:16: a= 'istore' b= INTEIRO { - a=(Token)match(input,75,FOLLOW_75_in_storeint1604); - stream_75.add(a); + a=(Token)match(input,77,FOLLOW_77_in_storeint1697); + stream_77.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1610); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1703); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,35,FOLLOW_35_in_storeint1632); - stream_35.add(a); + a=(Token)match(input,36,FOLLOW_36_in_storeint1725); + stream_36.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1638); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1731); stream_INTEIRO.add(b); @@ -2531,9 +2625,9 @@ else if ( (LA13_0==35) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 133:12: -> ^( STORE $a $b) + // 136:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2583,7 +2677,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2594,28 +2688,28 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); - RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); - RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); + RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); + RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt14=3; switch ( input.LA(1) ) { - case 43: + case 45: { alt14=1; } break; - case 73: + case 75: { alt14=2; } break; - case 81: + case 83: { alt14=3; } @@ -2630,28 +2724,28 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:14: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:14: a= 'iand' { - a=(Token)match(input,43,FOLLOW_43_in_logica1702); - stream_43.add(a); + a=(Token)match(input,45,FOLLOW_45_in_logica1795); + stream_45.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:14: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:14: a= 'ior' { - a=(Token)match(input,73,FOLLOW_73_in_logica1721); - stream_73.add(a); + a=(Token)match(input,75,FOLLOW_75_in_logica1814); + stream_75.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:14: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:14: a= 'ixor' { - a=(Token)match(input,81,FOLLOW_81_in_logica1740); - stream_81.add(a); + a=(Token)match(input,83,FOLLOW_83_in_logica1833); + stream_83.add(a); } @@ -2672,9 +2766,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 140:10: -> ^( LOGICA $a) + // 143:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2722,7 +2816,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2740,84 +2834,84 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); - RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); + RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); + RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); + RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); - RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); - RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); + RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt15=13; switch ( input.LA(1) ) { - case 58: + case 60: { alt15=1; } break; - case 63: + case 65: { alt15=2; } break; - case 62: + case 64: { alt15=3; } break; - case 59: + case 61: { alt15=4; } break; - case 60: + case 62: { alt15=5; } break; - case 61: + case 63: { alt15=6; } break; - case 52: + case 54: { alt15=7; } break; - case 57: + case 59: { alt15=8; } break; - case 56: + case 58: { alt15=9; } break; - case 53: + case 55: { alt15=10; } break; - case 54: + case 56: { alt15=11; } break; - case 55: + case 57: { alt15=12; } break; - case 41: + case 43: { alt15=13; } @@ -2832,169 +2926,169 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:14: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:14: a= 'ifeq' b= ID { - a=(Token)match(input,58,FOLLOW_58_in_desvio1793); - stream_58.add(a); + a=(Token)match(input,60,FOLLOW_60_in_desvio1886); + stream_60.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1799); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1892); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:14: a= 'ifne' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio1819); - stream_63.add(a); + a=(Token)match(input,65,FOLLOW_65_in_desvio1912); + stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1825); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1918); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:14: a= 'iflt' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio1845); - stream_62.add(a); + a=(Token)match(input,64,FOLLOW_64_in_desvio1938); + stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1851); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1944); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:14: a= 'ifge' b= ID { - a=(Token)match(input,59,FOLLOW_59_in_desvio1870); - stream_59.add(a); + a=(Token)match(input,61,FOLLOW_61_in_desvio1963); + stream_61.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1876); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1969); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: a= 'ifgt' b= ID { - a=(Token)match(input,60,FOLLOW_60_in_desvio1895); - stream_60.add(a); + a=(Token)match(input,62,FOLLOW_62_in_desvio1988); + stream_62.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1901); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1994); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'ifle' b= ID { - a=(Token)match(input,61,FOLLOW_61_in_desvio1921); - stream_61.add(a); + a=(Token)match(input,63,FOLLOW_63_in_desvio2014); + stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1927); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2020); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,52,FOLLOW_52_in_desvio1947); - stream_52.add(a); + a=(Token)match(input,54,FOLLOW_54_in_desvio2040); + stream_54.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1953); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2046); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,57,FOLLOW_57_in_desvio1973); - stream_57.add(a); + a=(Token)match(input,59,FOLLOW_59_in_desvio2066); + stream_59.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1979); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2072); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,56,FOLLOW_56_in_desvio1998); - stream_56.add(a); + a=(Token)match(input,58,FOLLOW_58_in_desvio2091); + stream_58.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2004); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2097); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,53,FOLLOW_53_in_desvio2024); - stream_53.add(a); + a=(Token)match(input,55,FOLLOW_55_in_desvio2117); + stream_55.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2030); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2123); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,54,FOLLOW_54_in_desvio2050); - stream_54.add(a); + a=(Token)match(input,56,FOLLOW_56_in_desvio2143); + stream_56.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2056); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2149); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: a= 'if_icmple' b= ID { - a=(Token)match(input,55,FOLLOW_55_in_desvio2075); - stream_55.add(a); + a=(Token)match(input,57,FOLLOW_57_in_desvio2168); + stream_57.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2081); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2174); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:14: a= 'goto' b= ID { - a=(Token)match(input,41,FOLLOW_41_in_desvio2101); - stream_41.add(a); + a=(Token)match(input,43,FOLLOW_43_in_desvio2194); + stream_43.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2107); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2200); stream_ID.add(b); @@ -3005,7 +3099,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3017,9 +3111,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 157:10: -> ^( DESVIO $a $b) + // 160:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3069,7 +3163,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:1: pilha : (a= 'pop' |a= 'pop2' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -3080,45 +3174,64 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); - RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); + RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); + RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); + RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:7: ( (a= 'pop' |a= 'pop2' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: (a= 'pop' |a= 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: (a= 'pop' |a= 'pop2' ) - int alt16=2; - int LA16_0 = input.LA(1); - - if ( (LA16_0==84) ) { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + int alt16=3; + switch ( input.LA(1) ) { + case 87: + { alt16=1; - } - else if ( (LA16_0==85) ) { + } + break; + case 88: + { alt16=2; - } - else { + } + break; + case 41: + { + alt16=3; + } + break; + default: NoViableAltException nvae = new NoViableAltException("", 16, 0, input); throw nvae; } + switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:13: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:13: a= 'pop' { - a=(Token)match(input,84,FOLLOW_84_in_pilha2172); - stream_84.add(a); + a=(Token)match(input,87,FOLLOW_87_in_pilha2265); + stream_87.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:13: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'pop2' { - a=(Token)match(input,85,FOLLOW_85_in_pilha2190); - stream_85.add(a); + a=(Token)match(input,88,FOLLOW_88_in_pilha2283); + stream_88.add(a); + + + } + break; + case 3 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'dup' + { + a=(Token)match(input,41,FOLLOW_41_in_pilha2301); + stream_41.add(a); } @@ -3139,9 +3252,9 @@ else if ( (LA16_0==85) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 163:9: -> ^( PILHA $a) + // 167:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:12: ^( PILHA $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3182,68 +3295,67 @@ else if ( (LA16_0==85) ) { // $ANTLR end "pilha" - public static class chamadaMetodo_return extends ParserRuleReturnScope { + public static class classe_return extends ParserRuleReturnScope { public List classe; - public String nome; - public String params; - public String tipoRetorno; BytecodesAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:1: chamadaMetodo returns [List classe, String nome, String params, String tipoRetorno] : (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ; - public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { - AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); + // $ANTLR start "classe" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + public final AssemblerParser.classe_return classe() throws RecognitionException { + AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - Token n=null; - Token par=null; - Token tip=null; - Token char_literal37=null; + Token char_literal38=null; Token cls=null; List list_cls=null; - BytecodesAST n_tree=null; - BytecodesAST par_tree=null; - BytecodesAST tip_tree=null; - BytecodesAST char_literal37_tree=null; + BytecodesAST char_literal38_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); - retval.nome = ""; - retval.params = ""; - retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:6: ( (cls+= ID '/' )+ n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:8: (cls+= ID '/' )+ n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:8: (cls+= ID '/' )+ - int cnt17=0; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:8: (cls+= ID '/' )* loop17: do { int alt17=2; int LA17_0 = input.LA(1); if ( (LA17_0==ID) ) { - alt17=1; + int LA17_1 = input.LA(2); + + if ( (LA17_1==27) ) { + int LA17_2 = input.LA(3); + + if ( (LA17_2==ID) ) { + alt17=1; + } + + + } + + } switch (alt17) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo2256); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2367); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3253,48 +3365,124 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni list_cls.add(cls); - char_literal37=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2258); - char_literal37_tree = - (BytecodesAST)adaptor.create(char_literal37) + char_literal38=(Token)match(input,27,FOLLOW_27_in_classe2369); + char_literal38_tree = + (BytecodesAST)adaptor.create(char_literal38) ; - adaptor.addChild(root_0, char_literal37_tree); + adaptor.addChild(root_0, char_literal38_tree); } break; default : - if ( cnt17 >= 1 ) break loop17; - EarlyExitException eee = - new EarlyExitException(17, input); - throw eee; + break loop17; } - cnt17++; } while (true); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2266); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:25: (cls+= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:26: cls+= ID + { + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2378); + cls_tree = + (BytecodesAST)adaptor.create(cls) + ; + adaptor.addChild(root_0, cls_tree); + + if (list_cls==null) list_cls=new ArrayList(); + list_cls.add(cls); + + + } + + + retval.classe = list_cls; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "classe" + + + public static class chamadaMetodo_return extends ParserRuleReturnScope { + public String nome; + public String params; + public String tipoRetorno; + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "chamadaMetodo" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { + AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token n=null; + Token par=null; + Token tip=null; + + BytecodesAST n_tree=null; + BytecodesAST par_tree=null; + BytecodesAST tip_tree=null; + + + retval.nome = ""; + retval.params = ""; + retval.tipoRetorno = ""; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:6: (n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:8: n= INIT par= '()' tip= VOID + { + root_0 = (BytecodesAST)adaptor.nil(); + + + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2418); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,22,FOLLOW_22_in_chamadaMetodo2272); + par=(Token)match(input,22,FOLLOW_22_in_chamadaMetodo2424); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2278); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2430); tip_tree = (BytecodesAST)adaptor.create(tip) ; adaptor.addChild(root_0, tip_tree); - retval.classe = list_cls; + retval.nome = (n!=null?n.getText():null); retval.params = (par!=null?par.getText():null); retval.tipoRetorno = (tip!=null?tip.getText():null); @@ -3333,7 +3521,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3342,12 +3530,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal38=null; + Token char_literal39=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal38_tree=null; + BytecodesAST char_literal39_tree=null; BytecodesAST cls_tree=null; @@ -3355,13 +3543,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:8: (cls+= ID '/' )+ int cnt18=0; loop18: do { @@ -3381,9 +3569,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt18) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2318); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2470); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3393,11 +3581,11 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal38=(Token)match(input,27,FOLLOW_27_in_campo2320); - char_literal38_tree = - (BytecodesAST)adaptor.create(char_literal38) + char_literal39=(Token)match(input,27,FOLLOW_27_in_campo2472); + char_literal39_tree = + (BytecodesAST)adaptor.create(char_literal39) ; - adaptor.addChild(root_0, char_literal38_tree); + adaptor.addChild(root_0, char_literal39_tree); } @@ -3413,7 +3601,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2328); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2480); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3453,7 +3641,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3461,31 +3649,31 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST root_0 = null; - Token char_literal39=null; - Token ID40=null; - Token char_literal41=null; - Token ID42=null; + Token char_literal40=null; + Token ID41=null; + Token char_literal42=null; + Token ID43=null; - BytecodesAST char_literal39_tree=null; - BytecodesAST ID40_tree=null; - BytecodesAST char_literal41_tree=null; - BytecodesAST ID42_tree=null; + BytecodesAST char_literal40_tree=null; + BytecodesAST ID41_tree=null; + BytecodesAST char_literal42_tree=null; + BytecodesAST ID43_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal39=(Token)match(input,29,FOLLOW_29_in_tipoRef2344); - char_literal39_tree = - (BytecodesAST)adaptor.create(char_literal39) + char_literal40=(Token)match(input,29,FOLLOW_29_in_tipoRef2496); + char_literal40_tree = + (BytecodesAST)adaptor.create(char_literal40) ; - adaptor.addChild(root_0, char_literal39_tree); + adaptor.addChild(root_0, char_literal40_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:15: ( ID '/' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:15: ( ID '/' )* loop19: do { int alt19=2; @@ -3504,20 +3692,20 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio switch (alt19) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:16: ID '/' { - ID40=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2347); - ID40_tree = - (BytecodesAST)adaptor.create(ID40) + ID41=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2499); + ID41_tree = + (BytecodesAST)adaptor.create(ID41) ; - adaptor.addChild(root_0, ID40_tree); + adaptor.addChild(root_0, ID41_tree); - char_literal41=(Token)match(input,27,FOLLOW_27_in_tipoRef2349); - char_literal41_tree = - (BytecodesAST)adaptor.create(char_literal41) + char_literal42=(Token)match(input,27,FOLLOW_27_in_tipoRef2501); + char_literal42_tree = + (BytecodesAST)adaptor.create(char_literal42) ; - adaptor.addChild(root_0, char_literal41_tree); + adaptor.addChild(root_0, char_literal42_tree); } @@ -3529,11 +3717,11 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio } while (true); - ID42=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2353); - ID42_tree = - (BytecodesAST)adaptor.create(ID42) + ID43=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2505); + ID43_tree = + (BytecodesAST)adaptor.create(ID43) ; - adaptor.addChild(root_0, ID42_tree); + adaptor.addChild(root_0, ID43_tree); } @@ -3564,8 +3752,8 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio - public static final BitSet FOLLOW_comando_in_programa107 = new BitSet(new long[]{0xFFFFFFFFC2810102L,0x00000000007FFFFFL}); - public static final BitSet FOLLOW_label_in_comando127 = new BitSet(new long[]{0xFFFFFFFFC2810000L,0x00000000007FFFFFL}); + public static final BitSet FOLLOW_comando_in_programa107 = new BitSet(new long[]{0xFFFFFFFFC2810102L,0x0000000003FFFFFFL}); + public static final BitSet FOLLOW_label_in_comando127 = new BitSet(new long[]{0xFFFFFFFFC2810000L,0x0000000003FFFFFFL}); public static final BitSet FOLLOW_instrucao_in_comando129 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_instrucao_in_comando133 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ID_in_label155 = new BitSet(new long[]{0x0000000010000000L}); @@ -3580,7 +3768,7 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio public static final BitSet FOLLOW_desvio_in_instrucao309 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_logica_in_instrucao328 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_pilha_in_instrucao346 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_83_in_instrucao365 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_86_in_instrucao365 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao381 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_23_in_definicaoClasse403 = new BitSet(new long[]{0x0000000000000100L}); public static final BitSet FOLLOW_ID_in_definicaoClasse405 = new BitSet(new long[]{0x0000000000010000L}); @@ -3596,99 +3784,106 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio public static final BitSet FOLLOW_24_in_membroClasse537 = new BitSet(new long[]{0x0000000000000100L}); public static final BitSet FOLLOW_ID_in_membroClasse539 = new BitSet(new long[]{0x0000000020100400L}); public static final BitSet FOLLOW_tipo_in_membroClasse541 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_manipulacaoObjetos593 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_42_in_manipulacaoObjetos593 = new BitSet(new long[]{0x0000000000000100L}); public static final BitSet FOLLOW_campo_in_manipulacaoObjetos599 = new BitSet(new long[]{0x0000000020100400L}); public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos601 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_manipulacaoObjetos639 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_89_in_manipulacaoObjetos639 = new BitSet(new long[]{0x0000000000000100L}); public static final BitSet FOLLOW_campo_in_manipulacaoObjetos645 = new BitSet(new long[]{0x0000000020100400L}); public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos647 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_manipulacaoObjetos686 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos692 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo731 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo735 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo739 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_aritmetica757 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_aritmetica781 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_aritmetica805 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_aritmetica829 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica853 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_aritmetica877 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_aritmetica901 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_load979 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load997 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_load1015 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load1033 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1052 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load1070 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load1088 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_load1106 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_load1125 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_load1143 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_load1161 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_load1179 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_load1197 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load1216 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load1234 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_loadint1288 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1294 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_loadint1315 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1321 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_loadint1341 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1347 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_store1414 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_store1433 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_store1452 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_store1471 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_store1490 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_store1508 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_store1527 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_store1546 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_storeint1604 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1610 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_storeint1632 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1638 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_logica1702 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_logica1721 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_logica1740 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_desvio1793 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1799 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio1819 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1825 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio1845 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1851 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio1870 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1876 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_desvio1895 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1901 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_desvio1921 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1927 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio1947 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1953 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio1973 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1979 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio1998 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2004 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_desvio2024 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2030 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_desvio2050 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2056 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio2075 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2081 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_desvio2101 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2107 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_pilha2172 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_pilha2190 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_chamadaMetodo2256 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_chamadaMetodo2258 = new BitSet(new long[]{0x0000000000000300L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2266 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_22_in_chamadaMetodo2272 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2278 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2318 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_campo2320 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_campo2328 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_tipoRef2344 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_tipoRef2347 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_tipoRef2349 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_tipoRef2353 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_manipulacaoObjetos686 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos692 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_manipulacaoObjetos694 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos700 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_manipulacaoObjetos762 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos767 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo806 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo810 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo814 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_aritmetica832 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_aritmetica856 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_aritmetica880 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_aritmetica904 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_aritmetica928 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_aritmetica952 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_aritmetica976 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_load1054 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load1072 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1090 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1108 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1127 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_load1145 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_load1163 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_load1181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_load1200 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_load1219 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_load1237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_load1255 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_load1273 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load1291 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load1310 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_load1328 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_loadint1382 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1388 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_loadint1409 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1415 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_loadint1435 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1441 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_store1508 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_store1527 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_store1546 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_store1565 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_store1584 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_store1602 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_store1621 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_store1640 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_storeint1697 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1703 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_storeint1725 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1731 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_logica1795 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_logica1814 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_logica1833 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_desvio1886 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1892 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio1912 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1918 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio1938 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1944 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_desvio1963 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1969 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio1988 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1994 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2014 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2020 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_desvio2040 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2046 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio2066 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2072 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_desvio2091 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2097 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio2117 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2123 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio2143 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2149 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio2168 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2174 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_desvio2194 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2200 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_pilha2265 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_pilha2283 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_pilha2301 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2367 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_classe2369 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_classe2378 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2418 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_22_in_chamadaMetodo2424 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2430 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2470 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_campo2472 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_campo2480 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_tipoRef2496 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_tipoRef2499 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_tipoRef2501 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_tipoRef2505 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 2583817..1055adf 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-07 12:05:52 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-12 00:25:26 package br.ufpb.iged.interpretador.parser; @@ -20,7 +20,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; @@ -89,6 +89,9 @@ public class Def extends TreeFilter { public static final int T__84=84; public static final int T__85=85; public static final int T__86=86; + public static final int T__87=87; + public static final int T__88=88; + public static final int T__89=89; public static final int ARITMETICA=4; public static final int DESVIO=5; public static final int EXTENDS=6; @@ -211,17 +214,17 @@ public final void bottomup() throws RecognitionException { alt2=1; } break; - case 40: + case 42: { alt2=2; } break; - case 86: + case 89: { alt2=3; } break; - case 72: + case 74: { alt2=4; } @@ -328,7 +331,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 86)) ) { + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 89)) ) { alt3=1; } } @@ -474,7 +477,7 @@ public final void getfield() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:5: ( 'getfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:7: 'getfield' { - match(input,40,FOLLOW_40_in_getfield277); if (state.failed) return ; + match(input,42,FOLLOW_42_in_getfield277); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do getfield.."); @@ -504,7 +507,7 @@ public final void putfield() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:5: ( 'putfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:7: 'putfield' { - match(input,86,FOLLOW_86_in_putfield305); if (state.failed) return ; + match(input,89,FOLLOW_89_in_putfield305); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do putfield.."); @@ -534,7 +537,7 @@ public final void invokespecial() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:5: ( 'invokespecial' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:7: 'invokespecial' { - match(input,72,FOLLOW_72_in_invokespecial334); if (state.failed) return ; + match(input,74,FOLLOW_74_in_invokespecial334); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do invokespecial.."); @@ -567,14 +570,14 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_putfield_in_bottomup107 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_invokespecial_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_23_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL}); + public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000003FFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel202 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000003FFFFFFL}); public static final BitSet FOLLOW_23_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index 5a92c95..0941094 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -63,6 +63,9 @@ T__83=83 T__84=84 T__85=85 T__86=86 +T__87=87 +T__88=88 +T__89=89 ARITMETICA=4 DESVIO=5 EXTENDS=6 @@ -89,60 +92,63 @@ WS=21 '/'=27 ':'=28 'L'=29 -'aload'=30 -'aload_0'=31 -'aload_1'=32 -'aload_2'=33 -'aload_3'=34 -'astore'=35 -'astore_0'=36 -'astore_1'=37 -'astore_2'=38 -'astore_3'=39 -'getfield'=40 -'goto'=41 -'iadd'=42 -'iand'=43 -'iconst_0'=44 -'iconst_1'=45 -'iconst_2'=46 -'iconst_3'=47 -'iconst_4'=48 -'iconst_5'=49 -'iconst_m1'=50 -'idiv'=51 -'if_icmpeq'=52 -'if_icmpge'=53 -'if_icmpgt'=54 -'if_icmple'=55 -'if_icmplt'=56 -'if_icmpne'=57 -'ifeq'=58 -'ifge'=59 -'ifgt'=60 -'ifle'=61 -'iflt'=62 -'ifne'=63 -'iinc'=64 -'iload'=65 -'iload_0'=66 -'iload_1'=67 -'iload_2'=68 -'iload_3'=69 -'imul'=70 -'ineg'=71 -'invokespecial'=72 -'ior'=73 -'irem'=74 -'istore'=75 -'istore_0'=76 -'istore_1'=77 -'istore_2'=78 -'istore_3'=79 -'isub'=80 -'ixor'=81 -'ldc'=82 -'nop'=83 -'pop'=84 -'pop2'=85 -'putfield'=86 +'aconst_null'=30 +'aload'=31 +'aload_0'=32 +'aload_1'=33 +'aload_2'=34 +'aload_3'=35 +'astore'=36 +'astore_0'=37 +'astore_1'=38 +'astore_2'=39 +'astore_3'=40 +'dup'=41 +'getfield'=42 +'goto'=43 +'iadd'=44 +'iand'=45 +'iconst_0'=46 +'iconst_1'=47 +'iconst_2'=48 +'iconst_3'=49 +'iconst_4'=50 +'iconst_5'=51 +'iconst_m1'=52 +'idiv'=53 +'if_icmpeq'=54 +'if_icmpge'=55 +'if_icmpgt'=56 +'if_icmple'=57 +'if_icmplt'=58 +'if_icmpne'=59 +'ifeq'=60 +'ifge'=61 +'ifgt'=62 +'ifle'=63 +'iflt'=64 +'ifne'=65 +'iinc'=66 +'iload'=67 +'iload_0'=68 +'iload_1'=69 +'iload_2'=70 +'iload_3'=71 +'imul'=72 +'ineg'=73 +'invokespecial'=74 +'ior'=75 +'irem'=76 +'istore'=77 +'istore_0'=78 +'istore_1'=79 +'istore_2'=80 +'istore_3'=81 +'isub'=82 +'ixor'=83 +'ldc'=84 +'new'=85 +'nop'=86 +'pop'=87 +'pop2'=88 +'putfield'=89 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index d129999..3cbace5 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-07 12:05:52 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-12 00:25:26 package br.ufpb.iged.interpretador.parser; @@ -24,7 +24,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; @@ -93,6 +93,9 @@ public class Ref extends TreeFilter { public static final int T__84=84; public static final int T__85=85; public static final int T__86=86; + public static final int T__87=87; + public static final int T__88=88; + public static final int T__89=89; public static final int ARITMETICA=4; public static final int DESVIO=5; public static final int EXTENDS=6; @@ -189,20 +192,36 @@ private void chamarConstrutorDefault(String nomeClasse) { BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); } + + private void newClass(String nomeClasse) { + + assembler.escreverOpcode("new"); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + } // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:83:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:99:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ) - int alt1=14; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ) + int alt1=15; alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:84:9: entraNaClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:9: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown61); entraNaClasse(); @@ -213,7 +232,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:85:9: declaracaoVariavel + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:9: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown71); declaracaoVariavel(); @@ -224,7 +243,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:86:9: getfield + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:9: getfield { pushFollow(FOLLOW_getfield_in_topdown81); getfield(); @@ -235,7 +254,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:87:9: putfield + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:103:9: putfield { pushFollow(FOLLOW_putfield_in_topdown91); putfield(); @@ -246,7 +265,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:88:9: invokespecial + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:104:9: invokespecial { pushFollow(FOLLOW_invokespecial_in_topdown101); invokespecial(); @@ -257,10 +276,10 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:89:9: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:105:9: novaClasse { - pushFollow(FOLLOW_aritmetica_in_topdown111); - aritmetica(); + pushFollow(FOLLOW_novaClasse_in_topdown111); + novaClasse(); state._fsp--; if (state.failed) return ; @@ -268,10 +287,10 @@ public final void topdown() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:90:9: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:106:9: aritmetica { - pushFollow(FOLLOW_load_in_topdown122); - load(); + pushFollow(FOLLOW_aritmetica_in_topdown121); + aritmetica(); state._fsp--; if (state.failed) return ; @@ -279,10 +298,10 @@ public final void topdown() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:91:9: loadint + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:107:9: load { - pushFollow(FOLLOW_loadint_in_topdown132); - loadint(); + pushFollow(FOLLOW_load_in_topdown132); + load(); state._fsp--; if (state.failed) return ; @@ -290,10 +309,10 @@ public final void topdown() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:92:9: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:108:9: loadint { - pushFollow(FOLLOW_store_in_topdown143); - store(); + pushFollow(FOLLOW_loadint_in_topdown142); + loadint(); state._fsp--; if (state.failed) return ; @@ -301,10 +320,10 @@ public final void topdown() throws RecognitionException { } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:93:9: storeint + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:109:9: store { - pushFollow(FOLLOW_storeint_in_topdown153); - storeint(); + pushFollow(FOLLOW_store_in_topdown153); + store(); state._fsp--; if (state.failed) return ; @@ -312,10 +331,10 @@ public final void topdown() throws RecognitionException { } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:94:9: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:9: storeint { - pushFollow(FOLLOW_desvio_in_topdown164); - desvio(); + pushFollow(FOLLOW_storeint_in_topdown163); + storeint(); state._fsp--; if (state.failed) return ; @@ -323,10 +342,10 @@ public final void topdown() throws RecognitionException { } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:95:9: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:9: desvio { - pushFollow(FOLLOW_logica_in_topdown175); - logica(); + pushFollow(FOLLOW_desvio_in_topdown174); + desvio(); state._fsp--; if (state.failed) return ; @@ -334,10 +353,10 @@ public final void topdown() throws RecognitionException { } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:96:9: pilha + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:112:9: logica { - pushFollow(FOLLOW_pilha_in_topdown185); - pilha(); + pushFollow(FOLLOW_logica_in_topdown185); + logica(); state._fsp--; if (state.failed) return ; @@ -345,9 +364,20 @@ public final void topdown() throws RecognitionException { } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:97:9: label + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:113:9: pilha { - pushFollow(FOLLOW_label_in_topdown195); + pushFollow(FOLLOW_pilha_in_topdown195); + pilha(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 15 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:114:9: label + { + pushFollow(FOLLOW_label_in_topdown205); label(); state._fsp--; @@ -361,9 +391,9 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } catch (LabelException e) { + } catch (AcessoIndevidoMemoriaException e) { System.out.println(e.getMessage()); - } catch (AcessoIndevidoMemoriaException e) { + } catch (LabelException e) { System.out.println(e.getMessage()); } @@ -377,21 +407,21 @@ public final void topdown() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,23,FOLLOW_23_in_entraNaClasse220); if (state.failed) return ; + match(input,23,FOLLOW_23_in_entraNaClasse230); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse224); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse234); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:28: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:28: ( ^( EXTENDS sup= ID ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -407,7 +437,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_4==UP) ) { int LA2_5 = input.LA(5); - if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 86)) ) { + if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 89)) ) { alt2=1; } } @@ -416,12 +446,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:29: ^( EXTENDS sup= ID ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse228); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse238); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse232); if (state.failed) return ; + sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse242); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -469,19 +499,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:9: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel272); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel282); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel274); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel284); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -513,17 +543,17 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,40,FOLLOW_40_in_getfield313); if (state.failed) return ; + match(input,42,FOLLOW_42_in_getfield323); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -565,17 +595,17 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:149:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,86,FOLLOW_86_in_putfield363); if (state.failed) return ; + match(input,89,FOLLOW_89_in_putfield373); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -617,7 +647,7 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:139:1: invokespecial : ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:156:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -625,18 +655,16 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:5: ( ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:7: ^( 'invokespecial' classe= . . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) { - match(input,72,FOLLOW_72_in_invokespecial413); if (state.failed) return ; + match(input,74,FOLLOW_74_in_invokespecial423); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - matchAny(input); if (state.failed) return ; - metodo=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; @@ -673,16 +701,56 @@ public final void invokespecial() throws RecognitionException { + // $ANTLR start "novaClasse" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:163:1: novaClasse : ^( 'new' classe= . ) ; + public final void novaClasse() throws RecognitionException { + BytecodesAST classe=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:3: ( ^( 'new' classe= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:5: ^( 'new' classe= . ) + { + match(input,85,FOLLOW_85_in_novaClasse474); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + newClass(classe.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "novaClasse" + + + // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:7: ^( ARITMETICA operacao= . ) { - match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica468); if (state.failed) return ; + match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica505); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -714,15 +782,15 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:177:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:154:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:154:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:5: ^( LOAD operacao= . ) { - match(input,LOAD,FOLLOW_LOAD_in_load502); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_load539); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -754,16 +822,16 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:160:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:184:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:7: ^( LOAD operacao= . operando= . ) { - match(input,LOAD,FOLLOW_LOAD_in_loadint531); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_loadint568); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -799,15 +867,15 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: store : ^( STORE operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:191:1: store : ^( STORE operacao= . ) ; public final void store() throws RecognitionException, AcessoIndevidoMemoriaException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:6: ^( STORE operacao= . ) { - match(input,STORE,FOLLOW_STORE_in_store574); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_store611); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -839,16 +907,16 @@ public final void store() throws RecognitionException, AcessoIndevidoMemoriaExce // $ANTLR start "storeint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:174:1: storeint : ^( STORE operacao= . operando= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: storeint : ^( STORE operacao= . operando= . ) ; public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:7: ^( STORE operacao= . operando= . ) { - match(input,STORE,FOLLOW_STORE_in_storeint603); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_storeint640); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -884,16 +952,16 @@ public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaE // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:205:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:182:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:182:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:7: ^( DESVIO operacao= . operando= . ) { - match(input,DESVIO,FOLLOW_DESVIO_in_desvio644); if (state.failed) return ; + match(input,DESVIO,FOLLOW_DESVIO_in_desvio681); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -929,15 +997,15 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:188:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:212:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:7: ^( LOGICA operacao= . ) { - match(input,LOGICA,FOLLOW_LOGICA_in_logica685); if (state.failed) return ; + match(input,LOGICA,FOLLOW_LOGICA_in_logica722); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -969,15 +1037,15 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:195:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:219:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:6: ^( PILHA operacao= . ) { - match(input,PILHA,FOLLOW_PILHA_in_pilha719); if (state.failed) return ; + match(input,PILHA,FOLLOW_PILHA_in_pilha756); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1009,15 +1077,15 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:202:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:6: ^( LABEL operacao= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label747); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label784); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1051,47 +1119,49 @@ public final void label() throws RecognitionException, LabelException { protected DFA1 dfa1 = new DFA1(this); static final String DFA1_eotS = - "\33\uffff"; + "\34\uffff"; static final String DFA1_eofS = - "\33\uffff"; + "\34\uffff"; static final String DFA1_minS = - "\1\4\6\uffff\2\2\4\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; + "\1\4\7\uffff\2\2\4\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; static final String DFA1_maxS = - "\1\126\6\uffff\2\2\4\uffff\5\126\2\uffff\1\126\2\uffff\4\126"; + "\1\131\7\uffff\2\2\4\uffff\5\131\2\uffff\1\131\2\uffff\4\131"; static final String DFA1_acceptS = - "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\2\uffff\1\13\1\14\1\15\1\16\5\uffff"+ - "\1\7\1\10\1\uffff\1\11\1\12\4\uffff"; + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\uffff\1\14\1\15\1\16\1\17"+ + "\5\uffff\1\10\1\11\1\uffff\1\12\1\13\4\uffff"; static final String DFA1_specialS = - "\33\uffff}>"; + "\34\uffff}>"; static final String[] DFA1_transitionS = { - "\1\6\1\11\1\uffff\1\2\4\uffff\1\14\1\7\1\12\3\uffff\1\13\1\10"+ - "\3\uffff\1\1\20\uffff\1\3\37\uffff\1\5\15\uffff\1\4", + "\1\7\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\3\uffff\1\14\1"+ + "\11\3\uffff\1\1\22\uffff\1\3\37\uffff\1\5\12\uffff\1\6\3\uffff"+ + "\1\4", + "", "", "", "", "", "", "", - "\1\15", "\1\16", + "\1\17", "", "", "", "", - "\123\17", - "\123\20", - "\1\21\1\22\123\23", - "\1\24\1\25\123\26", - "\123\27", + "\126\20", + "\126\21", + "\1\22\1\23\126\24", + "\1\25\1\26\126\27", + "\126\30", "", "", - "\123\30", + "\126\31", "", "", - "\1\31\123\27", - "\1\32\123\30", - "\1\22\123\23", - "\1\25\123\26" + "\1\32\126\30", + "\1\33\126\31", + "\1\23\126\24", + "\1\26\126\27" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -1124,7 +1194,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "83:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label );"; + return "99:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label );"; } } @@ -1134,32 +1204,34 @@ public String getDescription() { public static final BitSet FOLLOW_getfield_in_topdown81 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_putfield_in_topdown91 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_invokespecial_in_topdown101 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_aritmetica_in_topdown111 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_load_in_topdown122 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_loadint_in_topdown132 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_store_in_topdown143 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_storeint_in_topdown153 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_desvio_in_topdown164 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_logica_in_topdown175 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_pilha_in_topdown185 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_topdown195 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_entraNaClasse220 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse224 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse228 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse232 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel272 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel274 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL}); - public static final BitSet FOLLOW_40_in_getfield313 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_86_in_putfield363 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_72_in_invokespecial413 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARITMETICA_in_aritmetica468 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_load502 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_loadint531 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_store574 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_storeint603 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_DESVIO_in_desvio644 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOGICA_in_logica685 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PILHA_in_pilha719 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label747 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_novaClasse_in_topdown111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_aritmetica_in_topdown121 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_load_in_topdown132 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_loadint_in_topdown142 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_store_in_topdown153 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_storeint_in_topdown163 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_desvio_in_topdown174 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_logica_in_topdown185 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_pilha_in_topdown195 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_topdown205 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_entraNaClasse230 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse234 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000003FFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse238 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse242 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel282 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000003FFFFFFL}); + public static final BitSet FOLLOW_42_in_getfield323 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_89_in_putfield373 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_74_in_invokespecial423 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_85_in_novaClasse474 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARITMETICA_in_aritmetica505 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_load539 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_loadint568 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_store611 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_storeint640 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_DESVIO_in_desvio681 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOGICA_in_logica722 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PILHA_in_pilha756 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label784 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index 5a92c95..0941094 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -63,6 +63,9 @@ T__83=83 T__84=84 T__85=85 T__86=86 +T__87=87 +T__88=88 +T__89=89 ARITMETICA=4 DESVIO=5 EXTENDS=6 @@ -89,60 +92,63 @@ WS=21 '/'=27 ':'=28 'L'=29 -'aload'=30 -'aload_0'=31 -'aload_1'=32 -'aload_2'=33 -'aload_3'=34 -'astore'=35 -'astore_0'=36 -'astore_1'=37 -'astore_2'=38 -'astore_3'=39 -'getfield'=40 -'goto'=41 -'iadd'=42 -'iand'=43 -'iconst_0'=44 -'iconst_1'=45 -'iconst_2'=46 -'iconst_3'=47 -'iconst_4'=48 -'iconst_5'=49 -'iconst_m1'=50 -'idiv'=51 -'if_icmpeq'=52 -'if_icmpge'=53 -'if_icmpgt'=54 -'if_icmple'=55 -'if_icmplt'=56 -'if_icmpne'=57 -'ifeq'=58 -'ifge'=59 -'ifgt'=60 -'ifle'=61 -'iflt'=62 -'ifne'=63 -'iinc'=64 -'iload'=65 -'iload_0'=66 -'iload_1'=67 -'iload_2'=68 -'iload_3'=69 -'imul'=70 -'ineg'=71 -'invokespecial'=72 -'ior'=73 -'irem'=74 -'istore'=75 -'istore_0'=76 -'istore_1'=77 -'istore_2'=78 -'istore_3'=79 -'isub'=80 -'ixor'=81 -'ldc'=82 -'nop'=83 -'pop'=84 -'pop2'=85 -'putfield'=86 +'aconst_null'=30 +'aload'=31 +'aload_0'=32 +'aload_1'=33 +'aload_2'=34 +'aload_3'=35 +'astore'=36 +'astore_0'=37 +'astore_1'=38 +'astore_2'=39 +'astore_3'=40 +'dup'=41 +'getfield'=42 +'goto'=43 +'iadd'=44 +'iand'=45 +'iconst_0'=46 +'iconst_1'=47 +'iconst_2'=48 +'iconst_3'=49 +'iconst_4'=50 +'iconst_5'=51 +'iconst_m1'=52 +'idiv'=53 +'if_icmpeq'=54 +'if_icmpge'=55 +'if_icmpgt'=56 +'if_icmple'=57 +'if_icmplt'=58 +'if_icmpne'=59 +'ifeq'=60 +'ifge'=61 +'ifgt'=62 +'ifle'=63 +'iflt'=64 +'ifne'=65 +'iinc'=66 +'iload'=67 +'iload_0'=68 +'iload_1'=69 +'iload_2'=70 +'iload_3'=71 +'imul'=72 +'ineg'=73 +'invokespecial'=74 +'ior'=75 +'irem'=76 +'istore'=77 +'istore_0'=78 +'istore_1'=79 +'istore_2'=80 +'istore_3'=81 +'isub'=82 +'ixor'=83 +'ldc'=84 +'new'=85 +'nop'=86 +'pop'=87 +'pop2'=88 +'putfield'=89 diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 3aeca3a..e3526cf 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -182,7 +182,7 @@ protected void cpu() { boolean desvio; - Objeto objeto; + Referencia referencia; while (ip < tamanhoCodigo) { @@ -196,7 +196,7 @@ protected void cpu() { switch (opcode) { - // nenhuma operaçăo + // operaçőes de pilha case Definicao.NOP: ; @@ -209,6 +209,18 @@ protected void cpu() { case Definicao.POP2: sp -= 2 ; break; + + case Definicao.DUP: { + + Referencia ref = (Referencia)pilha[sp]; + + sp++; + + pilha[sp] = ref; + + } + ; + break; // operaçőes aritméticas @@ -369,6 +381,16 @@ protected void cpu() { pilha[sp] = -1; + } + ; + break; + + case Definicao.ACONSTNULL: { + + sp++; + + pilha[sp] = new Referencia(null); + } ; break; @@ -923,17 +945,26 @@ protected void cpu() { //manipulaçăo de objetos - case Definicao.INVOKESPECIAL: { + case Definicao.NEW: { op1 = obterOperandoInteiro(); SimboloClasse simboloClasse = assembler.getConstantPool().get(op1); - objeto = new Objeto(simboloClasse); + Objeto objeto = new Objeto(simboloClasse); heap.add(objeto); - pilha[sp] = heap.indexOf(objeto); + pilha[sp] = new Referencia(heap.indexOf(objeto)); + + } + + ; + break; + + case Definicao.INVOKESPECIAL: { + + sp--; } @@ -942,7 +973,9 @@ protected void cpu() { case Definicao.GETFIELD: { - objeto = heap.get((int) pilha[sp]); + referencia = (Referencia)pilha[sp]; + + Objeto objeto = heap.get(referencia.getEndereco()); op1 = obterOperandoInteiro(); @@ -957,7 +990,9 @@ protected void cpu() { case Definicao.PUTFIELD: { - objeto = heap.get((int) pilha[sp - 1]); + referencia = (Referencia)pilha[sp]; + + Objeto objeto = heap.get(referencia.getEndereco()); op1 = obterOperandoInteiro(); diff --git a/src/br/ufpb/iged/interpretador/principal/Objeto.java b/src/br/ufpb/iged/interpretador/principal/Objeto.java index a396490..ed674a3 100644 --- a/src/br/ufpb/iged/interpretador/principal/Objeto.java +++ b/src/br/ufpb/iged/interpretador/principal/Objeto.java @@ -37,7 +37,7 @@ else if (nomeTipo.startsWith("L")) } } - + public String getNome() { return nome; } diff --git a/src/br/ufpb/iged/interpretador/principal/Referencia.java b/src/br/ufpb/iged/interpretador/principal/Referencia.java new file mode 100644 index 0000000..18b63e9 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/principal/Referencia.java @@ -0,0 +1,21 @@ +package br.ufpb.iged.interpretador.principal; + +public class Referencia { + + protected Integer endereco; + + public Referencia(Integer endereco) { + + this.setEndereco(endereco); + + } + + public Integer getEndereco() { + return endereco; + } + + public void setEndereco(Integer endereco) { + this.endereco = endereco; + } + +} From d241f9d47addaadd4934e74f498dcf4934193ddb Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Thu, 12 Jul 2012 22:38:06 -0300 Subject: [PATCH 40/79] commit --- Teste.class | 3 +- .../principal/Interpretador.class | Bin 13868 -> 13968 bytes .../bytecodeassembler/asm/Definicao.java | 2 +- .../iged/interpretador/gramaticas/Assembler.g | 26 +- .../interpretador/parser/Assembler.tokens | 136 +- .../interpretador/parser/AssemblerLexer.java | 704 +++--- .../interpretador/parser/AssemblerParser.java | 2119 +++++++++-------- .../ufpb/iged/interpretador/parser/Def.java | 31 +- .../ufpb/iged/interpretador/parser/Def.tokens | 136 +- .../ufpb/iged/interpretador/parser/Ref.java | 63 +- .../ufpb/iged/interpretador/parser/Ref.tokens | 136 +- .../principal/Interpretador.java | 52 +- .../interpretador/principal/Referencia.java | 6 + 13 files changed, 1809 insertions(+), 1605 deletions(-) diff --git a/Teste.class b/Teste.class index 46dd33a..944e6eb 100644 --- a/Teste.class +++ b/Teste.class @@ -2,5 +2,4 @@ .field abc I .field xyz I .method ()V -aload_0 -invokespecial Teste/()V +.end class \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 1d2c8a509448f49f6f4e3c169d5c38892d0ff2b1..6149bb47089d7de849958b40f81c247663df2755 100644 GIT binary patch delta 2046 zcma)+d2G~06vyApo86sbTi60Ux3=4p-Q{Sv1*D-Mg>r*RIRc23qeuc(j)DOa7a~;> z4CWpn+?6wrW5~309XgW9fltm z4m4bExY)49aIfJ8!&`|!RO*d>ZtTWtg zIKptBnLi9ji)Tz@Hn`c8CU6JD-=+e$C0tzbG(t!7=k_&|j3TRE>}ku&0^$qZoRO#( zxdhp)Z{&8+Gc%-acG*ZpwED+or6M;{@@adByDY#jJ!&{eZFDp@6?#o(Dw(H;WhLn2 znKm+7&&qOATX%y*EAy2FY$+kN7`3*9)Ed+?W<>_sZyKqjCK|RbdK{kgINUcBc4>RI zlUh-GvQznmov^YIYArfHJDwcUB*#fDTXkBFi(1|=xl}SO6dUwptV1{!YhoGtdTyqk zlGB>(F)u7buQpa4vZFbzC>yR%n+;i^_P0-@ELn@(RPrEH;5psR6bFMvI&O=+OY<>i z?IJlnQr1C?XBR18U0DF%4zHLUS}`JA6zK!GPKwTOMa?6N%<=v0lgJL^onkgTUQcHS z`+9Lk$5tuMO;7YwLwOA5wbN}UheMl@y3ht&9tX*s@L)`6u=$C>Q^7$TVdkiLJv=E* z;0+!a?&ub`j|ZM~|6c&hb z>@Fr_v6zd!L^bvn%dn4Ffu-Vo>@R9?u&BkMq6y2y9vm%>;uvuX$BAEYytsrD#5J5K zZexW6d`U{Il>Qi;CDU+@?2L0|cYIa$#QCxW7s>(Xmm_hpoPcl2N%)qm!gu5nTqfVe zxC-M($kPop*3EZdb*sL7* zxr)bwDhUrOCm#1J7k;CB_?;@oAJjlRplw9qQLBsE#fXV?=o4Nm=0@#k#AI63s-kuzV#)z3yf#s} z;JL7>dPsg`cOgM9%p2twc~C&cnPXE?9ko*tlbxfsBx)xk266US@&XxeF1^*BOkN}t zfT>l`g_M(tU{R;R7dBb|?TFL#tjY&H$Rsk^STW?2DI~Q5Y-&3=jaHcEt%yMd0IAoN z`9pQJ&!Kzy?EizW>*Ky+J|g};l-!5j+ELIymbHTzmH=@q2@+U}o?0+oq(N)uf@GGd zzbqI++zm;Es>k7r}X((YuFxhYx>j4W`Pk5a@14~&6Y&G1?`a(172S?Zd iIL-#aHN$&s2%&5kv9M=}V$YL!Rz_0TNPVo!#D4)mi0oeg delta 2047 zcmaKsdu&uy5XR@6Io&;vmPZ9kU%!wv^J=CyG|90&0WC zXQTy>0ufq7APWQnwWSbCgjfw?ECm7rnnnqrQ6WJA4Hm@Nz1>B@_{TlpZ|0ksy?gGt zcg5q|7w)`2cbR%J^)9yY@+ z^NeNjwC2f*z05l^D36DOhn-+mI9TWeb3%dLndW9m)ZEW@q^UgjAK}qrKK+ib8HUj1 z#c;X1^G-)NPMhtKo;ZB#oxaQQ>+W>ij#F)m(-V`6?)16ikFzV%Q(3zGJ|jUUJ1Jq? z(^I(X2a0;1TaXdM-lm>3_J~tFyL3<*3xwUi&??8ZnO zozd`*8Lvj%?itl~3C+0ww(O)x{GT&!I|7(!f6hvY=UtH|XEguCdc4_o#^6}mx<+q5 z&R2yJaqDm04KH$xapB58snSJ>M0SDVQLHh{tHVv3ZZ)yuaDIHa=bAT`xkE$Z;Ueu* z&KO_vZt#b83p#C%FPAmjM}0{>x{q3Tli_8%&gV-By(<4Y&xx)UHZz$XJB*4nHZ2`DrS@|sgQNG51l5g=}WG%la-{rr` z4g9Ly#IMO_-X-_)8*(4NDL+M&9q5+F(8zN&7$>h_Px%-2R)}{gH}+L=n5dF4S!JL{ zW#J$-60=kxdeuzyt2sDC72{B~00U|f4p)nDw0Z#xR4tBE4LCtR6&1O7rw&9QFW4vVc<8S5=UN!B|YEI%c$O7PlVMOSIZi7SD*Ysx(&9r^|N9i0)aC+6qDAh*kY=m@vl$J;71Q@5cpFR(T4$_xCwVSpFhYz+sUK7fG*)VT_AB W79&P5BSx~j#b}l+#@eBIWq$+xF!oXa diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java index 35a2188..778fb70 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java @@ -67,7 +67,7 @@ public class Definicao { public static final int ID = AssemblerParser.ID; public static final int INT= AssemblerParser.INT; - public static final int NOVA_LINHA = AssemblerParser.NOVA_LINHA; + public static final int NOVA_LINHA = AssemblerParser.NEWLINE; public static final int NULL = AssemblerParser.NULL; public static final int WS = AssemblerParser.WS; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 029dacd..a4b9d4b 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -40,15 +40,18 @@ tokens { } -programa : comando* +programa : instrucao* ; + +instrucao : operacao + | definicaoClasse ('.end class')? + ; -comando : (label instrucao | instrucao); +operacao : (label comando | comando); label : a = ID ':' -> ^(LABEL $a); -instrucao: ( definicaoClasse - | manipulacaoObjetos +comando: ( manipulacaoObjetos | aritmetica | load | loadint @@ -58,19 +61,20 @@ instrucao: ( definicaoClasse | logica | pilha | 'nop' - )? NOVA_LINHA; + )? NEWLINE; -definicaoClasse : '.class' ID NOVA_LINHA superClasse? membroClasse+ +definicaoClasse + : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) - | '.method' INIT '()' VOID + | '.method' INIT '()' VOID NEWLINE ; superClasse : '.super' ID -> ^(EXTENDS ID) ; -membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) - ; +membroClasse + : '.field' ID tipo -> ^(FIELD_DECL ID tipo) + ; - manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) | a = 'invokespecial' c = classe '/' d = chamadaMetodo @@ -211,6 +215,6 @@ ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; //LETRA: ('a'..'z' | 'A'..'Z'); -NOVA_LINHA : '\n'; +NEWLINE : '\n'; WS : (' ' | '\t' | '\r') {skip();} ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index 0941094..a597d6b 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -66,6 +66,7 @@ T__86=86 T__87=87 T__88=88 T__89=89 +T__90=90 ARITMETICA=4 DESVIO=5 EXTENDS=6 @@ -78,7 +79,7 @@ LABEL=12 LOAD=13 LOGICA=14 MEMBRO_CLASSE=15 -NOVA_LINHA=16 +NEWLINE=16 NULL=17 PILHA=18 STORE=19 @@ -86,69 +87,70 @@ VOID=20 WS=21 '()'=22 '.class'=23 -'.field'=24 -'.method'=25 -'.super'=26 -'/'=27 -':'=28 -'L'=29 -'aconst_null'=30 -'aload'=31 -'aload_0'=32 -'aload_1'=33 -'aload_2'=34 -'aload_3'=35 -'astore'=36 -'astore_0'=37 -'astore_1'=38 -'astore_2'=39 -'astore_3'=40 -'dup'=41 -'getfield'=42 -'goto'=43 -'iadd'=44 -'iand'=45 -'iconst_0'=46 -'iconst_1'=47 -'iconst_2'=48 -'iconst_3'=49 -'iconst_4'=50 -'iconst_5'=51 -'iconst_m1'=52 -'idiv'=53 -'if_icmpeq'=54 -'if_icmpge'=55 -'if_icmpgt'=56 -'if_icmple'=57 -'if_icmplt'=58 -'if_icmpne'=59 -'ifeq'=60 -'ifge'=61 -'ifgt'=62 -'ifle'=63 -'iflt'=64 -'ifne'=65 -'iinc'=66 -'iload'=67 -'iload_0'=68 -'iload_1'=69 -'iload_2'=70 -'iload_3'=71 -'imul'=72 -'ineg'=73 -'invokespecial'=74 -'ior'=75 -'irem'=76 -'istore'=77 -'istore_0'=78 -'istore_1'=79 -'istore_2'=80 -'istore_3'=81 -'isub'=82 -'ixor'=83 -'ldc'=84 -'new'=85 -'nop'=86 -'pop'=87 -'pop2'=88 -'putfield'=89 +'.end class'=24 +'.field'=25 +'.method'=26 +'.super'=27 +'/'=28 +':'=29 +'L'=30 +'aconst_null'=31 +'aload'=32 +'aload_0'=33 +'aload_1'=34 +'aload_2'=35 +'aload_3'=36 +'astore'=37 +'astore_0'=38 +'astore_1'=39 +'astore_2'=40 +'astore_3'=41 +'dup'=42 +'getfield'=43 +'goto'=44 +'iadd'=45 +'iand'=46 +'iconst_0'=47 +'iconst_1'=48 +'iconst_2'=49 +'iconst_3'=50 +'iconst_4'=51 +'iconst_5'=52 +'iconst_m1'=53 +'idiv'=54 +'if_icmpeq'=55 +'if_icmpge'=56 +'if_icmpgt'=57 +'if_icmple'=58 +'if_icmplt'=59 +'if_icmpne'=60 +'ifeq'=61 +'ifge'=62 +'ifgt'=63 +'ifle'=64 +'iflt'=65 +'ifne'=66 +'iinc'=67 +'iload'=68 +'iload_0'=69 +'iload_1'=70 +'iload_2'=71 +'iload_3'=72 +'imul'=73 +'ineg'=74 +'invokespecial'=75 +'ior'=76 +'irem'=77 +'istore'=78 +'istore_0'=79 +'istore_1'=80 +'istore_2'=81 +'istore_3'=82 +'isub'=83 +'ixor'=84 +'ldc'=85 +'new'=86 +'nop'=87 +'pop'=88 +'pop2'=89 +'putfield'=90 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 333bd52..6f42484 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-12 00:25:26 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-12 21:30:10 package br.ufpb.iged.interpretador.parser; @@ -79,6 +79,7 @@ public class AssemblerLexer extends Lexer { public static final int T__87=87; public static final int T__88=88; public static final int T__89=89; + public static final int T__90=90; public static final int ARITMETICA=4; public static final int DESVIO=5; public static final int EXTENDS=6; @@ -91,7 +92,7 @@ public class AssemblerLexer extends Lexer { public static final int LOAD=13; public static final int LOGICA=14; public static final int MEMBRO_CLASSE=15; - public static final int NOVA_LINHA=16; + public static final int NEWLINE=16; public static final int NULL=17; public static final int PILHA=18; public static final int STORE=19; @@ -164,10 +165,10 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.field' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.field' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.end class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.end class' { - match(".field"); + match(".end class"); @@ -187,10 +188,10 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.method' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.method' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.field' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.field' { - match(".method"); + match(".field"); @@ -210,10 +211,10 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.super' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.super' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.method' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.method' { - match(".super"); + match(".method"); @@ -233,10 +234,12 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '/' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.super' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.super' { - match('/'); + match(".super"); + + } @@ -254,10 +257,10 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '/' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '/' { - match(':'); + match('/'); } @@ -275,10 +278,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( 'L' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: 'L' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: ':' { - match('L'); + match(':'); } @@ -296,12 +299,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aconst_null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'L' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'L' { - match("aconst_null"); - - + match('L'); } @@ -319,10 +320,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aconst_null' { - match("aload"); + match("aconst_null"); @@ -342,10 +343,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload' { - match("aload_0"); + match("aload"); @@ -365,10 +366,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_0' { - match("aload_1"); + match("aload_0"); @@ -388,10 +389,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_1' { - match("aload_2"); + match("aload_1"); @@ -411,10 +412,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_2' { - match("aload_3"); + match("aload_2"); @@ -434,10 +435,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_3' { - match("astore"); + match("aload_3"); @@ -457,10 +458,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore' { - match("astore_0"); + match("astore"); @@ -480,10 +481,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_0' { - match("astore_1"); + match("astore_0"); @@ -503,10 +504,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_1' { - match("astore_2"); + match("astore_1"); @@ -526,10 +527,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore_2' { - match("astore_3"); + match("astore_2"); @@ -549,10 +550,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'dup' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'dup' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_3' { - match("dup"); + match("astore_3"); @@ -572,10 +573,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'dup' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'dup' { - match("getfield"); + match("dup"); @@ -595,10 +596,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'goto' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'getfield' { - match("goto"); + match("getfield"); @@ -618,10 +619,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'goto' { - match("iadd"); + match("goto"); @@ -641,10 +642,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iadd' { - match("iand"); + match("iadd"); @@ -664,10 +665,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iand' { - match("iconst_0"); + match("iand"); @@ -687,10 +688,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_0' { - match("iconst_1"); + match("iconst_0"); @@ -710,10 +711,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_1' { - match("iconst_2"); + match("iconst_1"); @@ -733,10 +734,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_2' { - match("iconst_3"); + match("iconst_2"); @@ -756,10 +757,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_3' { - match("iconst_4"); + match("iconst_3"); @@ -779,10 +780,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_4' { - match("iconst_5"); + match("iconst_4"); @@ -802,10 +803,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_5' { - match("iconst_m1"); + match("iconst_5"); @@ -825,10 +826,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_m1' { - match("idiv"); + match("iconst_m1"); @@ -848,10 +849,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'idiv' { - match("if_icmpeq"); + match("idiv"); @@ -871,10 +872,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmpge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmpeq' { - match("if_icmpge"); + match("if_icmpeq"); @@ -894,10 +895,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmpgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmpge' { - match("if_icmpgt"); + match("if_icmpge"); @@ -917,10 +918,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmple' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmpgt' { - match("if_icmple"); + match("if_icmpgt"); @@ -940,10 +941,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmplt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmple' { - match("if_icmplt"); + match("if_icmple"); @@ -963,10 +964,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmplt' { - match("if_icmpne"); + match("if_icmplt"); @@ -986,10 +987,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpne' { - match("ifeq"); + match("if_icmpne"); @@ -1009,10 +1010,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifeq' { - match("ifge"); + match("ifeq"); @@ -1032,10 +1033,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ifgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ifge' { - match("ifgt"); + match("ifge"); @@ -1055,10 +1056,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifle' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifgt' { - match("ifle"); + match("ifgt"); @@ -1078,10 +1079,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iflt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ifle' { - match("iflt"); + match("ifle"); @@ -1101,10 +1102,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iflt' { - match("ifne"); + match("iflt"); @@ -1124,10 +1125,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifne' { - match("iinc"); + match("ifne"); @@ -1147,10 +1148,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iinc' { - match("iload"); + match("iinc"); @@ -1170,10 +1171,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload' { - match("iload_0"); + match("iload"); @@ -1193,10 +1194,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_0' { - match("iload_1"); + match("iload_0"); @@ -1216,10 +1217,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iload_1' { - match("iload_2"); + match("iload_1"); @@ -1239,10 +1240,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload_2' { - match("iload_3"); + match("iload_2"); @@ -1262,10 +1263,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload_3' { - match("imul"); + match("iload_3"); @@ -1285,10 +1286,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'imul' { - match("ineg"); + match("imul"); @@ -1308,10 +1309,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'ineg' { - match("invokespecial"); + match("ineg"); @@ -1331,10 +1332,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'invokespecial' { - match("ior"); + match("invokespecial"); @@ -1354,10 +1355,10 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'ior' { - match("irem"); + match("ior"); @@ -1377,10 +1378,10 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'irem' { - match("istore"); + match("irem"); @@ -1400,10 +1401,10 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore' { - match("istore_0"); + match("istore"); @@ -1423,10 +1424,10 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_0' { - match("istore_1"); + match("istore_0"); @@ -1446,10 +1447,10 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'istore_1' { - match("istore_2"); + match("istore_1"); @@ -1469,10 +1470,10 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'istore_2' { - match("istore_3"); + match("istore_2"); @@ -1492,10 +1493,10 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'istore_3' { - match("isub"); + match("istore_3"); @@ -1515,10 +1516,10 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'isub' { - match("ixor"); + match("isub"); @@ -1538,10 +1539,10 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ldc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ixor' { - match("ldc"); + match("ixor"); @@ -1561,10 +1562,10 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'new' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'new' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'ldc' { - match("new"); + match("ldc"); @@ -1584,10 +1585,10 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'new' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'new' { - match("nop"); + match("new"); @@ -1607,10 +1608,10 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'nop' { - match("pop"); + match("nop"); @@ -1630,10 +1631,10 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'pop' { - match("pop2"); + match("pop"); @@ -1653,10 +1654,10 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'putfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'pop2' { - match("putfield"); + match("pop2"); @@ -1671,13 +1672,36 @@ public final void mT__89() throws RecognitionException { } // $ANTLR end "T__89" + // $ANTLR start "T__90" + public final void mT__90() throws RecognitionException { + try { + int _type = T__90; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'putfield' + { + match("putfield"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__90" + // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:8: '' { match(""); @@ -1699,8 +1723,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:7: 'I' { match('I'); @@ -1720,8 +1744,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: 'V' { match('V'); @@ -1741,10 +1765,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1763,7 +1787,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:9: 'null' { match("null"); @@ -1772,7 +1796,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:18: 'NULL' { match("NULL"); @@ -1800,10 +1824,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1812,7 +1836,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: '-' { match('-'); @@ -1822,7 +1846,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1877,8 +1901,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1890,7 +1914,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop4: do { int alt4=2; @@ -1935,13 +1959,13 @@ public final void mID() throws RecognitionException { } // $ANTLR end "ID" - // $ANTLR start "NOVA_LINHA" - public final void mNOVA_LINHA() throws RecognitionException { + // $ANTLR start "NEWLINE" + public final void mNEWLINE() throws RecognitionException { try { - int _type = NOVA_LINHA; + int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:12: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:14: '\\n' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:9: ( '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:11: '\\n' { match('\n'); @@ -1954,15 +1978,15 @@ public final void mNOVA_LINHA() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "NOVA_LINHA" + // $ANTLR end "NEWLINE" // $ANTLR start "WS" public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -1988,8 +2012,8 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS ) - int alt5=76; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | INIT | INT | VOID | NULL | INTEIRO | ID | NEWLINE | WS ) + int alt5=77; alt5 = dfa5.predict(input); switch (alt5) { case 1 : @@ -2537,63 +2561,71 @@ public void mTokens() throws RecognitionException { } break; case 69 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: INIT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__90 { - mINIT(); + mT__90(); } break; case 70 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:423: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: INIT { - mINT(); + mINIT(); } break; case 71 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:427: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:429: INT { - mVOID(); + mINT(); } break; case 72 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:432: NULL + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:433: VOID { - mNULL(); + mVOID(); } break; case 73 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:437: INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:438: NULL { - mINTEIRO(); + mNULL(); } break; case 74 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:445: ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:443: INTEIRO { - mID(); + mINTEIRO(); } break; case 75 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:448: NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:451: ID { - mNOVA_LINHA(); + mID(); } break; case 76 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:459: WS + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:454: NEWLINE + { + mNEWLINE(); + + + } + break; + case 77 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:462: WS { mWS(); @@ -2608,21 +2640,21 @@ public void mTokens() throws RecognitionException { protected DFA5 dfa5 = new DFA5(this); static final String DFA5_eotS = - "\5\uffff\1\31\7\22\1\uffff\1\62\1\63\1\22\11\uffff\30\22\2\uffff"+ - "\4\22\1\130\6\22\1\uffff\11\22\1\153\4\22\1\160\1\161\1\162\1\22"+ - "\1\165\5\22\1\uffff\1\22\1\174\1\175\1\176\1\22\1\u0080\1\uffff"+ - "\1\u0082\1\u0083\1\u0084\1\u0085\1\u0086\1\u0087\1\u0088\1\22\1"+ - "\u008a\1\u008b\1\22\1\uffff\1\u008d\1\22\1\u008f\1\u0090\3\uffff"+ - "\1\u0091\1\u0092\1\uffff\1\22\1\u0091\1\22\1\u0096\2\22\3\uffff"+ - "\1\22\11\uffff\1\u009c\2\uffff\1\22\1\uffff\1\22\4\uffff\2\22\2"+ - "\uffff\1\u00a6\2\22\3\uffff\1\22\1\u00b0\1\22\7\uffff\1\22\6\uffff"+ - "\1\22\2\uffff\1\22\4\uffff\1\u00c8\13\uffff\1\22\4\uffff\1\u00ce"+ - "\5\uffff\1\22\1\uffff\3\22\1\u00d3\1\uffff"; + "\5\uffff\1\32\7\22\1\uffff\1\63\1\64\1\22\12\uffff\30\22\2\uffff"+ + "\4\22\1\131\6\22\1\uffff\11\22\1\154\4\22\1\161\1\162\1\163\1\22"+ + "\1\166\5\22\1\uffff\1\22\1\175\1\176\1\177\1\22\1\u0081\1\uffff"+ + "\1\u0083\1\u0084\1\u0085\1\u0086\1\u0087\1\u0088\1\u0089\1\22\1"+ + "\u008b\1\u008c\1\22\1\uffff\1\u008e\1\22\1\u0090\1\u0091\3\uffff"+ + "\1\u0092\1\u0093\1\uffff\1\22\1\u0092\1\22\1\u0097\2\22\3\uffff"+ + "\1\22\11\uffff\1\u009d\2\uffff\1\22\1\uffff\1\22\4\uffff\2\22\2"+ + "\uffff\1\u00a7\2\22\3\uffff\1\22\1\u00b1\1\22\7\uffff\1\22\6\uffff"+ + "\1\22\2\uffff\1\22\4\uffff\1\u00c9\13\uffff\1\22\4\uffff\1\u00cf"+ + "\5\uffff\1\22\1\uffff\3\22\1\u00d4\1\uffff"; static final String DFA5_eofS = - "\u00d4\uffff"; + "\u00d5\uffff"; static final String DFA5_minS = "\1\11\1\uffff\1\143\2\uffff\1\56\1\143\1\165\1\145\1\141\1\144\1"+ - "\145\1\157\1\uffff\2\56\1\125\11\uffff\2\157\1\164\1\160\2\164\1"+ + "\145\1\157\1\uffff\2\56\1\125\12\uffff\2\157\1\164\1\160\2\164\1"+ "\144\1\157\1\151\1\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164"+ "\1\157\1\143\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1\156\1"+ "\141\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161\3\145"+ @@ -2637,7 +2669,7 @@ public void mTokens() throws RecognitionException { "\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56\1\uffff"; static final String DFA5_maxS = "\1\172\1\uffff\1\163\2\uffff\1\172\1\163\1\165\1\157\1\170\1\144"+ - "\2\165\1\uffff\2\172\1\125\11\uffff\2\157\1\164\1\160\2\164\1\156"+ + "\2\165\1\uffff\2\172\1\125\12\uffff\2\157\1\164\1\160\2\164\1\156"+ "\1\157\1\151\2\156\1\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143"+ "\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1\156\1\141\1\157\1"+ "\172\1\146\1\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145\1\143"+ @@ -2651,40 +2683,41 @@ public void mTokens() throws RecognitionException { "\1\uffff\1\144\4\uffff\1\172\10\uffff\2\164\1\uffff\1\145\4\uffff"+ "\1\172\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; static final String DFA5_acceptS = - "\1\uffff\1\1\1\uffff\1\6\1\7\10\uffff\1\105\3\uffff\1\111\1\112"+ - "\1\113\1\114\1\2\1\3\1\4\1\5\1\10\30\uffff\1\106\1\107\44\uffff"+ - "\1\24\22\uffff\1\66\4\uffff\1\77\1\100\1\101\2\uffff\1\102\6\uffff"+ - "\1\26\1\27\1\30\1\uffff\1\40\1\uffff\1\47\1\50\1\51\1\52\1\53\1"+ - "\54\1\55\1\uffff\1\63\1\64\1\uffff\1\67\1\uffff\1\75\1\76\1\110"+ - "\1\103\3\uffff\1\12\5\uffff\1\56\3\uffff\1\11\1\13\1\14\1\15\1\16"+ - "\1\uffff\1\17\3\uffff\1\57\1\60\1\61\1\62\2\uffff\1\70\1\uffff\1"+ - "\20\1\21\1\22\1\23\1\uffff\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1"+ - "\41\2\uffff\1\46\1\uffff\1\71\1\72\1\73\1\74\1\uffff\1\25\1\42\1"+ - "\43\1\44\1\45\1\uffff\1\104\4\uffff\1\65"; + "\1\uffff\1\1\1\uffff\1\7\1\10\10\uffff\1\106\3\uffff\1\112\1\113"+ + "\1\114\1\115\1\2\1\3\1\4\1\5\1\6\1\11\30\uffff\1\107\1\110\44\uffff"+ + "\1\25\22\uffff\1\67\4\uffff\1\100\1\101\1\102\2\uffff\1\103\6\uffff"+ + "\1\27\1\30\1\31\1\uffff\1\41\1\uffff\1\50\1\51\1\52\1\53\1\54\1"+ + "\55\1\56\1\uffff\1\64\1\65\1\uffff\1\70\1\uffff\1\76\1\77\1\111"+ + "\1\104\3\uffff\1\13\5\uffff\1\57\3\uffff\1\12\1\14\1\15\1\16\1\17"+ + "\1\uffff\1\20\3\uffff\1\60\1\61\1\62\1\63\2\uffff\1\71\1\uffff\1"+ + "\21\1\22\1\23\1\24\1\uffff\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1"+ + "\42\2\uffff\1\47\1\uffff\1\72\1\73\1\74\1\75\1\uffff\1\26\1\43\1"+ + "\44\1\45\1\46\1\uffff\1\105\4\uffff\1\66"; static final String DFA5_specialS = - "\u00d4\uffff}>"; + "\u00d5\uffff}>"; static final String[] DFA5_transitionS = { "\1\24\1\23\2\uffff\1\24\22\uffff\1\24\7\uffff\1\1\4\uffff\1"+ "\21\1\2\1\3\12\21\1\4\1\uffff\1\15\4\uffff\10\22\1\16\2\22\1"+ "\5\1\22\1\20\7\22\1\17\4\22\6\uffff\1\6\2\22\1\7\2\22\1\10\1"+ "\22\1\11\2\22\1\12\1\22\1\13\1\22\1\14\12\22", "", - "\1\25\2\uffff\1\26\6\uffff\1\27\5\uffff\1\30", + "\1\25\1\uffff\1\26\1\27\6\uffff\1\30\5\uffff\1\31", "", "", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\32\10\uffff\1\33\6\uffff\1\34", - "\1\35", - "\1\36\11\uffff\1\37", - "\1\40\1\uffff\1\41\1\42\1\uffff\1\43\2\uffff\1\44\2\uffff\1"+ - "\45\1\46\1\47\1\50\2\uffff\1\51\1\52\4\uffff\1\53", - "\1\54", - "\1\55\11\uffff\1\56\5\uffff\1\57", - "\1\60\5\uffff\1\61", + "\1\33\10\uffff\1\34\6\uffff\1\35", + "\1\36", + "\1\37\11\uffff\1\40", + "\1\41\1\uffff\1\42\1\43\1\uffff\1\44\2\uffff\1\45\2\uffff\1"+ + "\46\1\47\1\50\1\51\2\uffff\1\52\1\53\4\uffff\1\54", + "\1\55", + "\1\56\11\uffff\1\57\5\uffff\1\60", + "\1\61\5\uffff\1\62", "", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\64", + "\1\65", + "", "", "", "", @@ -2694,38 +2727,38 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\65", "\1\66", "\1\67", "\1\70", "\1\71", "\1\72", - "\1\73\11\uffff\1\74", - "\1\75", + "\1\73", + "\1\74\11\uffff\1\75", "\1\76", - "\1\77\5\uffff\1\100\1\uffff\1\101\4\uffff\1\102\1\uffff\1\103", - "\1\104", + "\1\77", + "\1\100\5\uffff\1\101\1\uffff\1\102\4\uffff\1\103\1\uffff\1"+ + "\104", "\1\105", "\1\106", - "\1\107\20\uffff\1\110", - "\1\111", + "\1\107", + "\1\110\20\uffff\1\111", "\1\112", - "\1\113\1\114", - "\1\115", + "\1\113", + "\1\114\1\115", "\1\116", "\1\117", "\1\120", "\1\121", "\1\122", "\1\123", + "\1\124", "", "", - "\1\124", "\1\125", "\1\126", "\1\127", + "\1\130", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\131", "\1\132", "\1\133", "\1\134", @@ -2733,37 +2766,38 @@ public void mTokens() throws RecognitionException { "\1\136", "\1\137", "\1\140", - "\1\141\16\uffff\1\142", - "\1\143\16\uffff\1\144", - "\1\145", + "\1\141", + "\1\142\16\uffff\1\143", + "\1\144\16\uffff\1\145", "\1\146", "\1\147", "\1\150", "\1\151", "\1\152", + "\1\153", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\154", "\1\155", "\1\156", "\1\157", + "\1\160", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\163", - "\1\22\1\uffff\2\22\1\164\7\22\7\uffff\32\22\6\uffff\32\22", - "\1\166", + "\1\164", + "\1\22\1\uffff\2\22\1\165\7\22\7\uffff\32\22\6\uffff\32\22", "\1\167", "\1\170", "\1\171", "\1\172", - "", "\1\173", + "", + "\1\174", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\177", + "\1\u0080", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u0081", + "\1\u0082", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", @@ -2771,13 +2805,13 @@ public void mTokens() throws RecognitionException { "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u0089", + "\1\u008a", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u008c", + "\1\u008d", "", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u008e", + "\1\u008f", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", @@ -2786,71 +2820,71 @@ public void mTokens() throws RecognitionException { "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", - "\1\u0093", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\u0094", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u0095\1\uffff\32"+ + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u0095", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u0096\1\uffff\32"+ "\22", - "\1\u0097", "\1\u0098", + "\1\u0099", "", "", "", - "\1\u0099", - "", "\1\u009a", "", + "\1\u009b", "", "", "", "", "", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u009b\1\uffff\32"+ - "\22", "", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u009c\1\uffff\32"+ + "\22", "", - "\1\u009d", "", "\1\u009e", "", + "\1\u009f", + "", "", "", "", - "\1\u009f", "\1\u00a0", - "\1\u00a1\1\u00a2\1\u00a3\1\u00a4", + "\1\u00a1", + "\1\u00a2\1\u00a3\1\u00a4\1\u00a5", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00a5\1\uffff\32"+ + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00a6\1\uffff\32"+ "\22", - "\1\u00a7", "\1\u00a8", "\1\u00a9", - "\1\u00aa\1\u00ab\1\u00ac\1\u00ad", + "\1\u00aa", + "\1\u00ab\1\u00ac\1\u00ad\1\u00ae", "", - "\1\u00ae", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00af\1\uffff\32"+ + "\1\u00af", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00b0\1\uffff\32"+ "\22", - "\1\u00b1", + "\1\u00b2", "", "", "", "", "", - "\1\u00b2\1\u00b3\1\u00b4\1\u00b5", + "\1\u00b3\1\u00b4\1\u00b5\1\u00b6", "", - "\1\u00b6", - "\1\u00b7\1\u00b8\1\u00b9\1\u00ba\1\u00bb\1\u00bc\67\uffff\1"+ - "\u00bd", - "\1\u00be\1\uffff\1\u00bf\4\uffff\1\u00c0\1\uffff\1\u00c1", + "\1\u00b7", + "\1\u00b8\1\u00b9\1\u00ba\1\u00bb\1\u00bc\1\u00bd\67\uffff\1"+ + "\u00be", + "\1\u00bf\1\uffff\1\u00c0\4\uffff\1\u00c1\1\uffff\1\u00c2", "", "", "", "", - "\1\u00c2", - "\1\u00c3\1\u00c4\1\u00c5\1\u00c6", + "\1\u00c3", + "\1\u00c4\1\u00c5\1\u00c6\1\u00c7", "", - "\1\u00c7", + "\1\u00c8", "", "", "", @@ -2864,10 +2898,10 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00c9\16\uffff\1\u00ca", - "\1\u00cb\16\uffff\1\u00cc", + "\1\u00ca\16\uffff\1\u00cb", + "\1\u00cc\16\uffff\1\u00cd", "", - "\1\u00cd", + "\1\u00ce", "", "", "", @@ -2878,11 +2912,11 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00cf", - "", "\1\u00d0", + "", "\1\u00d1", "\1\u00d2", + "\1\u00d3", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "" }; @@ -2917,7 +2951,7 @@ public DFA5(BaseRecognizer recognizer) { this.transition = DFA5_transition; } public String getDescription() { - return "1:1: Tokens : ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | INIT | INT | VOID | NULL | INTEIRO | ID | NOVA_LINHA | WS );"; + return "1:1: Tokens : ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | INIT | INT | VOID | NULL | INTEIRO | ID | NEWLINE | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index facc9e1..426554c 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-12 00:25:25 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-12 21:30:10 package br.ufpb.iged.interpretador.parser; @@ -18,7 +18,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; @@ -90,6 +90,7 @@ public abstract class AssemblerParser extends Parser { public static final int T__87=87; public static final int T__88=88; public static final int T__89=89; + public static final int T__90=90; public static final int ARITMETICA=4; public static final int DESVIO=5; public static final int EXTENDS=6; @@ -102,7 +103,7 @@ public abstract class AssemblerParser extends Parser { public static final int LOAD=13; public static final int LOGICA=14; public static final int MEMBRO_CLASSE=15; - public static final int NOVA_LINHA=16; + public static final int NEWLINE=16; public static final int NULL=17; public static final int PILHA=18; public static final int STORE=19; @@ -152,7 +153,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: programa : ( comando )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: programa : ( instrucao )* ; public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -160,38 +161,38 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept BytecodesAST root_0 = null; - AssemblerParser.comando_return comando1 =null; + AssemblerParser.instrucao_return instrucao1 =null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:10: ( ( comando )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( instrucao )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( comando )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( instrucao )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NOVA_LINHA||LA1_0==23||LA1_0==25||(LA1_0 >= 30 && LA1_0 <= 89)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==23||LA1_0==26||(LA1_0 >= 31 && LA1_0 <= 90)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: comando + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: instrucao { - pushFollow(FOLLOW_comando_in_programa107); - comando1=comando(); + pushFollow(FOLLOW_instrucao_in_programa107); + instrucao1=instrucao(); state._fsp--; - adaptor.addChild(root_0, comando1.getTree()); + adaptor.addChild(root_0, instrucao1.getTree()); } break; @@ -226,82 +227,202 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept // $ANTLR end "programa" - public static class comando_return extends ParserRuleReturnScope { + public static class instrucao_return extends ParserRuleReturnScope { BytecodesAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: comando : ( label instrucao | instrucao ) ; - public final AssemblerParser.comando_return comando() throws RecognitionException { - AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); + // $ANTLR start "instrucao" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); + public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { + AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - AssemblerParser.label_return label2 =null; + Token string_literal4=null; + AssemblerParser.operacao_return operacao2 =null; + + AssemblerParser.definicaoClasse_return definicaoClasse3 =null; + + + BytecodesAST string_literal4_tree=null; + + try { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:11: ( operacao | definicaoClasse ( '.end class' )? ) + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 31 && LA3_0 <= 90)) ) { + alt3=1; + } + else if ( (LA3_0==23||LA3_0==26) ) { + alt3=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + + } + switch (alt3) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:13: operacao + { + root_0 = (BytecodesAST)adaptor.nil(); + + + pushFollow(FOLLOW_operacao_in_instrucao135); + operacao2=operacao(); + + state._fsp--; + + adaptor.addChild(root_0, operacao2.getTree()); + + } + break; + case 2 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:13: definicaoClasse ( '.end class' )? + { + root_0 = (BytecodesAST)adaptor.nil(); + + + pushFollow(FOLLOW_definicaoClasse_in_instrucao150); + definicaoClasse3=definicaoClasse(); - AssemblerParser.instrucao_return instrucao3 =null; + state._fsp--; + + adaptor.addChild(root_0, definicaoClasse3.getTree()); + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:29: ( '.end class' )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==24) ) { + alt2=1; + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:30: '.end class' + { + string_literal4=(Token)match(input,24,FOLLOW_24_in_instrucao153); + string_literal4_tree = + (BytecodesAST)adaptor.create(string_literal4) + ; + adaptor.addChild(root_0, string_literal4_tree); + + + } + break; + + } - AssemblerParser.instrucao_return instrucao4 =null; + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "instrucao" + + + public static class operacao_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "operacao" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: operacao : ( label comando | comando ) ; + public final AssemblerParser.operacao_return operacao() throws RecognitionException { + AssemblerParser.operacao_return retval = new AssemblerParser.operacao_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + AssemblerParser.label_return label5 =null; + + AssemblerParser.comando_return comando6 =null; + + AssemblerParser.comando_return comando7 =null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: ( ( label instrucao | instrucao ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:11: ( label instrucao | instrucao ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:10: ( ( label comando | comando ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( label comando | comando ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:11: ( label instrucao | instrucao ) - int alt2=2; - int LA2_0 = input.LA(1); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( label comando | comando ) + int alt4=2; + int LA4_0 = input.LA(1); - if ( (LA2_0==ID) ) { - alt2=1; + if ( (LA4_0==ID) ) { + alt4=1; } - else if ( (LA2_0==NOVA_LINHA||LA2_0==23||LA2_0==25||(LA2_0 >= 30 && LA2_0 <= 89)) ) { - alt2=2; + else if ( (LA4_0==NEWLINE||(LA4_0 >= 31 && LA4_0 <= 90)) ) { + alt4=2; } else { NoViableAltException nvae = - new NoViableAltException("", 2, 0, input); + new NoViableAltException("", 4, 0, input); throw nvae; } - switch (alt2) { + switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: label instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:13: label comando { - pushFollow(FOLLOW_label_in_comando127); - label2=label(); + pushFollow(FOLLOW_label_in_operacao175); + label5=label(); state._fsp--; - adaptor.addChild(root_0, label2.getTree()); + adaptor.addChild(root_0, label5.getTree()); - pushFollow(FOLLOW_instrucao_in_comando129); - instrucao3=instrucao(); + pushFollow(FOLLOW_comando_in_operacao177); + comando6=comando(); state._fsp--; - adaptor.addChild(root_0, instrucao3.getTree()); + adaptor.addChild(root_0, comando6.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:30: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:29: comando { - pushFollow(FOLLOW_instrucao_in_comando133); - instrucao4=instrucao(); + pushFollow(FOLLOW_comando_in_operacao181); + comando7=comando(); state._fsp--; - adaptor.addChild(root_0, instrucao4.getTree()); + adaptor.addChild(root_0, comando7.getTree()); } break; @@ -330,7 +451,7 @@ else if ( (LA2_0==NOVA_LINHA||LA2_0==23||LA2_0==25||(LA2_0 >= 30 && LA2_0 <= 89) } return retval; } - // $ANTLR end "comando" + // $ANTLR end "operacao" public static class label_return extends ParserRuleReturnScope { @@ -340,7 +461,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: label : a= ID ':' -> ^( LABEL $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: label : a= ID ':' -> ^( LABEL $a) ; public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -349,23 +470,23 @@ public final AssemblerParser.label_return label() throws RecognitionException { BytecodesAST root_0 = null; Token a=null; - Token char_literal5=null; + Token char_literal8=null; BytecodesAST a_tree=null; - BytecodesAST char_literal5_tree=null; + BytecodesAST char_literal8_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: (a= ID ':' -> ^( LABEL $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: a= ID ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label155); + a=(Token)match(input,ID,FOLLOW_ID_in_label203); stream_ID.add(a); - char_literal5=(Token)match(input,28,FOLLOW_28_in_label157); - stream_28.add(char_literal5); + char_literal8=(Token)match(input,29,FOLLOW_29_in_label205); + stream_29.add(char_literal8); // AST REWRITE @@ -380,9 +501,9 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 48:20: -> ^( LABEL $a) + // 52:20: -> ^( LABEL $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:23: ^( LABEL $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:23: ^( LABEL $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -423,129 +544,120 @@ public final AssemblerParser.label_return label() throws RecognitionException { // $ANTLR end "label" - public static class instrucao_return extends ParserRuleReturnScope { + public static class comando_return extends ParserRuleReturnScope { BytecodesAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: instrucao : ( definicaoClasse | manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NOVA_LINHA ; - public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { - AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); + // $ANTLR start "comando" + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ; + public final AssemblerParser.comando_return comando() throws RecognitionException { + AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - Token string_literal16=null; - Token NOVA_LINHA17=null; - AssemblerParser.definicaoClasse_return definicaoClasse6 =null; - - AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos7 =null; + Token string_literal18=null; + Token NEWLINE19=null; + AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos9 =null; - AssemblerParser.aritmetica_return aritmetica8 =null; + AssemblerParser.aritmetica_return aritmetica10 =null; - AssemblerParser.load_return load9 =null; + AssemblerParser.load_return load11 =null; - AssemblerParser.loadint_return loadint10 =null; + AssemblerParser.loadint_return loadint12 =null; - AssemblerParser.store_return store11 =null; + AssemblerParser.store_return store13 =null; - AssemblerParser.storeint_return storeint12 =null; + AssemblerParser.storeint_return storeint14 =null; - AssemblerParser.desvio_return desvio13 =null; + AssemblerParser.desvio_return desvio15 =null; - AssemblerParser.logica_return logica14 =null; + AssemblerParser.logica_return logica16 =null; - AssemblerParser.pilha_return pilha15 =null; + AssemblerParser.pilha_return pilha17 =null; - BytecodesAST string_literal16_tree=null; - BytecodesAST NOVA_LINHA17_tree=null; + BytecodesAST string_literal18_tree=null; + BytecodesAST NEWLINE19_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:10: ( ( definicaoClasse | manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NOVA_LINHA ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NOVA_LINHA + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( definicaoClasse | manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? - int alt3=12; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? + int alt5=11; switch ( input.LA(1) ) { - case 23: - case 25: - { - alt3=1; - } - break; - case 42: - case 74: - case 85: - case 89: + case 43: + case 75: + case 86: + case 90: { - alt3=2; + alt5=1; } break; - case 44: - case 53: - case 66: - case 72: + case 45: + case 54: + case 67: case 73: - case 76: - case 82: + case 74: + case 77: + case 83: { - alt3=3; + alt5=2; } break; - case 30: - case 32: + case 31: case 33: case 34: case 35: - case 46: + case 36: case 47: case 48: case 49: case 50: case 51: case 52: - case 68: + case 53: case 69: case 70: case 71: + case 72: { - alt3=4; + alt5=3; } break; - case 31: - case 67: - case 84: + case 32: + case 68: + case 85: { - alt3=5; + alt5=4; } break; - case 37: case 38: case 39: case 40: - case 78: + case 41: case 79: case 80: case 81: + case 82: { - alt3=6; + alt5=5; } break; - case 36: - case 77: + case 37: + case 78: { - alt3=7; + alt5=6; } break; - case 43: - case 54: + case 44: case 55: case 56: case 57: @@ -557,160 +669,149 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce case 63: case 64: case 65: + case 66: { - alt3=8; + alt5=7; } break; - case 45: - case 75: - case 83: + case 46: + case 76: + case 84: { - alt3=9; + alt5=8; } break; - case 41: - case 87: + case 42: case 88: + case 89: { - alt3=10; + alt5=9; } break; - case 86: + case 87: { - alt3=11; + alt5=10; } break; } - switch (alt3) { + switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:17: definicaoClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:17: manipulacaoObjetos { - pushFollow(FOLLOW_definicaoClasse_in_instrucao178); - definicaoClasse6=definicaoClasse(); + pushFollow(FOLLOW_manipulacaoObjetos_in_comando228); + manipulacaoObjetos9=manipulacaoObjetos(); state._fsp--; - adaptor.addChild(root_0, definicaoClasse6.getTree()); + adaptor.addChild(root_0, manipulacaoObjetos9.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:17: manipulacaoObjetos + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:17: aritmetica { - pushFollow(FOLLOW_manipulacaoObjetos_in_instrucao197); - manipulacaoObjetos7=manipulacaoObjetos(); + pushFollow(FOLLOW_aritmetica_in_comando247); + aritmetica10=aritmetica(); state._fsp--; - adaptor.addChild(root_0, manipulacaoObjetos7.getTree()); + adaptor.addChild(root_0, aritmetica10.getTree()); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:17: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:17: load { - pushFollow(FOLLOW_aritmetica_in_instrucao216); - aritmetica8=aritmetica(); + pushFollow(FOLLOW_load_in_comando266); + load11=load(); state._fsp--; - adaptor.addChild(root_0, aritmetica8.getTree()); + adaptor.addChild(root_0, load11.getTree()); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:17: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:17: loadint { - pushFollow(FOLLOW_load_in_instrucao235); - load9=load(); + pushFollow(FOLLOW_loadint_in_comando284); + loadint12=loadint(); state._fsp--; - adaptor.addChild(root_0, load9.getTree()); + adaptor.addChild(root_0, loadint12.getTree()); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:17: loadint + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: store { - pushFollow(FOLLOW_loadint_in_instrucao253); - loadint10=loadint(); + pushFollow(FOLLOW_store_in_comando303); + store13=store(); state._fsp--; - adaptor.addChild(root_0, loadint10.getTree()); + adaptor.addChild(root_0, store13.getTree()); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:17: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: storeint { - pushFollow(FOLLOW_store_in_instrucao272); - store11=store(); + pushFollow(FOLLOW_storeint_in_comando321); + storeint14=storeint(); state._fsp--; - adaptor.addChild(root_0, store11.getTree()); + adaptor.addChild(root_0, storeint14.getTree()); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:17: storeint + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: desvio { - pushFollow(FOLLOW_storeint_in_instrucao290); - storeint12=storeint(); + pushFollow(FOLLOW_desvio_in_comando340); + desvio15=desvio(); state._fsp--; - adaptor.addChild(root_0, storeint12.getTree()); + adaptor.addChild(root_0, desvio15.getTree()); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:17: desvio + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: logica { - pushFollow(FOLLOW_desvio_in_instrucao309); - desvio13=desvio(); + pushFollow(FOLLOW_logica_in_comando359); + logica16=logica(); state._fsp--; - adaptor.addChild(root_0, desvio13.getTree()); + adaptor.addChild(root_0, logica16.getTree()); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: logica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: pilha { - pushFollow(FOLLOW_logica_in_instrucao328); - logica14=logica(); + pushFollow(FOLLOW_pilha_in_comando377); + pilha17=pilha(); state._fsp--; - adaptor.addChild(root_0, logica14.getTree()); + adaptor.addChild(root_0, pilha17.getTree()); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: pilha - { - pushFollow(FOLLOW_pilha_in_instrucao346); - pilha15=pilha(); - - state._fsp--; - - adaptor.addChild(root_0, pilha15.getTree()); - - } - break; - case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: 'nop' { - string_literal16=(Token)match(input,86,FOLLOW_86_in_instrucao365); - string_literal16_tree = - (BytecodesAST)adaptor.create(string_literal16) + string_literal18=(Token)match(input,87,FOLLOW_87_in_comando396); + string_literal18_tree = + (BytecodesAST)adaptor.create(string_literal18) ; - adaptor.addChild(root_0, string_literal16_tree); + adaptor.addChild(root_0, string_literal18_tree); } @@ -719,11 +820,11 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } - NOVA_LINHA17=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_instrucao381); - NOVA_LINHA17_tree = - (BytecodesAST)adaptor.create(NOVA_LINHA17) + NEWLINE19=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando412); + NEWLINE19_tree = + (BytecodesAST)adaptor.create(NEWLINE19) ; - adaptor.addChild(root_0, NOVA_LINHA17_tree); + adaptor.addChild(root_0, NEWLINE19_tree); } @@ -747,7 +848,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce } return retval; } - // $ANTLR end "instrucao" + // $ANTLR end "comando" public static class definicaoClasse_return extends ParserRuleReturnScope { @@ -757,7 +858,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:1: definicaoClasse : ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:1: definicaoClasse : ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID NEWLINE ); public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -765,81 +866,91 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST root_0 = null; - Token string_literal18=null; - Token ID19=null; - Token NOVA_LINHA20=null; - Token string_literal23=null; - Token INIT24=null; - Token string_literal25=null; - Token VOID26=null; - AssemblerParser.superClasse_return superClasse21 =null; + Token string_literal20=null; + Token ID21=null; + Token NEWLINE22=null; + Token NEWLINE24=null; + Token NEWLINE26=null; + Token string_literal27=null; + Token INIT28=null; + Token string_literal29=null; + Token VOID30=null; + Token NEWLINE31=null; + AssemblerParser.superClasse_return superClasse23 =null; - AssemblerParser.membroClasse_return membroClasse22 =null; + AssemblerParser.membroClasse_return membroClasse25 =null; - BytecodesAST string_literal18_tree=null; - BytecodesAST ID19_tree=null; - BytecodesAST NOVA_LINHA20_tree=null; - BytecodesAST string_literal23_tree=null; - BytecodesAST INIT24_tree=null; - BytecodesAST string_literal25_tree=null; - BytecodesAST VOID26_tree=null; - RewriteRuleTokenStream stream_NOVA_LINHA=new RewriteRuleTokenStream(adaptor,"token NOVA_LINHA"); + BytecodesAST string_literal20_tree=null; + BytecodesAST ID21_tree=null; + BytecodesAST NEWLINE22_tree=null; + BytecodesAST NEWLINE24_tree=null; + BytecodesAST NEWLINE26_tree=null; + BytecodesAST string_literal27_tree=null; + BytecodesAST INIT28_tree=null; + BytecodesAST string_literal29_tree=null; + BytecodesAST VOID30_tree=null; + BytecodesAST NEWLINE31_tree=null; + RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: ( '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID ) - int alt6=2; - int LA6_0 = input.LA(1); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID NEWLINE ) + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA6_0==23) ) { - alt6=1; + if ( (LA8_0==23) ) { + alt8=1; } - else if ( (LA6_0==25) ) { - alt6=2; + else if ( (LA8_0==26) ) { + alt8=2; } else { NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); + new NoViableAltException("", 8, 0, input); throw nvae; } - switch (alt6) { + switch (alt8) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:19: '.class' ID NOVA_LINHA ( superClasse )? ( membroClasse )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal18=(Token)match(input,23,FOLLOW_23_in_definicaoClasse403); - stream_23.add(string_literal18); + string_literal20=(Token)match(input,23,FOLLOW_23_in_definicaoClasse438); + stream_23.add(string_literal20); - ID19=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse405); - stream_ID.add(ID19); + ID21=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse440); + stream_ID.add(ID21); - NOVA_LINHA20=(Token)match(input,NOVA_LINHA,FOLLOW_NOVA_LINHA_in_definicaoClasse407); - stream_NOVA_LINHA.add(NOVA_LINHA20); + NEWLINE22=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse442); + stream_NEWLINE.add(NEWLINE22); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:42: ( superClasse )? - int alt4=2; - int LA4_0 = input.LA(1); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:27: ( superClasse NEWLINE )? + int alt6=2; + int LA6_0 = input.LA(1); - if ( (LA4_0==26) ) { - alt4=1; + if ( (LA6_0==27) ) { + alt6=1; } - switch (alt4) { + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:42: superClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:28: superClasse NEWLINE { - pushFollow(FOLLOW_superClasse_in_definicaoClasse409); - superClasse21=superClasse(); + pushFollow(FOLLOW_superClasse_in_definicaoClasse445); + superClasse23=superClasse(); state._fsp--; - stream_superClasse.add(superClasse21.getTree()); + stream_superClasse.add(superClasse23.getTree()); + + NEWLINE24=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse447); + stream_NEWLINE.add(NEWLINE24); + } break; @@ -847,44 +958,48 @@ else if ( (LA6_0==25) ) { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:55: ( membroClasse )+ - int cnt5=0; - loop5: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:50: ( membroClasse NEWLINE )+ + int cnt7=0; + loop7: do { - int alt5=2; - int LA5_0 = input.LA(1); + int alt7=2; + int LA7_0 = input.LA(1); - if ( (LA5_0==24) ) { - alt5=1; + if ( (LA7_0==25) ) { + alt7=1; } - switch (alt5) { + switch (alt7) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:55: membroClasse + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:51: membroClasse NEWLINE { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse412); - membroClasse22=membroClasse(); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse452); + membroClasse25=membroClasse(); state._fsp--; - stream_membroClasse.add(membroClasse22.getTree()); + stream_membroClasse.add(membroClasse25.getTree()); + + NEWLINE26=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse454); + stream_NEWLINE.add(NEWLINE26); + } break; default : - if ( cnt5 >= 1 ) break loop5; + if ( cnt7 >= 1 ) break loop7; EarlyExitException eee = - new EarlyExitException(5, input); + new EarlyExitException(7, input); throw eee; } - cnt5++; + cnt7++; } while (true); // AST REWRITE - // elements: ID, membroClasse, superClasse, 23 + // elements: superClasse, 23, ID, membroClasse // token labels: // rule labels: retval // token list labels: @@ -894,9 +1009,9 @@ else if ( (LA6_0==25) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 64:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 68:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -907,14 +1022,14 @@ else if ( (LA6_0==25) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:36: ( superClasse )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:36: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -944,37 +1059,44 @@ else if ( (LA6_0==25) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:19: '.method' INIT '()' VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:19: '.method' INIT '()' VOID NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - string_literal23=(Token)match(input,25,FOLLOW_25_in_definicaoClasse471); - string_literal23_tree = - (BytecodesAST)adaptor.create(string_literal23) + string_literal27=(Token)match(input,26,FOLLOW_26_in_definicaoClasse514); + string_literal27_tree = + (BytecodesAST)adaptor.create(string_literal27) ; - adaptor.addChild(root_0, string_literal23_tree); + adaptor.addChild(root_0, string_literal27_tree); - INIT24=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse473); - INIT24_tree = - (BytecodesAST)adaptor.create(INIT24) + INIT28=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse516); + INIT28_tree = + (BytecodesAST)adaptor.create(INIT28) ; - adaptor.addChild(root_0, INIT24_tree); + adaptor.addChild(root_0, INIT28_tree); - string_literal25=(Token)match(input,22,FOLLOW_22_in_definicaoClasse475); - string_literal25_tree = - (BytecodesAST)adaptor.create(string_literal25) + string_literal29=(Token)match(input,22,FOLLOW_22_in_definicaoClasse518); + string_literal29_tree = + (BytecodesAST)adaptor.create(string_literal29) ; - adaptor.addChild(root_0, string_literal25_tree); + adaptor.addChild(root_0, string_literal29_tree); - VOID26=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse477); - VOID26_tree = - (BytecodesAST)adaptor.create(VOID26) + VOID30=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse520); + VOID30_tree = + (BytecodesAST)adaptor.create(VOID30) ; - adaptor.addChild(root_0, VOID26_tree); + adaptor.addChild(root_0, VOID30_tree); + + + NEWLINE31=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse522); + NEWLINE31_tree = + (BytecodesAST)adaptor.create(NEWLINE31) + ; + adaptor.addChild(root_0, NEWLINE31_tree); } @@ -1010,7 +1132,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1018,24 +1140,24 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST root_0 = null; - Token string_literal27=null; - Token ID28=null; + Token string_literal32=null; + Token ID33=null; - BytecodesAST string_literal27_tree=null; - BytecodesAST ID28_tree=null; + BytecodesAST string_literal32_tree=null; + BytecodesAST ID33_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26"); + RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:13: ( '.super' ID -> ^( EXTENDS ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: '.super' ID { - string_literal27=(Token)match(input,26,FOLLOW_26_in_superClasse518); - stream_26.add(string_literal27); + string_literal32=(Token)match(input,27,FOLLOW_27_in_superClasse563); + stream_27.add(string_literal32); - ID28=(Token)match(input,ID,FOLLOW_ID_in_superClasse520); - stream_ID.add(ID28); + ID33=(Token)match(input,ID,FOLLOW_ID_in_superClasse565); + stream_ID.add(ID33); // AST REWRITE @@ -1049,9 +1171,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 68:27: -> ^( EXTENDS ID ) + // 72:27: -> ^( EXTENDS ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:30: ^( EXTENDS ID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1101,7 +1223,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1109,34 +1231,34 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST root_0 = null; - Token string_literal29=null; - Token ID30=null; - AssemblerParser.tipo_return tipo31 =null; + Token string_literal34=null; + Token ID35=null; + AssemblerParser.tipo_return tipo36 =null; - BytecodesAST string_literal29_tree=null; - BytecodesAST ID30_tree=null; + BytecodesAST string_literal34_tree=null; + BytecodesAST ID35_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_24=new RewriteRuleTokenStream(adaptor,"token 24"); + RewriteRuleTokenStream stream_25=new RewriteRuleTokenStream(adaptor,"token 25"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:14: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:16: '.field' ID tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: '.field' ID tipo { - string_literal29=(Token)match(input,24,FOLLOW_24_in_membroClasse537); - stream_24.add(string_literal29); + string_literal34=(Token)match(input,25,FOLLOW_25_in_membroClasse587); + stream_25.add(string_literal34); - ID30=(Token)match(input,ID,FOLLOW_ID_in_membroClasse539); - stream_ID.add(ID30); + ID35=(Token)match(input,ID,FOLLOW_ID_in_membroClasse589); + stream_ID.add(ID35); - pushFollow(FOLLOW_tipo_in_membroClasse541); - tipo31=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse591); + tipo36=tipo(); state._fsp--; - stream_tipo.add(tipo31.getTree()); + stream_tipo.add(tipo36.getTree()); // AST REWRITE // elements: tipo, ID @@ -1149,9 +1271,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 70:33: -> ^( FIELD_DECL ID tipo ) + // 75:24: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:36: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:27: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1203,7 +1325,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1212,85 +1334,85 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal34=null; + Token char_literal39=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; - AssemblerParser.tipo_return tipo32 =null; + AssemblerParser.tipo_return tipo37 =null; - AssemblerParser.tipo_return tipo33 =null; + AssemblerParser.tipo_return tipo38 =null; BytecodesAST a_tree=null; - BytecodesAST char_literal34_tree=null; - RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); - RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); - RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); - RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); - RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); + BytecodesAST char_literal39_tree=null; + RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); + RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); + RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); + RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) - int alt7=4; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + int alt9=4; switch ( input.LA(1) ) { - case 42: + case 43: { - alt7=1; + alt9=1; } break; - case 89: + case 90: { - alt7=2; + alt9=2; } break; - case 74: + case 75: { - alt7=3; + alt9=3; } break; - case 85: + case 86: { - alt7=4; + alt9=4; } break; default: NoViableAltException nvae = - new NoViableAltException("", 7, 0, input); + new NoViableAltException("", 9, 0, input); throw nvae; } - switch (alt7) { + switch (alt9) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,42,FOLLOW_42_in_manipulacaoObjetos593); - stream_42.add(a); + a=(Token)match(input,43,FOLLOW_43_in_manipulacaoObjetos633); + stream_43.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos599); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos639); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos601); - tipo32=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos641); + tipo37=tipo(); state._fsp--; - stream_tipo.add(tipo32.getTree()); + stream_tipo.add(tipo37.getTree()); // AST REWRITE - // elements: tipo, 42, b + // elements: tipo, 43, b // token labels: // rule labels: retval, b // token list labels: @@ -1301,13 +1423,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 74:52: -> ^( 'getfield' $b tipo ) + // 78:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_42.nextNode() + stream_43.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1325,28 +1447,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,89,FOLLOW_89_in_manipulacaoObjetos639); - stream_89.add(a); + a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos679); + stream_90.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos645); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos685); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos647); - tipo33=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos687); + tipo38=tipo(); state._fsp--; - stream_tipo.add(tipo33.getTree()); + stream_tipo.add(tipo38.getTree()); // AST REWRITE - // elements: 89, b, tipo + // elements: b, tipo, 90 // token labels: // rule labels: retval, b // token list labels: @@ -1357,13 +1479,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 75:52: -> ^( 'putfield' $b tipo ) + // 79:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_89.nextNode() + stream_90.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1381,24 +1503,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,74,FOLLOW_74_in_manipulacaoObjetos686); - stream_74.add(a); + a=(Token)match(input,75,FOLLOW_75_in_manipulacaoObjetos726); + stream_75.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos692); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos732); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal34=(Token)match(input,27,FOLLOW_27_in_manipulacaoObjetos694); - stream_27.add(char_literal34); + char_literal39=(Token)match(input,28,FOLLOW_28_in_manipulacaoObjetos734); + stream_28.add(char_literal39); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos700); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos740); d=chamadaMetodo(); state._fsp--; @@ -1406,7 +1528,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, 74, d + // elements: c, d, 75 // token labels: // rule labels: retval, d, c // token list labels: @@ -1418,13 +1540,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 77:23: -> ^( 'invokespecial' $c $d) + // 81:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_74.nextNode() + stream_75.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -1442,13 +1564,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:22: a= 'new' c= classe + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:22: a= 'new' c= classe { - a=(Token)match(input,85,FOLLOW_85_in_manipulacaoObjetos762); - stream_85.add(a); + a=(Token)match(input,86,FOLLOW_86_in_manipulacaoObjetos802); + stream_86.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos767); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos807); c=classe(); state._fsp--; @@ -1456,7 +1578,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: 85, c + // elements: c, 86 // token labels: // rule labels: retval, c // token list labels: @@ -1467,13 +1589,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 78:42: -> ^( 'new' $c) + // 82:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:45: ^( 'new' $c) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_85.nextNode() + stream_86.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -1519,7 +1641,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: tipo : ( INT | VOID | tipoRef ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1527,84 +1649,84 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT35=null; - Token VOID36=null; - AssemblerParser.tipoRef_return tipoRef37 =null; + Token INT40=null; + Token VOID41=null; + AssemblerParser.tipoRef_return tipoRef42 =null; - BytecodesAST INT35_tree=null; - BytecodesAST VOID36_tree=null; + BytecodesAST INT40_tree=null; + BytecodesAST VOID41_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:6: ( INT | VOID | tipoRef ) - int alt8=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:6: ( INT | VOID | tipoRef ) + int alt10=3; switch ( input.LA(1) ) { case INT: { - alt8=1; + alt10=1; } break; case VOID: { - alt8=2; + alt10=2; } break; - case 29: + case 30: { - alt8=3; + alt10=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); + new NoViableAltException("", 10, 0, input); throw nvae; } - switch (alt8) { + switch (alt10) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: INT { root_0 = (BytecodesAST)adaptor.nil(); - INT35=(Token)match(input,INT,FOLLOW_INT_in_tipo806); - INT35_tree = - (BytecodesAST)adaptor.create(INT35) + INT40=(Token)match(input,INT,FOLLOW_INT_in_tipo846); + INT40_tree = + (BytecodesAST)adaptor.create(INT40) ; - adaptor.addChild(root_0, INT35_tree); + adaptor.addChild(root_0, INT40_tree); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:14: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:14: VOID { root_0 = (BytecodesAST)adaptor.nil(); - VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_tipo810); - VOID36_tree = - (BytecodesAST)adaptor.create(VOID36) + VOID41=(Token)match(input,VOID,FOLLOW_VOID_in_tipo850); + VOID41_tree = + (BytecodesAST)adaptor.create(VOID41) ; - adaptor.addChild(root_0, VOID36_tree); + adaptor.addChild(root_0, VOID41_tree); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:21: tipoRef + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:21: tipoRef { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo814); - tipoRef37=tipoRef(); + pushFollow(FOLLOW_tipoRef_in_tipo854); + tipoRef42=tipoRef(); state._fsp--; - adaptor.addChild(root_0, tipoRef37.getTree()); + adaptor.addChild(root_0, tipoRef42.getTree()); } break; @@ -1639,7 +1761,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1650,124 +1772,124 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); - RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); - RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); - RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); - RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); + RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); + RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); + RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); + RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); - RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); + RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt9=7; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + int alt11=7; switch ( input.LA(1) ) { - case 44: + case 45: { - alt9=1; + alt11=1; } break; - case 82: + case 83: { - alt9=2; + alt11=2; } break; - case 72: + case 73: { - alt9=3; + alt11=3; } break; - case 53: + case 54: { - alt9=4; + alt11=4; } break; - case 76: + case 77: { - alt9=5; + alt11=5; } break; - case 66: + case 67: { - alt9=6; + alt11=6; } break; - case 73: + case 74: { - alt9=7; + alt11=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 11, 0, input); throw nvae; } - switch (alt9) { + switch (alt11) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:19: a= 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:19: a= 'iadd' { - a=(Token)match(input,44,FOLLOW_44_in_aritmetica832); - stream_44.add(a); + a=(Token)match(input,45,FOLLOW_45_in_aritmetica872); + stream_45.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:19: a= 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:19: a= 'isub' { - a=(Token)match(input,82,FOLLOW_82_in_aritmetica856); - stream_82.add(a); + a=(Token)match(input,83,FOLLOW_83_in_aritmetica896); + stream_83.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:19: a= 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:19: a= 'imul' { - a=(Token)match(input,72,FOLLOW_72_in_aritmetica880); - stream_72.add(a); + a=(Token)match(input,73,FOLLOW_73_in_aritmetica920); + stream_73.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:19: a= 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:19: a= 'idiv' { - a=(Token)match(input,53,FOLLOW_53_in_aritmetica904); - stream_53.add(a); + a=(Token)match(input,54,FOLLOW_54_in_aritmetica944); + stream_54.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:19: a= 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:19: a= 'irem' { - a=(Token)match(input,76,FOLLOW_76_in_aritmetica928); - stream_76.add(a); + a=(Token)match(input,77,FOLLOW_77_in_aritmetica968); + stream_77.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:19: a= 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:19: a= 'iinc' { - a=(Token)match(input,66,FOLLOW_66_in_aritmetica952); - stream_66.add(a); + a=(Token)match(input,67,FOLLOW_67_in_aritmetica992); + stream_67.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:19: a= 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:19: a= 'ineg' { - a=(Token)match(input,73,FOLLOW_73_in_aritmetica976); - stream_73.add(a); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica1016); + stream_74.add(a); } @@ -1788,9 +1910,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 91:14: -> ^( ARITMETICA $a) + // 95:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1838,7 +1960,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1852,256 +1974,256 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); - RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); - RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); - RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); - RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); + RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); + RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); + RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt10=16; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt12=16; switch ( input.LA(1) ) { - case 52: - { - alt10=1; - } - break; - case 46: + case 53: { - alt10=2; + alt12=1; } break; case 47: { - alt10=3; + alt12=2; } break; case 48: { - alt10=4; + alt12=3; } break; case 49: { - alt10=5; + alt12=4; } break; case 50: { - alt10=6; + alt12=5; } break; case 51: { - alt10=7; + alt12=6; } break; - case 30: + case 52: { - alt10=8; + alt12=7; } break; - case 68: + case 31: { - alt10=9; + alt12=8; } break; case 69: { - alt10=10; + alt12=9; } break; case 70: { - alt10=11; + alt12=10; } break; case 71: { - alt10=12; + alt12=11; } break; - case 32: + case 72: { - alt10=13; + alt12=12; } break; case 33: { - alt10=14; + alt12=13; } break; case 34: { - alt10=15; + alt12=14; } break; case 35: { - alt10=16; + alt12=15; + } + break; + case 36: + { + alt12=16; } break; default: NoViableAltException nvae = - new NoViableAltException("", 10, 0, input); + new NoViableAltException("", 12, 0, input); throw nvae; } - switch (alt10) { + switch (alt12) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:13: a= 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:13: a= 'iconst_m1' { - a=(Token)match(input,52,FOLLOW_52_in_load1054); - stream_52.add(a); + a=(Token)match(input,53,FOLLOW_53_in_load1094); + stream_53.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:13: a= 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'iconst_0' { - a=(Token)match(input,46,FOLLOW_46_in_load1072); - stream_46.add(a); + a=(Token)match(input,47,FOLLOW_47_in_load1112); + stream_47.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:13: a= 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'iconst_1' { - a=(Token)match(input,47,FOLLOW_47_in_load1090); - stream_47.add(a); + a=(Token)match(input,48,FOLLOW_48_in_load1130); + stream_48.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:13: a= 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'iconst_2' { - a=(Token)match(input,48,FOLLOW_48_in_load1108); - stream_48.add(a); + a=(Token)match(input,49,FOLLOW_49_in_load1148); + stream_49.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:13: a= 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'iconst_3' { - a=(Token)match(input,49,FOLLOW_49_in_load1127); - stream_49.add(a); + a=(Token)match(input,50,FOLLOW_50_in_load1167); + stream_50.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'iconst_4' { - a=(Token)match(input,50,FOLLOW_50_in_load1145); - stream_50.add(a); + a=(Token)match(input,51,FOLLOW_51_in_load1185); + stream_51.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'iconst_5' { - a=(Token)match(input,51,FOLLOW_51_in_load1163); - stream_51.add(a); + a=(Token)match(input,52,FOLLOW_52_in_load1203); + stream_52.add(a); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'aconst_null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: a= 'aconst_null' { - a=(Token)match(input,30,FOLLOW_30_in_load1181); - stream_30.add(a); + a=(Token)match(input,31,FOLLOW_31_in_load1221); + stream_31.add(a); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: a= 'iload_0' { - a=(Token)match(input,68,FOLLOW_68_in_load1200); - stream_68.add(a); + a=(Token)match(input,69,FOLLOW_69_in_load1240); + stream_69.add(a); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:13: a= 'iload_1' { - a=(Token)match(input,69,FOLLOW_69_in_load1219); - stream_69.add(a); + a=(Token)match(input,70,FOLLOW_70_in_load1259); + stream_70.add(a); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:13: a= 'iload_2' { - a=(Token)match(input,70,FOLLOW_70_in_load1237); - stream_70.add(a); + a=(Token)match(input,71,FOLLOW_71_in_load1277); + stream_71.add(a); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: a= 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:13: a= 'iload_3' { - a=(Token)match(input,71,FOLLOW_71_in_load1255); - stream_71.add(a); + a=(Token)match(input,72,FOLLOW_72_in_load1295); + stream_72.add(a); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: a= 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:13: a= 'aload_0' { - a=(Token)match(input,32,FOLLOW_32_in_load1273); - stream_32.add(a); + a=(Token)match(input,33,FOLLOW_33_in_load1313); + stream_33.add(a); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:13: a= 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:13: a= 'aload_1' { - a=(Token)match(input,33,FOLLOW_33_in_load1291); - stream_33.add(a); + a=(Token)match(input,34,FOLLOW_34_in_load1331); + stream_34.add(a); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:13: a= 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:13: a= 'aload_2' { - a=(Token)match(input,34,FOLLOW_34_in_load1310); - stream_34.add(a); + a=(Token)match(input,35,FOLLOW_35_in_load1350); + stream_35.add(a); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:13: a= 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:13: a= 'aload_3' { - a=(Token)match(input,35,FOLLOW_35_in_load1328); - stream_35.add(a); + a=(Token)match(input,36,FOLLOW_36_in_load1368); + stream_36.add(a); } @@ -2122,9 +2244,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 111:8: -> ^( LOAD $a) + // 115:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:11: ^( LOAD $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2172,7 +2294,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -2185,76 +2307,76 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); - RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); + RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); + RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); + RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) - int alt11=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + int alt13=3; switch ( input.LA(1) ) { - case 67: + case 68: { - alt11=1; + alt13=1; } break; - case 84: + case 85: { - alt11=2; + alt13=2; } break; - case 31: + case 32: { - alt11=3; + alt13=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 11, 0, input); + new NoViableAltException("", 13, 0, input); throw nvae; } - switch (alt11) { + switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:15: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:15: a= 'iload' b= INTEIRO { - a=(Token)match(input,67,FOLLOW_67_in_loadint1382); - stream_67.add(a); + a=(Token)match(input,68,FOLLOW_68_in_loadint1422); + stream_68.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1388); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1428); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,84,FOLLOW_84_in_loadint1409); - stream_84.add(a); + a=(Token)match(input,85,FOLLOW_85_in_loadint1449); + stream_85.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1415); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1455); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,31,FOLLOW_31_in_loadint1435); - stream_31.add(a); + a=(Token)match(input,32,FOLLOW_32_in_loadint1475); + stream_32.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1441); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1481); stream_INTEIRO.add(b); @@ -2265,7 +2387,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -2277,9 +2399,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 118:11: -> ^( LOAD $a $b) + // 122:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2329,7 +2451,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2341,138 +2463,138 @@ public final AssemblerParser.store_return store() throws RecognitionException { BytecodesAST a_tree=null; RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); - RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); + RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); + RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt12=8; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + int alt14=8; switch ( input.LA(1) ) { - case 78: - { - alt12=1; - } - break; case 79: { - alt12=2; + alt14=1; } break; case 80: { - alt12=3; + alt14=2; } break; case 81: { - alt12=4; + alt14=3; } break; - case 37: + case 82: { - alt12=5; + alt14=4; } break; case 38: { - alt12=6; + alt14=5; } break; case 39: { - alt12=7; + alt14=6; } break; case 40: { - alt12=8; + alt14=7; + } + break; + case 41: + { + alt14=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); + new NoViableAltException("", 14, 0, input); throw nvae; } - switch (alt12) { + switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'istore_0' { - a=(Token)match(input,78,FOLLOW_78_in_store1508); - stream_78.add(a); + a=(Token)match(input,79,FOLLOW_79_in_store1548); + stream_79.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'istore_1' { - a=(Token)match(input,79,FOLLOW_79_in_store1527); - stream_79.add(a); + a=(Token)match(input,80,FOLLOW_80_in_store1567); + stream_80.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'istore_2' { - a=(Token)match(input,80,FOLLOW_80_in_store1546); - stream_80.add(a); + a=(Token)match(input,81,FOLLOW_81_in_store1586); + stream_81.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'istore_3' { - a=(Token)match(input,81,FOLLOW_81_in_store1565); - stream_81.add(a); + a=(Token)match(input,82,FOLLOW_82_in_store1605); + stream_82.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'astore_0' { - a=(Token)match(input,37,FOLLOW_37_in_store1584); - stream_37.add(a); + a=(Token)match(input,38,FOLLOW_38_in_store1624); + stream_38.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'astore_1' { - a=(Token)match(input,38,FOLLOW_38_in_store1602); - stream_38.add(a); + a=(Token)match(input,39,FOLLOW_39_in_store1642); + stream_39.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'astore_2' { - a=(Token)match(input,39,FOLLOW_39_in_store1621); - stream_39.add(a); + a=(Token)match(input,40,FOLLOW_40_in_store1661); + stream_40.add(a); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'astore_3' { - a=(Token)match(input,40,FOLLOW_40_in_store1640); - stream_40.add(a); + a=(Token)match(input,41,FOLLOW_41_in_store1680); + stream_41.add(a); } @@ -2493,9 +2615,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 130:9: -> ^( STORE $a) + // 134:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:12: ^( STORE $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2543,7 +2665,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -2556,53 +2678,53 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); - RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); + RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) - int alt13=2; - int LA13_0 = input.LA(1); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + int alt15=2; + int LA15_0 = input.LA(1); - if ( (LA13_0==77) ) { - alt13=1; + if ( (LA15_0==78) ) { + alt15=1; } - else if ( (LA13_0==36) ) { - alt13=2; + else if ( (LA15_0==37) ) { + alt15=2; } else { NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); + new NoViableAltException("", 15, 0, input); throw nvae; } - switch (alt13) { + switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:16: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:16: a= 'istore' b= INTEIRO { - a=(Token)match(input,77,FOLLOW_77_in_storeint1697); - stream_77.add(a); + a=(Token)match(input,78,FOLLOW_78_in_storeint1737); + stream_78.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1703); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1743); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,36,FOLLOW_36_in_storeint1725); - stream_36.add(a); + a=(Token)match(input,37,FOLLOW_37_in_storeint1765); + stream_37.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1731); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1771); stream_INTEIRO.add(b); @@ -2613,7 +2735,7 @@ else if ( (LA13_0==36) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -2625,9 +2747,9 @@ else if ( (LA13_0==36) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 136:12: -> ^( STORE $a $b) + // 140:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2677,7 +2799,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2688,64 +2810,64 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); - RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); - RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); + RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); + RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt14=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt16=3; switch ( input.LA(1) ) { - case 45: + case 46: { - alt14=1; + alt16=1; } break; - case 75: + case 76: { - alt14=2; + alt16=2; } break; - case 83: + case 84: { - alt14=3; + alt16=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 14, 0, input); + new NoViableAltException("", 16, 0, input); throw nvae; } - switch (alt14) { + switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:14: a= 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:14: a= 'iand' { - a=(Token)match(input,45,FOLLOW_45_in_logica1795); - stream_45.add(a); + a=(Token)match(input,46,FOLLOW_46_in_logica1835); + stream_46.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:14: a= 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:14: a= 'ior' { - a=(Token)match(input,75,FOLLOW_75_in_logica1814); - stream_75.add(a); + a=(Token)match(input,76,FOLLOW_76_in_logica1854); + stream_76.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:14: a= 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:14: a= 'ixor' { - a=(Token)match(input,83,FOLLOW_83_in_logica1833); - stream_83.add(a); + a=(Token)match(input,84,FOLLOW_84_in_logica1873); + stream_84.add(a); } @@ -2766,9 +2888,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 143:10: -> ^( LOGICA $a) + // 147:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2816,7 +2938,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2829,266 +2951,266 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException BytecodesAST a_tree=null; BytecodesAST b_tree=null; + RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); + RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); - RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); - RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt15=13; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt17=13; switch ( input.LA(1) ) { - case 60: - { - alt15=1; - } - break; - case 65: + case 61: { - alt15=2; + alt17=1; } break; - case 64: + case 66: { - alt15=3; + alt17=2; } break; - case 61: + case 65: { - alt15=4; + alt17=3; } break; case 62: { - alt15=5; + alt17=4; } break; case 63: { - alt15=6; + alt17=5; } break; - case 54: + case 64: { - alt15=7; + alt17=6; } break; - case 59: + case 55: { - alt15=8; + alt17=7; } break; - case 58: + case 60: { - alt15=9; + alt17=8; } break; - case 55: + case 59: { - alt15=10; + alt17=9; } break; case 56: { - alt15=11; + alt17=10; } break; case 57: { - alt15=12; + alt17=11; } break; - case 43: + case 58: + { + alt17=12; + } + break; + case 44: { - alt15=13; + alt17=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 15, 0, input); + new NoViableAltException("", 17, 0, input); throw nvae; } - switch (alt15) { + switch (alt17) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:14: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: a= 'ifeq' b= ID { - a=(Token)match(input,60,FOLLOW_60_in_desvio1886); - stream_60.add(a); + a=(Token)match(input,61,FOLLOW_61_in_desvio1926); + stream_61.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1892); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1932); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'ifne' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio1912); - stream_65.add(a); + a=(Token)match(input,66,FOLLOW_66_in_desvio1952); + stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1918); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1958); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'iflt' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio1938); - stream_64.add(a); + a=(Token)match(input,65,FOLLOW_65_in_desvio1978); + stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1944); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1984); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'ifge' b= ID { - a=(Token)match(input,61,FOLLOW_61_in_desvio1963); - stream_61.add(a); + a=(Token)match(input,62,FOLLOW_62_in_desvio2003); + stream_62.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1969); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2009); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'ifgt' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio1988); - stream_62.add(a); + a=(Token)match(input,63,FOLLOW_63_in_desvio2028); + stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1994); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2034); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:14: a= 'ifle' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2014); - stream_63.add(a); + a=(Token)match(input,64,FOLLOW_64_in_desvio2054); + stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2020); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2060); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,54,FOLLOW_54_in_desvio2040); - stream_54.add(a); + a=(Token)match(input,55,FOLLOW_55_in_desvio2080); + stream_55.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2046); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2086); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,59,FOLLOW_59_in_desvio2066); - stream_59.add(a); + a=(Token)match(input,60,FOLLOW_60_in_desvio2106); + stream_60.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2072); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2112); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,58,FOLLOW_58_in_desvio2091); - stream_58.add(a); + a=(Token)match(input,59,FOLLOW_59_in_desvio2131); + stream_59.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2097); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2137); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,55,FOLLOW_55_in_desvio2117); - stream_55.add(a); + a=(Token)match(input,56,FOLLOW_56_in_desvio2157); + stream_56.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2123); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2163); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,56,FOLLOW_56_in_desvio2143); - stream_56.add(a); + a=(Token)match(input,57,FOLLOW_57_in_desvio2183); + stream_57.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2149); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2189); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:14: a= 'if_icmple' b= ID { - a=(Token)match(input,57,FOLLOW_57_in_desvio2168); - stream_57.add(a); + a=(Token)match(input,58,FOLLOW_58_in_desvio2208); + stream_58.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2174); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2214); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:14: a= 'goto' b= ID { - a=(Token)match(input,43,FOLLOW_43_in_desvio2194); - stream_43.add(a); + a=(Token)match(input,44,FOLLOW_44_in_desvio2234); + stream_44.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2200); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2240); stream_ID.add(b); @@ -3099,7 +3221,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3111,9 +3233,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 160:10: -> ^( DESVIO $a $b) + // 164:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3163,7 +3285,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -3174,64 +3296,64 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); - RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); + RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); + RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) - int alt16=3; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + int alt18=3; switch ( input.LA(1) ) { - case 87: + case 88: { - alt16=1; + alt18=1; } break; - case 88: + case 89: { - alt16=2; + alt18=2; } break; - case 41: + case 42: { - alt16=3; + alt18=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + new NoViableAltException("", 18, 0, input); throw nvae; } - switch (alt16) { + switch (alt18) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:13: a= 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'pop' { - a=(Token)match(input,87,FOLLOW_87_in_pilha2265); - stream_87.add(a); + a=(Token)match(input,88,FOLLOW_88_in_pilha2305); + stream_88.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:13: a= 'pop2' { - a=(Token)match(input,88,FOLLOW_88_in_pilha2283); - stream_88.add(a); + a=(Token)match(input,89,FOLLOW_89_in_pilha2323); + stream_89.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'dup' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:13: a= 'dup' { - a=(Token)match(input,41,FOLLOW_41_in_pilha2301); - stream_41.add(a); + a=(Token)match(input,42,FOLLOW_42_in_pilha2341); + stream_42.add(a); } @@ -3252,9 +3374,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 167:9: -> ^( PILHA $a) + // 171:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:12: ^( PILHA $a) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3303,7 +3425,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -3311,37 +3433,37 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal38=null; + Token char_literal43=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal38_tree=null; + BytecodesAST char_literal43_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:8: (cls+= ID '/' )* - loop17: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:8: (cls+= ID '/' )* + loop19: do { - int alt17=2; - int LA17_0 = input.LA(1); + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA17_0==ID) ) { - int LA17_1 = input.LA(2); + if ( (LA19_0==ID) ) { + int LA19_1 = input.LA(2); - if ( (LA17_1==27) ) { - int LA17_2 = input.LA(3); + if ( (LA19_1==28) ) { + int LA19_2 = input.LA(3); - if ( (LA17_2==ID) ) { - alt17=1; + if ( (LA19_2==ID) ) { + alt19=1; } @@ -3351,11 +3473,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } - switch (alt17) { + switch (alt19) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2367); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2407); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3365,26 +3487,26 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal38=(Token)match(input,27,FOLLOW_27_in_classe2369); - char_literal38_tree = - (BytecodesAST)adaptor.create(char_literal38) + char_literal43=(Token)match(input,28,FOLLOW_28_in_classe2409); + char_literal43_tree = + (BytecodesAST)adaptor.create(char_literal43) ; - adaptor.addChild(root_0, char_literal38_tree); + adaptor.addChild(root_0, char_literal43_tree); } break; default : - break loop17; + break loop19; } } while (true); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:25: (cls+= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:26: cls+= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:25: (cls+= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2378); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2418); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3433,7 +3555,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -3455,27 +3577,27 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:6: (n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:8: n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:6: (n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:8: n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2418); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2458); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,22,FOLLOW_22_in_chamadaMetodo2424); + par=(Token)match(input,22,FOLLOW_22_in_chamadaMetodo2464); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2430); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2470); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -3521,7 +3643,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3530,12 +3652,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal39=null; + Token char_literal44=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal39_tree=null; + BytecodesAST char_literal44_tree=null; BytecodesAST cls_tree=null; @@ -3543,35 +3665,35 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:8: (cls+= ID '/' )+ - int cnt18=0; - loop18: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:8: (cls+= ID '/' )+ + int cnt20=0; + loop20: do { - int alt18=2; - int LA18_0 = input.LA(1); + int alt20=2; + int LA20_0 = input.LA(1); - if ( (LA18_0==ID) ) { - int LA18_1 = input.LA(2); + if ( (LA20_0==ID) ) { + int LA20_1 = input.LA(2); - if ( (LA18_1==27) ) { - alt18=1; + if ( (LA20_1==28) ) { + alt20=1; } } - switch (alt18) { + switch (alt20) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:9: cls+= ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2470); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2510); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3581,27 +3703,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal39=(Token)match(input,27,FOLLOW_27_in_campo2472); - char_literal39_tree = - (BytecodesAST)adaptor.create(char_literal39) + char_literal44=(Token)match(input,28,FOLLOW_28_in_campo2512); + char_literal44_tree = + (BytecodesAST)adaptor.create(char_literal44) ; - adaptor.addChild(root_0, char_literal39_tree); + adaptor.addChild(root_0, char_literal44_tree); } break; default : - if ( cnt18 >= 1 ) break loop18; + if ( cnt20 >= 1 ) break loop20; EarlyExitException eee = - new EarlyExitException(18, input); + new EarlyExitException(20, input); throw eee; } - cnt18++; + cnt20++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2480); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2520); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3641,7 +3763,7 @@ public static class tipoRef_return extends ParserRuleReturnScope { // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:1: tipoRef : 'L' ( ID '/' )* ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:1: tipoRef : 'L' ( ID '/' )* ID ; public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); retval.start = input.LT(1); @@ -3649,79 +3771,79 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio BytecodesAST root_0 = null; - Token char_literal40=null; - Token ID41=null; - Token char_literal42=null; - Token ID43=null; + Token char_literal45=null; + Token ID46=null; + Token char_literal47=null; + Token ID48=null; - BytecodesAST char_literal40_tree=null; - BytecodesAST ID41_tree=null; - BytecodesAST char_literal42_tree=null; - BytecodesAST ID43_tree=null; + BytecodesAST char_literal45_tree=null; + BytecodesAST ID46_tree=null; + BytecodesAST char_literal47_tree=null; + BytecodesAST ID48_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: 'L' ( ID '/' )* ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:9: ( 'L' ( ID '/' )* ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:11: 'L' ( ID '/' )* ID { root_0 = (BytecodesAST)adaptor.nil(); - char_literal40=(Token)match(input,29,FOLLOW_29_in_tipoRef2496); - char_literal40_tree = - (BytecodesAST)adaptor.create(char_literal40) + char_literal45=(Token)match(input,30,FOLLOW_30_in_tipoRef2536); + char_literal45_tree = + (BytecodesAST)adaptor.create(char_literal45) ; - adaptor.addChild(root_0, char_literal40_tree); + adaptor.addChild(root_0, char_literal45_tree); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:15: ( ID '/' )* - loop19: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:15: ( ID '/' )* + loop21: do { - int alt19=2; - int LA19_0 = input.LA(1); + int alt21=2; + int LA21_0 = input.LA(1); - if ( (LA19_0==ID) ) { - int LA19_1 = input.LA(2); + if ( (LA21_0==ID) ) { + int LA21_1 = input.LA(2); - if ( (LA19_1==27) ) { - alt19=1; + if ( (LA21_1==28) ) { + alt21=1; } } - switch (alt19) { + switch (alt21) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:16: ID '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:16: ID '/' { - ID41=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2499); - ID41_tree = - (BytecodesAST)adaptor.create(ID41) + ID46=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2539); + ID46_tree = + (BytecodesAST)adaptor.create(ID46) ; - adaptor.addChild(root_0, ID41_tree); + adaptor.addChild(root_0, ID46_tree); - char_literal42=(Token)match(input,27,FOLLOW_27_in_tipoRef2501); - char_literal42_tree = - (BytecodesAST)adaptor.create(char_literal42) + char_literal47=(Token)match(input,28,FOLLOW_28_in_tipoRef2541); + char_literal47_tree = + (BytecodesAST)adaptor.create(char_literal47) ; - adaptor.addChild(root_0, char_literal42_tree); + adaptor.addChild(root_0, char_literal47_tree); } break; default : - break loop19; + break loop21; } } while (true); - ID43=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2505); - ID43_tree = - (BytecodesAST)adaptor.create(ID43) + ID48=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2545); + ID48_tree = + (BytecodesAST)adaptor.create(ID48) ; - adaptor.addChild(root_0, ID43_tree); + adaptor.addChild(root_0, ID48_tree); } @@ -3752,138 +3874,143 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio - public static final BitSet FOLLOW_comando_in_programa107 = new BitSet(new long[]{0xFFFFFFFFC2810102L,0x0000000003FFFFFFL}); - public static final BitSet FOLLOW_label_in_comando127 = new BitSet(new long[]{0xFFFFFFFFC2810000L,0x0000000003FFFFFFL}); - public static final BitSet FOLLOW_instrucao_in_comando129 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_instrucao_in_comando133 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label155 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_label157 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao178 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_instrucao197 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao216 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_load_in_instrucao235 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_loadint_in_instrucao253 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_store_in_instrucao272 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_storeint_in_instrucao290 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_desvio_in_instrucao309 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_logica_in_instrucao328 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_pilha_in_instrucao346 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_86_in_instrucao365 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_instrucao381 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_definicaoClasse403 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse405 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NOVA_LINHA_in_definicaoClasse407 = new BitSet(new long[]{0x0000000005000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse409 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse412 = new BitSet(new long[]{0x0000000001000002L}); - public static final BitSet FOLLOW_25_in_definicaoClasse471 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INIT_in_definicaoClasse473 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_22_in_definicaoClasse475 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_VOID_in_definicaoClasse477 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_superClasse518 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_superClasse520 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_membroClasse537 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_membroClasse539 = new BitSet(new long[]{0x0000000020100400L}); - public static final BitSet FOLLOW_tipo_in_membroClasse541 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_manipulacaoObjetos593 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos599 = new BitSet(new long[]{0x0000000020100400L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos601 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_manipulacaoObjetos639 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos645 = new BitSet(new long[]{0x0000000020100400L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos647 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_manipulacaoObjetos686 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos692 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_manipulacaoObjetos694 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos700 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_manipulacaoObjetos762 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos767 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo806 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo810 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo814 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_aritmetica832 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_aritmetica856 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_aritmetica880 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_aritmetica904 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_aritmetica928 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_aritmetica952 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_aritmetica976 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_load1054 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load1072 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1090 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load1108 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load1127 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_load1145 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_load1163 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_load1181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_load1200 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_load1219 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_load1237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_load1255 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_load1273 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load1291 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load1310 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load1328 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_loadint1382 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1388 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_loadint1409 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1415 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_loadint1435 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1441 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_store1508 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_store1527 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_store1546 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_store1565 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_store1584 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_store1602 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_store1621 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_store1640 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_storeint1697 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1703 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_storeint1725 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1731 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_logica1795 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_logica1814 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_logica1833 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_desvio1886 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1892 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio1912 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1918 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio1938 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1944 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_desvio1963 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1969 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio1988 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1994 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2014 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2020 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_desvio2040 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2046 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio2066 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2072 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_desvio2091 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2097 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio2117 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2123 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio2143 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2149 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio2168 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2174 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_desvio2194 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2200 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_pilha2265 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_pilha2283 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_pilha2301 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2367 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_classe2369 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_classe2378 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2418 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_22_in_chamadaMetodo2424 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2430 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2470 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_campo2472 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_campo2480 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_tipoRef2496 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_tipoRef2499 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_tipoRef2501 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_tipoRef2505 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_programa107 = new BitSet(new long[]{0xFFFFFFFF84810102L,0x0000000007FFFFFFL}); + public static final BitSet FOLLOW_operacao_in_instrucao135 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao150 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_24_in_instrucao153 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_operacao175 = new BitSet(new long[]{0xFFFFFFFF80010000L,0x0000000007FFFFFFL}); + public static final BitSet FOLLOW_comando_in_operacao177 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_operacao181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label203 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_29_in_label205 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_comando228 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_aritmetica_in_comando247 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_load_in_comando266 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_loadint_in_comando284 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_store_in_comando303 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_storeint_in_comando321 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_desvio_in_comando340 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_logica_in_comando359 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_pilha_in_comando377 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_87_in_comando396 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando412 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_definicaoClasse438 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse440 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse442 = new BitSet(new long[]{0x000000000A000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse445 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse447 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse452 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse454 = new BitSet(new long[]{0x0000000002000002L}); + public static final BitSet FOLLOW_26_in_definicaoClasse514 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INIT_in_definicaoClasse516 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_22_in_definicaoClasse518 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_VOID_in_definicaoClasse520 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse522 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_superClasse563 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_superClasse565 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_membroClasse587 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_membroClasse589 = new BitSet(new long[]{0x0000000040100400L}); + public static final BitSet FOLLOW_tipo_in_membroClasse591 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_manipulacaoObjetos633 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos639 = new BitSet(new long[]{0x0000000040100400L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos641 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_manipulacaoObjetos679 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos685 = new BitSet(new long[]{0x0000000040100400L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos687 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_manipulacaoObjetos726 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos732 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_manipulacaoObjetos734 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos740 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_manipulacaoObjetos802 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos807 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_tipo846 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOID_in_tipo850 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tipoRef_in_tipo854 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_aritmetica872 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_aritmetica896 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_aritmetica920 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_aritmetica944 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_aritmetica968 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_aritmetica992 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica1016 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_load1094 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1112 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1130 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1148 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_load1167 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_load1185 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_load1203 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_load1221 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_load1240 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_load1259 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_load1277 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_load1295 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load1313 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load1331 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_load1350 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_load1368 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_loadint1422 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1428 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_loadint1449 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1455 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_loadint1475 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1481 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_store1548 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_store1567 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_store1586 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_store1605 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_store1624 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_store1642 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_store1661 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_store1680 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_storeint1737 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1743 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_storeint1765 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1771 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_logica1835 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_logica1854 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_logica1873 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_desvio1926 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1932 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio1952 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1958 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio1978 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1984 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio2003 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2009 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2028 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2034 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2054 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2060 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio2080 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_desvio2106 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2112 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio2131 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2137 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio2157 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2163 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio2183 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2189 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_desvio2208 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2214 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_desvio2234 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2240 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_pilha2305 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_pilha2323 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_pilha2341 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2407 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_classe2409 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_classe2418 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2458 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_22_in_chamadaMetodo2464 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2470 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2510 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_campo2512 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_campo2520 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_tipoRef2536 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_tipoRef2539 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_tipoRef2541 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_tipoRef2545 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 1055adf..d96ab0a 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-12 00:25:26 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-12 21:30:11 package br.ufpb.iged.interpretador.parser; @@ -20,7 +20,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; @@ -92,6 +92,7 @@ public class Def extends TreeFilter { public static final int T__87=87; public static final int T__88=88; public static final int T__89=89; + public static final int T__90=90; public static final int ARITMETICA=4; public static final int DESVIO=5; public static final int EXTENDS=6; @@ -104,7 +105,7 @@ public class Def extends TreeFilter { public static final int LOAD=13; public static final int LOGICA=14; public static final int MEMBRO_CLASSE=15; - public static final int NOVA_LINHA=16; + public static final int NEWLINE=16; public static final int NULL=17; public static final int PILHA=18; public static final int STORE=19; @@ -214,17 +215,17 @@ public final void bottomup() throws RecognitionException { alt2=1; } break; - case 42: + case 43: { alt2=2; } break; - case 89: + case 90: { alt2=3; } break; - case 74: + case 75: { alt2=4; } @@ -331,7 +332,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 89)) ) { + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 90)) ) { alt3=1; } } @@ -477,7 +478,7 @@ public final void getfield() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:5: ( 'getfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:7: 'getfield' { - match(input,42,FOLLOW_42_in_getfield277); if (state.failed) return ; + match(input,43,FOLLOW_43_in_getfield277); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do getfield.."); @@ -507,7 +508,7 @@ public final void putfield() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:5: ( 'putfield' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:7: 'putfield' { - match(input,89,FOLLOW_89_in_putfield305); if (state.failed) return ; + match(input,90,FOLLOW_90_in_putfield305); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do putfield.."); @@ -537,7 +538,7 @@ public final void invokespecial() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:5: ( 'invokespecial' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:7: 'invokespecial' { - match(input,74,FOLLOW_74_in_invokespecial334); if (state.failed) return ; + match(input,75,FOLLOW_75_in_invokespecial334); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do invokespecial.."); @@ -570,14 +571,14 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_putfield_in_bottomup107 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_invokespecial_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_23_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000003FFFFFFL}); + public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel202 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000003FFFFFFL}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_23_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index 0941094..a597d6b 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -66,6 +66,7 @@ T__86=86 T__87=87 T__88=88 T__89=89 +T__90=90 ARITMETICA=4 DESVIO=5 EXTENDS=6 @@ -78,7 +79,7 @@ LABEL=12 LOAD=13 LOGICA=14 MEMBRO_CLASSE=15 -NOVA_LINHA=16 +NEWLINE=16 NULL=17 PILHA=18 STORE=19 @@ -86,69 +87,70 @@ VOID=20 WS=21 '()'=22 '.class'=23 -'.field'=24 -'.method'=25 -'.super'=26 -'/'=27 -':'=28 -'L'=29 -'aconst_null'=30 -'aload'=31 -'aload_0'=32 -'aload_1'=33 -'aload_2'=34 -'aload_3'=35 -'astore'=36 -'astore_0'=37 -'astore_1'=38 -'astore_2'=39 -'astore_3'=40 -'dup'=41 -'getfield'=42 -'goto'=43 -'iadd'=44 -'iand'=45 -'iconst_0'=46 -'iconst_1'=47 -'iconst_2'=48 -'iconst_3'=49 -'iconst_4'=50 -'iconst_5'=51 -'iconst_m1'=52 -'idiv'=53 -'if_icmpeq'=54 -'if_icmpge'=55 -'if_icmpgt'=56 -'if_icmple'=57 -'if_icmplt'=58 -'if_icmpne'=59 -'ifeq'=60 -'ifge'=61 -'ifgt'=62 -'ifle'=63 -'iflt'=64 -'ifne'=65 -'iinc'=66 -'iload'=67 -'iload_0'=68 -'iload_1'=69 -'iload_2'=70 -'iload_3'=71 -'imul'=72 -'ineg'=73 -'invokespecial'=74 -'ior'=75 -'irem'=76 -'istore'=77 -'istore_0'=78 -'istore_1'=79 -'istore_2'=80 -'istore_3'=81 -'isub'=82 -'ixor'=83 -'ldc'=84 -'new'=85 -'nop'=86 -'pop'=87 -'pop2'=88 -'putfield'=89 +'.end class'=24 +'.field'=25 +'.method'=26 +'.super'=27 +'/'=28 +':'=29 +'L'=30 +'aconst_null'=31 +'aload'=32 +'aload_0'=33 +'aload_1'=34 +'aload_2'=35 +'aload_3'=36 +'astore'=37 +'astore_0'=38 +'astore_1'=39 +'astore_2'=40 +'astore_3'=41 +'dup'=42 +'getfield'=43 +'goto'=44 +'iadd'=45 +'iand'=46 +'iconst_0'=47 +'iconst_1'=48 +'iconst_2'=49 +'iconst_3'=50 +'iconst_4'=51 +'iconst_5'=52 +'iconst_m1'=53 +'idiv'=54 +'if_icmpeq'=55 +'if_icmpge'=56 +'if_icmpgt'=57 +'if_icmple'=58 +'if_icmplt'=59 +'if_icmpne'=60 +'ifeq'=61 +'ifge'=62 +'ifgt'=63 +'ifle'=64 +'iflt'=65 +'ifne'=66 +'iinc'=67 +'iload'=68 +'iload_0'=69 +'iload_1'=70 +'iload_2'=71 +'iload_3'=72 +'imul'=73 +'ineg'=74 +'invokespecial'=75 +'ior'=76 +'irem'=77 +'istore'=78 +'istore_0'=79 +'istore_1'=80 +'istore_2'=81 +'istore_3'=82 +'isub'=83 +'ixor'=84 +'ldc'=85 +'new'=86 +'nop'=87 +'pop'=88 +'pop2'=89 +'putfield'=90 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 3cbace5..204a726 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-12 00:25:26 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-12 21:30:11 package br.ufpb.iged.interpretador.parser; @@ -24,7 +24,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NOVA_LINHA", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; @@ -96,6 +96,7 @@ public class Ref extends TreeFilter { public static final int T__87=87; public static final int T__88=88; public static final int T__89=89; + public static final int T__90=90; public static final int ARITMETICA=4; public static final int DESVIO=5; public static final int EXTENDS=6; @@ -108,7 +109,7 @@ public class Ref extends TreeFilter { public static final int LOAD=13; public static final int LOGICA=14; public static final int MEMBRO_CLASSE=15; - public static final int NOVA_LINHA=16; + public static final int NEWLINE=16; public static final int NULL=17; public static final int PILHA=18; public static final int STORE=19; @@ -391,10 +392,12 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } catch (AcessoIndevidoMemoriaException e) { - System.out.println(e.getMessage()); - } catch (LabelException e) { - System.out.println(e.getMessage()); + } catch (LabelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (AcessoIndevidoMemoriaException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } finally { @@ -437,7 +440,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_4==UP) ) { int LA2_5 = input.LA(5); - if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 89)) ) { + if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 90)) ) { alt2=1; } } @@ -553,7 +556,7 @@ public final void getfield() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,42,FOLLOW_42_in_getfield323); if (state.failed) return ; + match(input,43,FOLLOW_43_in_getfield323); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -605,7 +608,7 @@ public final void putfield() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,89,FOLLOW_89_in_putfield373); if (state.failed) return ; + match(input,90,FOLLOW_90_in_putfield373); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -658,7 +661,7 @@ public final void invokespecial() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) { - match(input,74,FOLLOW_74_in_invokespecial423); if (state.failed) return ; + match(input,75,FOLLOW_75_in_invokespecial423); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -710,7 +713,7 @@ public final void novaClasse() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:3: ( ^( 'new' classe= . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:5: ^( 'new' classe= . ) { - match(input,85,FOLLOW_85_in_novaClasse474); if (state.failed) return ; + match(input,86,FOLLOW_86_in_novaClasse474); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1125,7 +1128,7 @@ public final void label() throws RecognitionException, LabelException { static final String DFA1_minS = "\1\4\7\uffff\2\2\4\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; static final String DFA1_maxS = - "\1\131\7\uffff\2\2\4\uffff\5\131\2\uffff\1\131\2\uffff\4\131"; + "\1\132\7\uffff\2\2\4\uffff\5\132\2\uffff\1\132\2\uffff\4\132"; static final String DFA1_acceptS = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\uffff\1\14\1\15\1\16\1\17"+ "\5\uffff\1\10\1\11\1\uffff\1\12\1\13\4\uffff"; @@ -1133,7 +1136,7 @@ public final void label() throws RecognitionException, LabelException { "\34\uffff}>"; static final String[] DFA1_transitionS = { "\1\7\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\3\uffff\1\14\1"+ - "\11\3\uffff\1\1\22\uffff\1\3\37\uffff\1\5\12\uffff\1\6\3\uffff"+ + "\11\3\uffff\1\1\23\uffff\1\3\37\uffff\1\5\12\uffff\1\6\3\uffff"+ "\1\4", "", "", @@ -1148,20 +1151,20 @@ public final void label() throws RecognitionException, LabelException { "", "", "", - "\126\20", - "\126\21", - "\1\22\1\23\126\24", - "\1\25\1\26\126\27", - "\126\30", + "\127\20", + "\127\21", + "\1\22\1\23\127\24", + "\1\25\1\26\127\27", + "\127\30", "", "", - "\126\31", + "\127\31", "", "", - "\1\32\126\30", - "\1\33\126\31", - "\1\23\126\24", - "\1\26\126\27" + "\1\32\127\30", + "\1\33\127\31", + "\1\23\127\24", + "\1\26\127\27" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -1215,15 +1218,15 @@ public String getDescription() { public static final BitSet FOLLOW_pilha_in_topdown195 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_label_in_topdown205 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_23_in_entraNaClasse230 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse234 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000003FFFFFFL}); + public static final BitSet FOLLOW_ID_in_entraNaClasse234 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse238 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse242 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel282 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000003FFFFFFL}); - public static final BitSet FOLLOW_42_in_getfield323 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_89_in_putfield373 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_74_in_invokespecial423 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_85_in_novaClasse474 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); + public static final BitSet FOLLOW_43_in_getfield323 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_90_in_putfield373 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_75_in_invokespecial423 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_86_in_novaClasse474 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ARITMETICA_in_aritmetica505 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_LOAD_in_load539 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_LOAD_in_loadint568 = new BitSet(new long[]{0x0000000000000004L}); diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index 0941094..a597d6b 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -66,6 +66,7 @@ T__86=86 T__87=87 T__88=88 T__89=89 +T__90=90 ARITMETICA=4 DESVIO=5 EXTENDS=6 @@ -78,7 +79,7 @@ LABEL=12 LOAD=13 LOGICA=14 MEMBRO_CLASSE=15 -NOVA_LINHA=16 +NEWLINE=16 NULL=17 PILHA=18 STORE=19 @@ -86,69 +87,70 @@ VOID=20 WS=21 '()'=22 '.class'=23 -'.field'=24 -'.method'=25 -'.super'=26 -'/'=27 -':'=28 -'L'=29 -'aconst_null'=30 -'aload'=31 -'aload_0'=32 -'aload_1'=33 -'aload_2'=34 -'aload_3'=35 -'astore'=36 -'astore_0'=37 -'astore_1'=38 -'astore_2'=39 -'astore_3'=40 -'dup'=41 -'getfield'=42 -'goto'=43 -'iadd'=44 -'iand'=45 -'iconst_0'=46 -'iconst_1'=47 -'iconst_2'=48 -'iconst_3'=49 -'iconst_4'=50 -'iconst_5'=51 -'iconst_m1'=52 -'idiv'=53 -'if_icmpeq'=54 -'if_icmpge'=55 -'if_icmpgt'=56 -'if_icmple'=57 -'if_icmplt'=58 -'if_icmpne'=59 -'ifeq'=60 -'ifge'=61 -'ifgt'=62 -'ifle'=63 -'iflt'=64 -'ifne'=65 -'iinc'=66 -'iload'=67 -'iload_0'=68 -'iload_1'=69 -'iload_2'=70 -'iload_3'=71 -'imul'=72 -'ineg'=73 -'invokespecial'=74 -'ior'=75 -'irem'=76 -'istore'=77 -'istore_0'=78 -'istore_1'=79 -'istore_2'=80 -'istore_3'=81 -'isub'=82 -'ixor'=83 -'ldc'=84 -'new'=85 -'nop'=86 -'pop'=87 -'pop2'=88 -'putfield'=89 +'.end class'=24 +'.field'=25 +'.method'=26 +'.super'=27 +'/'=28 +':'=29 +'L'=30 +'aconst_null'=31 +'aload'=32 +'aload_0'=33 +'aload_1'=34 +'aload_2'=35 +'aload_3'=36 +'astore'=37 +'astore_0'=38 +'astore_1'=39 +'astore_2'=40 +'astore_3'=41 +'dup'=42 +'getfield'=43 +'goto'=44 +'iadd'=45 +'iand'=46 +'iconst_0'=47 +'iconst_1'=48 +'iconst_2'=49 +'iconst_3'=50 +'iconst_4'=51 +'iconst_5'=52 +'iconst_m1'=53 +'idiv'=54 +'if_icmpeq'=55 +'if_icmpge'=56 +'if_icmpgt'=57 +'if_icmple'=58 +'if_icmplt'=59 +'if_icmpne'=60 +'ifeq'=61 +'ifge'=62 +'ifgt'=63 +'ifle'=64 +'iflt'=65 +'ifne'=66 +'iinc'=67 +'iload'=68 +'iload_0'=69 +'iload_1'=70 +'iload_2'=71 +'iload_3'=72 +'imul'=73 +'ineg'=74 +'invokespecial'=75 +'ior'=76 +'irem'=77 +'istore'=78 +'istore_0'=79 +'istore_1'=80 +'istore_2'=81 +'istore_3'=82 +'isub'=83 +'ixor'=84 +'ldc'=85 +'new'=86 +'nop'=87 +'pop'=88 +'pop2'=89 +'putfield'=90 diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index e3526cf..59f6f0e 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -192,7 +192,7 @@ protected void cpu() { if (opcode < 0) - opcode = recuperarValorOpcode(opcode); + opcode = valorEmByte(opcode); switch (opcode) { @@ -676,9 +676,13 @@ protected void cpu() { desvio = true; - } else + } else { pilha[sp] = 0; + + ip += 4; + + } } ; @@ -694,9 +698,13 @@ protected void cpu() { desvio = true; - } else + } else { pilha[sp] = 0; + + ip += 4; + + } } ; @@ -712,9 +720,13 @@ protected void cpu() { desvio = true; - } else + } else { pilha[sp] = 0; + + ip += 4; + + } } ; @@ -730,9 +742,13 @@ protected void cpu() { desvio = true; - } else + } else { pilha[sp] = 0; + + ip += 4; + + } } ; @@ -748,9 +764,13 @@ protected void cpu() { desvio = true; - } else + } else { pilha[sp] = 0; + + ip += 4; + + } } ; @@ -766,9 +786,13 @@ protected void cpu() { desvio = true; - } else + } else { pilha[sp] = 0; + + ip += 4; + + } } ; @@ -955,7 +979,7 @@ protected void cpu() { heap.add(objeto); - pilha[sp] = new Referencia(heap.indexOf(objeto)); + pilha[++sp] = new Referencia(heap.indexOf(objeto)); } @@ -966,6 +990,8 @@ protected void cpu() { sp--; + ip += 4; + } ; @@ -979,9 +1005,7 @@ protected void cpu() { op1 = obterOperandoInteiro(); - sp++; - - pilha[sp] = objeto.getMemoriaLocal()[op1]; + pilha[++sp] = objeto.getMemoriaLocal()[op1]; } @@ -990,13 +1014,13 @@ protected void cpu() { case Definicao.PUTFIELD: { - referencia = (Referencia)pilha[sp]; + referencia = (Referencia)pilha[sp - 1]; Objeto objeto = heap.get(referencia.getEndereco()); op1 = obterOperandoInteiro(); - objeto.getMemoriaLocal()[op1] = pilha[sp]; + objeto.getMemoriaLocal()[op1] = pilha[sp--]; } @@ -1036,7 +1060,7 @@ protected int obterOperandoInteiro() { } - protected short recuperarValorOpcode(short a) { + protected short valorEmByte(short a) { return (short) (128 + (128 + a)); diff --git a/src/br/ufpb/iged/interpretador/principal/Referencia.java b/src/br/ufpb/iged/interpretador/principal/Referencia.java index 18b63e9..cca03e0 100644 --- a/src/br/ufpb/iged/interpretador/principal/Referencia.java +++ b/src/br/ufpb/iged/interpretador/principal/Referencia.java @@ -17,5 +17,11 @@ public Integer getEndereco() { public void setEndereco(Integer endereco) { this.endereco = endereco; } + + public String toString() { + + return (endereco != null)? endereco.toString() : "null"; + + } } From 2762d423c63de5356ab11cb29b4868dea456d64c Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Fri, 13 Jul 2012 13:16:37 -0300 Subject: [PATCH 41/79] commit --- .../bytecodeassembler/asm/Definicao.class | Bin 4589 -> 4595 bytes .../principal/Interpretador.class | Bin 13968 -> 14044 bytes classes/Classe.class | 6 + classes/Composicao.class | 5 + Main.class => classes/Main.class | 25 +- Teste.class => classes/Teste.class | 0 instropcode_set.txt | 2 +- .../iged/interpretador/gramaticas/Assembler.g | 8 +- .../interpretador/parser/Assembler.tokens | 23 +- .../interpretador/parser/AssemblerLexer.java | 1027 +++++++++-------- .../interpretador/parser/AssemblerParser.java | 892 ++++++-------- .../ufpb/iged/interpretador/parser/Def.java | 22 +- .../ufpb/iged/interpretador/parser/Def.tokens | 23 +- .../ufpb/iged/interpretador/parser/Ref.java | 26 +- .../ufpb/iged/interpretador/parser/Ref.tokens | 23 +- .../principal/Interpretador.java | 7 +- 16 files changed, 990 insertions(+), 1099 deletions(-) create mode 100644 classes/Classe.class create mode 100644 classes/Composicao.class rename Main.class => classes/Main.class (60%) rename Teste.class => classes/Teste.class (100%) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 8d70e26f61843d12f311a9eb82b7e77d709e49e7..aae9cec6b3973435bd70447e088716182c2521c5 100644 GIT binary patch delta 1991 zcmYL}X>?OX6vyxIvP{wx?&}6EMaAOQg3uOF3+NZWDSqLD^iz#ZTHa}zgf>M!`8*!a zQN*ek7h1N`7K-9l3q&ZzeZvJe+?Tp5iW}}r_0GL*Ue3wO|M#1jJM(5<-pQ&{RpFx( zhmHV1y{Z@vk6V6=a#{9-wbpm5f=f4HL$=2kv2RykB~$4zbi*AH$iki31HO6g-3kh# z&8cK(rYYH#NNCusAmoT>uhr12Ku_W#4O=~;w(TC(Y3TE)UPHe}i!}^-v_!*hT1g_- zY*rH3W0rDnw#i@V?p5G-5~*lR!vhL}9Ghs;hw?yk4(EZU9LWRCxL-lQ>CB`$;u>;h zKF+4VL64}ys7F*{EKhC|6?u%7mQJNLJfXlxfqFbeD%M5n8B$I(M$3E7q|UCZHN0R_ zdl&87izdaKbsAnasUzO5;h0Iuc&mojOo}FH>>E_hNp)yAZq#~{-Zsf`lg%35HL)eW zR>S+8l5{g4a!O=0e9Wnp+$WOAeI~8szAz`((&RL^r%i#cJTz6l@z9j|)bV$+3L;8=l zUNRL>%JHyPE6bxgt^6L1xp!^;FW@9jF01L!I_LtVx!5Q-2aGf-t!ThFc!}TKOvUtme z8-&kfeh0M;J+doRY~C}bSIj&%9~iSm%vo$cGG?oov)POrvrWu7Y(6z+yDREkR-YTS zL(F+>zBHy!Of{RYjoB%thRq3M`o+v=^PMpRVivIZ-k3o#=d=0In4z4@kJCa{KV!Mv z`Xa_(uv)N|@i(jytYiEG=L^;|{)Gz!7c>5Y4T4J;C-5@Cr3Q-?;N`*>@c9?3X}D6v zh0?)?R|sDu9I#=Zhz1d~`28Z5i3r<}6R})G#D-BLM%46S^Y2zj*9o|Uu5A#61e8EK z%+2=Uv1?aDzqJMito1NxZGc@?FYLDV!jN?k+N{IiSGE~XUu9k!@_vAY^sC7Et8=Qz gn;;;PheRfGi7GV(R2g4qs#)|KrnYW+E0sg&fBYFMeE=1+6vyvlvb?k@yy;4zs902J!O|8`TaeFH^h?hX`>Bpi8po!S&?d!Cj>qFU zBGxr7l(n>lDz3F)kO1x*DsH&%3+{-D`%=B{-n3)R$>jh0y*D>^-kX^d)yJyUp^1G5 z0iaP-24R|jri}14jh#1WWR4qa#0?qC*J9ozz;F`D0_cZZ!f-2OGCAKo_jUn=R!73= zO|?7ecwEAr0zx*6?s^FW0%RT+OW5QQj&1R%LBckV8YOJ^Xo-YjkCsZRMAhwi9b^X<2ZQgk1vsc06H4B-|??NUC~OZ0ZV88Va-uN_uedr|4xaoP*0U2m z5{_tfg-&nkWIG)a-qxuzx<x(3IaT;mjdtY$*~40d>%DQ5kQJXQ=N7+9+3jil*#lY z6$mJ@oxVg@v^N>;u&uZhVO(%099l;8 z(+M9?Rg5zT$JCrGxOh2A5szcFWn9f9u}3xY{9?kaTFzKP_=sA;SW1{v=Q5TN9#E?p z%LyM<7c*86KCaprXS&2ss!NzF37=LG##w~Vs>>K>6F#rvj8%j$s3hYY!k1Kv@g%~R zCo7*!_^Jt4@$f0cue&B(&0;QzH%z#O`BdV!lr&+0SEZWFJKAhyGmp%B+H7KT8krBY z+05p2G9PKPh0PgcKG9~Y%W6KU&$QacW&xR_+6=O(A@ij++u78T`C6MHHVesotIaT* zMP!a?Gs5OfGRL(U&AN0u)sgy9Rq~}TCOn~P80!gtQMHT>gukhUjE#hUs6~uR2>((| zj7tgsQRg!*Bm7sbVmvG7;$u}Jgt~ym*?PQ080tdibC~@m>}Ju#B51-M7R@X|CS+MG zXHjTEPK$9-G^QVJF$0eiuo9155QI3CLO0BX%&0ni@Wskr?Cr0 zjlIxifI9pY==?QVVS4`%U`eNh^SMNn>H?ySj^&~Pe+zJ|AKywd GA@m;vsxj;U diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 6149bb47089d7de849958b40f81c247663df2755..aec85239976b60e564bc9a9289b340b9550df500 100644 GIT binary patch literal 14044 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 m0sZ=s;9HbO@g`Q?*Ip#~Haf_6pbx*9@8Y}B() V + iconst_3 + putfield Classe/asdf I + iconst_5 + putfield Classe/zavcui I + ldc 24 + putfield Classe/fachdf I + getfield Classe/zavcui I + putfield Classe/lohdg I + getfield Classe/lohdg I + iconst_4 + imul + istore 12 + getfield Classe/fachdf I + ldc 8 + idiv + istore 13 + \ No newline at end of file diff --git a/Teste.class b/classes/Teste.class similarity index 100% rename from Teste.class rename to classes/Teste.class diff --git a/instropcode_set.txt b/instropcode_set.txt index 45a2d56..106d0d4 100755 --- a/instropcode_set.txt +++ b/instropcode_set.txt @@ -10,7 +10,7 @@ iconst_1 04 4 iconst_2 05 5 iconst_3 06 6 iconst_4 07 7 -iconst_5 +iconst_5 08 8 ldc 12 18 iload 15 21 iload_0 1a 26 diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index a4b9d4b..d609f07 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -82,7 +82,7 @@ manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) | a = 'new'c = classe -> ^('new' $c) ; -tipo : INT | VOID | tipoRef ; +tipo : INT | VOID | TIPO_REF; aritmetica : ( a = 'iadd' | a = 'isub' @@ -199,8 +199,6 @@ campo returns [List classe, String campo] : (cls += ID '/')+ cmp = ID {$classe = $cls; $campo = $cmp.text;} ; -tipoRef : 'L' (ID '/')* ID; - INIT : ''; INT : 'I'; @@ -211,10 +209,12 @@ NULL : ('null' | 'NULL'); INTEIRO : '-'? '0'..'9'+ ; +TIPO_REF: 'L' ID ('/' ID)*; + ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; //LETRA: ('a'..'z' | 'A'..'Z'); NEWLINE : '\n'; -WS : (' ' | '\t' | '\r') {skip();} ; \ No newline at end of file +WS : (' ' | '\t' | '\r') {$channel=HIDDEN;} ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index a597d6b..2da8f65 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__22=22 T__23=23 T__24=24 T__25=25 @@ -83,17 +82,17 @@ NEWLINE=16 NULL=17 PILHA=18 STORE=19 -VOID=20 -WS=21 -'()'=22 -'.class'=23 -'.end class'=24 -'.field'=25 -'.method'=26 -'.super'=27 -'/'=28 -':'=29 -'L'=30 +TIPO_REF=20 +VOID=21 +WS=22 +'()'=23 +'.class'=24 +'.end class'=25 +'.field'=26 +'.method'=27 +'.super'=28 +'/'=29 +':'=30 'aconst_null'=31 'aload'=32 'aload_0'=33 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 6f42484..d784aa4 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-12 21:30:10 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-13 13:13:19 package br.ufpb.iged.interpretador.parser; @@ -11,7 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__22=22; public static final int T__23=23; public static final int T__24=24; public static final int T__25=25; @@ -96,8 +95,9 @@ public class AssemblerLexer extends Lexer { public static final int NULL=17; public static final int PILHA=18; public static final int STORE=19; - public static final int VOID=20; - public static final int WS=21; + public static final int TIPO_REF=20; + public static final int VOID=21; + public static final int WS=22; // delegates // delegators @@ -114,38 +114,15 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__22" - public final void mT__22() throws RecognitionException { - try { - int _type = T__22; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '()' - { - match("()"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__22" - // $ANTLR start "T__23" public final void mT__23() throws RecognitionException { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '.class' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '()' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '()' { - match(".class"); + match("()"); @@ -165,10 +142,10 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.end class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.end class' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '.class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '.class' { - match(".end class"); + match(".class"); @@ -188,10 +165,10 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.field' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.field' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.end class' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.end class' { - match(".field"); + match(".end class"); @@ -211,10 +188,10 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.method' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.method' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.field' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.field' { - match(".method"); + match(".field"); @@ -234,10 +211,10 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.super' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.super' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.method' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.method' { - match(".super"); + match(".method"); @@ -257,10 +234,12 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '/' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '/' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.super' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.super' { - match('/'); + match(".super"); + + } @@ -278,10 +257,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: ':' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '/' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '/' { - match(':'); + match('/'); } @@ -299,10 +278,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'L' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'L' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( ':' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: ':' { - match('L'); + match(':'); } @@ -320,8 +299,8 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aconst_null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aconst_null' { match("aconst_null"); @@ -343,8 +322,8 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload' { match("aload"); @@ -366,8 +345,8 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_0' { match("aload_0"); @@ -389,8 +368,8 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_1' { match("aload_1"); @@ -412,8 +391,8 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_2' { match("aload_2"); @@ -435,8 +414,8 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_3' { match("aload_3"); @@ -458,8 +437,8 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore' { match("astore"); @@ -481,8 +460,8 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_0' { match("astore_0"); @@ -504,8 +483,8 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_1' { match("astore_1"); @@ -527,8 +506,8 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_2' { match("astore_2"); @@ -550,8 +529,8 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore_3' { match("astore_3"); @@ -573,8 +552,8 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'dup' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'dup' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'dup' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'dup' { match("dup"); @@ -596,8 +575,8 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'getfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'getfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'getfield' { match("getfield"); @@ -619,8 +598,8 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'goto' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'goto' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'goto' { match("goto"); @@ -642,8 +621,8 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iadd' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iadd' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iadd' { match("iadd"); @@ -665,8 +644,8 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iand' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iand' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iand' { match("iand"); @@ -688,8 +667,8 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_0' { match("iconst_0"); @@ -711,8 +690,8 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_1' { match("iconst_1"); @@ -734,8 +713,8 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_2' { match("iconst_2"); @@ -757,8 +736,8 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_3' { match("iconst_3"); @@ -780,8 +759,8 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_4' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_4' { match("iconst_4"); @@ -803,8 +782,8 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_5' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_5' { match("iconst_5"); @@ -826,8 +805,8 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_m1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_m1' { match("iconst_m1"); @@ -849,8 +828,8 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'idiv' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'idiv' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'idiv' { match("idiv"); @@ -872,8 +851,8 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmpeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpeq' { match("if_icmpeq"); @@ -895,8 +874,8 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmpge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmpge' { match("if_icmpge"); @@ -918,8 +897,8 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmpgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmpgt' { match("if_icmpgt"); @@ -941,8 +920,8 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmple' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmple' { match("if_icmple"); @@ -964,8 +943,8 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmplt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmplt' { match("if_icmplt"); @@ -987,8 +966,8 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpne' { match("if_icmpne"); @@ -1010,8 +989,8 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifeq' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifeq' { match("ifeq"); @@ -1033,8 +1012,8 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ifge' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifge' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifge' { match("ifge"); @@ -1056,8 +1035,8 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifgt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ifgt' { match("ifgt"); @@ -1079,8 +1058,8 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ifle' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifle' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifle' { match("ifle"); @@ -1102,8 +1081,8 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'iflt' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iflt' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iflt' { match("iflt"); @@ -1125,8 +1104,8 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifne' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifne' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifne' { match("ifne"); @@ -1148,8 +1127,8 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iinc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iinc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iinc' { match("iinc"); @@ -1171,8 +1150,8 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload' { match("iload"); @@ -1194,8 +1173,8 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_0' { match("iload_0"); @@ -1217,8 +1196,8 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iload_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_1' { match("iload_1"); @@ -1240,8 +1219,8 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iload_2' { match("iload_2"); @@ -1263,8 +1242,8 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload_3' { match("iload_3"); @@ -1286,8 +1265,8 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'imul' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'imul' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'imul' { match("imul"); @@ -1309,8 +1288,8 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'ineg' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ineg' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ineg' { match("ineg"); @@ -1332,8 +1311,8 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'invokespecial' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'invokespecial' { match("invokespecial"); @@ -1355,8 +1334,8 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'ior' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'ior' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'ior' { match("ior"); @@ -1378,8 +1357,8 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'irem' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'irem' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'irem' { match("irem"); @@ -1401,8 +1380,8 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore' { match("istore"); @@ -1424,8 +1403,8 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_0' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_0' { match("istore_0"); @@ -1447,8 +1426,8 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'istore_1' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_1' { match("istore_1"); @@ -1470,8 +1449,8 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'istore_2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'istore_2' { match("istore_2"); @@ -1493,8 +1472,8 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'istore_3' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'istore_3' { match("istore_3"); @@ -1516,8 +1495,8 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'isub' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'isub' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'isub' { match("isub"); @@ -1539,8 +1518,8 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ixor' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'ixor' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'ixor' { match("ixor"); @@ -1562,8 +1541,8 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'ldc' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ldc' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ldc' { match("ldc"); @@ -1585,8 +1564,8 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'new' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'new' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'new' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'new' { match("new"); @@ -1608,8 +1587,8 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'nop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'nop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'nop' { match("nop"); @@ -1631,8 +1610,8 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'pop' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'pop' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'pop' { match("pop"); @@ -1654,8 +1633,8 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'pop2' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'pop2' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'pop2' { match("pop2"); @@ -1677,8 +1656,8 @@ public final void mT__90() throws RecognitionException { try { int _type = T__90; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'putfield' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'putfield' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'putfield' { match("putfield"); @@ -1700,8 +1679,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:8: '' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:6: ( '' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:8: '' { match(""); @@ -1723,8 +1702,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:7: 'I' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:5: ( 'I' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:7: 'I' { match('I'); @@ -1744,8 +1723,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: 'V' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:6: ( 'V' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:8: 'V' { match('V'); @@ -1765,10 +1744,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1787,7 +1766,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:9: 'null' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:9: 'null' { match("null"); @@ -1796,7 +1775,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:18: 'NULL' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:18: 'NULL' { match("NULL"); @@ -1824,10 +1803,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1836,7 +1815,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:11: '-' { match('-'); @@ -1846,7 +1825,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -1896,6 +1875,59 @@ public final void mINTEIRO() throws RecognitionException { } // $ANTLR end "INTEIRO" + // $ANTLR start "TIPO_REF" + public final void mTIPO_REF() throws RecognitionException { + try { + int _type = TIPO_REF; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: 'L' ID ( '/' ID )* + { + match('L'); + + mID(); + + + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:18: ( '/' ID )* + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='/') ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:19: '/' ID + { + match('/'); + + mID(); + + + } + break; + + default : + break loop4; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "TIPO_REF" + // $ANTLR start "ID" public final void mID() throws RecognitionException { try { @@ -1915,17 +1947,17 @@ public final void mID() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - loop4: + loop5: do { - int alt4=2; - int LA4_0 = input.LA(1); + int alt5=2; + int LA5_0 = input.LA(1); - if ( (LA4_0=='.'||(LA4_0 >= '0' && LA4_0 <= '9')||(LA4_0 >= 'A' && LA4_0 <= 'Z')||(LA4_0 >= 'a' && LA4_0 <= 'z')) ) { - alt4=1; + if ( (LA5_0=='.'||(LA5_0 >= '0' && LA5_0 <= '9')||(LA5_0 >= 'A' && LA5_0 <= 'Z')||(LA5_0 >= 'a' && LA5_0 <= 'z')) ) { + alt5=1; } - switch (alt4) { + switch (alt5) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { @@ -1943,7 +1975,7 @@ public final void mID() throws RecognitionException { break; default : - break loop4; + break loop5; } } while (true); @@ -1998,7 +2030,7 @@ public final void mWS() throws RecognitionException { } - skip(); + _channel=HIDDEN; } @@ -2012,604 +2044,604 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | INIT | INT | VOID | NULL | INTEIRO | ID | NEWLINE | WS ) - int alt5=77; - alt5 = dfa5.predict(input); - switch (alt5) { + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) + int alt6=77; + alt6 = dfa6.predict(input); + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__22 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__23 { - mT__22(); + mT__23(); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__23 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__24 { - mT__23(); + mT__24(); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__24 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__25 { - mT__24(); + mT__25(); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__25 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__26 { - mT__25(); + mT__26(); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__26 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__27 { - mT__26(); + mT__27(); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__27 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__28 { - mT__27(); + mT__28(); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__28 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__29 { - mT__28(); + mT__29(); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__29 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__30 { - mT__29(); + mT__30(); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__30 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__31 { - mT__30(); + mT__31(); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__31 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__32 { - mT__31(); + mT__32(); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__32 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__33 { - mT__32(); + mT__33(); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__33 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__34 { - mT__33(); + mT__34(); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__34 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__35 { - mT__34(); + mT__35(); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__35 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__36 { - mT__35(); + mT__36(); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__36 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__37 { - mT__36(); + mT__37(); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__37 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__38 { - mT__37(); + mT__38(); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__38 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__39 { - mT__38(); + mT__39(); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__39 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__40 { - mT__39(); + mT__40(); } break; case 19 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__40 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__41 { - mT__40(); + mT__41(); } break; case 20 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__41 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__42 { - mT__41(); + mT__42(); } break; case 21 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__42 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__43 { - mT__42(); + mT__43(); } break; case 22 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__43 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__44 { - mT__43(); + mT__44(); } break; case 23 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__44 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__45 { - mT__44(); + mT__45(); } break; case 24 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__45 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__46 { - mT__45(); + mT__46(); } break; case 25 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__46 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__47 { - mT__46(); + mT__47(); } break; case 26 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__47 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__48 { - mT__47(); + mT__48(); } break; case 27 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__48 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__49 { - mT__48(); + mT__49(); } break; case 28 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__49 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__50 { - mT__49(); + mT__50(); } break; case 29 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__50 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__51 { - mT__50(); + mT__51(); } break; case 30 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__51 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__52 { - mT__51(); + mT__52(); } break; case 31 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__52 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__53 { - mT__52(); + mT__53(); } break; case 32 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__53 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__54 { - mT__53(); + mT__54(); } break; case 33 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__54 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__55 { - mT__54(); + mT__55(); } break; case 34 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__55 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__56 { - mT__55(); + mT__56(); } break; case 35 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__56 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__57 { - mT__56(); + mT__57(); } break; case 36 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__57 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__58 { - mT__57(); + mT__58(); } break; case 37 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__58 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__59 { - mT__58(); + mT__59(); } break; case 38 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__59 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__60 { - mT__59(); + mT__60(); } break; case 39 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__60 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__61 { - mT__60(); + mT__61(); } break; case 40 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__61 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__62 { - mT__61(); + mT__62(); } break; case 41 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__62 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__63 { - mT__62(); + mT__63(); } break; case 42 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__63 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__64 { - mT__63(); + mT__64(); } break; case 43 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__64 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__65 { - mT__64(); + mT__65(); } break; case 44 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__65 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__66 { - mT__65(); + mT__66(); } break; case 45 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__66 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__67 { - mT__66(); + mT__67(); } break; case 46 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__67 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__68 { - mT__67(); + mT__68(); } break; case 47 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__68 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__69 { - mT__68(); + mT__69(); } break; case 48 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__69 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__70 { - mT__69(); + mT__70(); } break; case 49 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__70 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__71 { - mT__70(); + mT__71(); } break; case 50 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__71 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__72 { - mT__71(); + mT__72(); } break; case 51 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__72 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__73 { - mT__72(); + mT__73(); } break; case 52 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__73 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__74 { - mT__73(); + mT__74(); } break; case 53 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__74 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__75 { - mT__74(); + mT__75(); } break; case 54 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__75 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__76 { - mT__75(); + mT__76(); } break; case 55 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__76 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__77 { - mT__76(); + mT__77(); } break; case 56 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__77 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__78 { - mT__77(); + mT__78(); } break; case 57 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__78 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__79 { - mT__78(); + mT__79(); } break; case 58 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__79 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__80 { - mT__79(); + mT__80(); } break; case 59 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__80 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__81 { - mT__80(); + mT__81(); } break; case 60 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__81 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__82 { - mT__81(); + mT__82(); } break; case 61 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__82 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__83 { - mT__82(); + mT__83(); } break; case 62 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__83 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__84 { - mT__83(); + mT__84(); } break; case 63 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__84 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__85 { - mT__84(); + mT__85(); } break; case 64 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__85 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__86 { - mT__85(); + mT__86(); } break; case 65 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__86 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__87 { - mT__86(); + mT__87(); } break; case 66 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__87 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__88 { - mT__87(); + mT__88(); } break; case 67 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__88 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__89 { - mT__88(); + mT__89(); } break; case 68 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__89 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__90 { - mT__89(); + mT__90(); } break; case 69 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__90 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: INIT { - mT__90(); + mINIT(); } break; case 70 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: INIT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:423: INT { - mINIT(); + mINT(); } break; case 71 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:429: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:427: VOID { - mINT(); + mVOID(); } break; case 72 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:433: VOID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:432: NULL { - mVOID(); + mNULL(); } break; case 73 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:438: NULL + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:437: INTEIRO { - mNULL(); + mINTEIRO(); } break; case 74 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:443: INTEIRO + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:445: TIPO_REF { - mINTEIRO(); + mTIPO_REF(); } break; case 75 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:451: ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:454: ID { mID(); @@ -2617,7 +2649,7 @@ public void mTokens() throws RecognitionException { } break; case 76 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:454: NEWLINE + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:457: NEWLINE { mNEWLINE(); @@ -2625,7 +2657,7 @@ public void mTokens() throws RecognitionException { } break; case 77 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:462: WS + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:465: WS { mWS(); @@ -2638,87 +2670,89 @@ public void mTokens() throws RecognitionException { } - protected DFA5 dfa5 = new DFA5(this); - static final String DFA5_eotS = - "\5\uffff\1\32\7\22\1\uffff\1\63\1\64\1\22\12\uffff\30\22\2\uffff"+ - "\4\22\1\131\6\22\1\uffff\11\22\1\154\4\22\1\161\1\162\1\163\1\22"+ - "\1\166\5\22\1\uffff\1\22\1\175\1\176\1\177\1\22\1\u0081\1\uffff"+ - "\1\u0083\1\u0084\1\u0085\1\u0086\1\u0087\1\u0088\1\u0089\1\22\1"+ - "\u008b\1\u008c\1\22\1\uffff\1\u008e\1\22\1\u0090\1\u0091\3\uffff"+ - "\1\u0092\1\u0093\1\uffff\1\22\1\u0092\1\22\1\u0097\2\22\3\uffff"+ - "\1\22\11\uffff\1\u009d\2\uffff\1\22\1\uffff\1\22\4\uffff\2\22\2"+ - "\uffff\1\u00a7\2\22\3\uffff\1\22\1\u00b1\1\22\7\uffff\1\22\6\uffff"+ - "\1\22\2\uffff\1\22\4\uffff\1\u00c9\13\uffff\1\22\4\uffff\1\u00cf"+ - "\5\uffff\1\22\1\uffff\3\22\1\u00d4\1\uffff"; - static final String DFA5_eofS = - "\u00d5\uffff"; - static final String DFA5_minS = - "\1\11\1\uffff\1\143\2\uffff\1\56\1\143\1\165\1\145\1\141\1\144\1"+ - "\145\1\157\1\uffff\2\56\1\125\12\uffff\2\157\1\164\1\160\2\164\1"+ - "\144\1\157\1\151\1\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164"+ - "\1\157\1\143\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1\156\1"+ - "\141\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161\3\145"+ - "\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162\3\56"+ - "\1\154\1\56\1\146\1\114\1\163\1\144\1\162\1\uffff\1\151\3\56\1\163"+ - "\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff\1\56\1\162\2\56\3\uffff"+ - "\2\56\1\uffff\1\151\1\56\1\164\1\56\2\145\3\uffff\1\164\1\uffff"+ - "\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1"+ - "\137\1\60\1\uffff\1\56\1\154\1\137\1\160\1\60\1\uffff\1\163\1\56"+ - "\1\154\5\uffff\1\60\1\uffff\1\144\1\60\1\145\4\uffff\1\160\1\60"+ - "\1\uffff\1\144\4\uffff\1\56\10\uffff\2\145\1\uffff\1\145\4\uffff"+ - "\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\56\1\uffff"; - static final String DFA5_maxS = - "\1\172\1\uffff\1\163\2\uffff\1\172\1\163\1\165\1\157\1\170\1\144"+ - "\2\165\1\uffff\2\172\1\125\12\uffff\2\157\1\164\1\160\2\164\1\156"+ - "\1\157\1\151\2\156\1\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143"+ - "\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1\156\1\141\1\157\1"+ - "\172\1\146\1\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145\1\143"+ - "\1\141\1\154\1\147\1\157\1\172\1\155\1\157\1\142\1\162\3\172\1\154"+ - "\1\172\1\146\1\114\1\163\1\144\1\162\1\uffff\1\151\3\172\1\163\1"+ - "\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1\172\1\162\2\172\3\uffff"+ - "\2\172\1\uffff\1\151\1\172\1\164\1\172\2\145\3\uffff\1\164\1\uffff"+ - "\1\155\7\uffff\1\172\2\uffff\1\145\1\uffff\1\145\4\uffff\1\145\1"+ - "\137\1\63\1\uffff\1\172\1\154\1\137\1\160\1\63\1\uffff\1\163\1\172"+ - "\1\154\5\uffff\1\63\1\uffff\1\144\1\155\1\156\4\uffff\1\160\1\63"+ - "\1\uffff\1\144\4\uffff\1\172\10\uffff\2\164\1\uffff\1\145\4\uffff"+ - "\1\172\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; - static final String DFA5_acceptS = - "\1\uffff\1\1\1\uffff\1\7\1\10\10\uffff\1\106\3\uffff\1\112\1\113"+ - "\1\114\1\115\1\2\1\3\1\4\1\5\1\6\1\11\30\uffff\1\107\1\110\44\uffff"+ - "\1\25\22\uffff\1\67\4\uffff\1\100\1\101\1\102\2\uffff\1\103\6\uffff"+ - "\1\27\1\30\1\31\1\uffff\1\41\1\uffff\1\50\1\51\1\52\1\53\1\54\1"+ - "\55\1\56\1\uffff\1\64\1\65\1\uffff\1\70\1\uffff\1\76\1\77\1\111"+ - "\1\104\3\uffff\1\13\5\uffff\1\57\3\uffff\1\12\1\14\1\15\1\16\1\17"+ - "\1\uffff\1\20\3\uffff\1\60\1\61\1\62\1\63\2\uffff\1\71\1\uffff\1"+ - "\21\1\22\1\23\1\24\1\uffff\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1"+ - "\42\2\uffff\1\47\1\uffff\1\72\1\73\1\74\1\75\1\uffff\1\26\1\43\1"+ - "\44\1\45\1\46\1\uffff\1\105\4\uffff\1\66"; - static final String DFA5_specialS = - "\u00d5\uffff}>"; - static final String[] DFA5_transitionS = { + protected DFA6 dfa6 = new DFA6(this); + static final String DFA6_eotS = + "\5\uffff\7\22\1\uffff\1\62\1\63\1\22\1\uffff\1\22\10\uffff\30\22"+ + "\2\uffff\1\22\1\127\3\22\1\133\6\22\1\uffff\11\22\1\156\4\22\1\163"+ + "\1\164\1\165\1\22\1\170\2\22\1\127\1\uffff\3\22\1\uffff\1\22\1\177"+ + "\1\u0080\1\u0081\1\22\1\u0083\1\uffff\1\u0085\1\u0086\1\u0087\1"+ + "\u0088\1\u0089\1\u008a\1\u008b\1\22\1\u008d\1\u008e\1\22\1\uffff"+ + "\1\u0090\1\22\1\u0092\1\u0093\3\uffff\1\u0094\1\u0095\1\uffff\1"+ + "\22\1\u0094\1\22\1\u0099\2\22\3\uffff\1\22\11\uffff\1\u009f\2\uffff"+ + "\1\22\1\uffff\1\22\4\uffff\2\22\2\uffff\1\u00a9\2\22\3\uffff\1\22"+ + "\1\u00b3\1\22\7\uffff\1\22\6\uffff\1\22\2\uffff\1\22\4\uffff\1\u00cb"+ + "\13\uffff\1\22\4\uffff\1\u00d1\5\uffff\1\22\1\uffff\3\22\1\u00d6"+ + "\1\uffff"; + static final String DFA6_eofS = + "\u00d7\uffff"; + static final String DFA6_minS = + "\1\11\1\uffff\1\143\2\uffff\1\143\1\165\1\145\1\141\1\144\1\145"+ + "\1\157\1\uffff\2\56\1\125\1\uffff\1\101\10\uffff\2\157\1\164\1\160"+ + "\2\164\1\144\1\157\1\151\1\137\1\156\1\157\1\165\1\145\1\162\1\145"+ + "\1\164\1\157\1\143\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1"+ + "\56\1\156\1\141\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1"+ + "\161\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142"+ + "\1\162\3\56\1\154\1\56\1\146\1\114\1\56\1\uffff\1\163\1\144\1\162"+ + "\1\uffff\1\151\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff"+ + "\1\56\1\162\2\56\3\uffff\2\56\1\uffff\1\151\1\56\1\164\1\56\2\145"+ + "\3\uffff\1\164\1\uffff\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff"+ + "\1\145\4\uffff\1\145\1\137\1\60\1\uffff\1\56\1\154\1\137\1\160\1"+ + "\60\1\uffff\1\163\1\56\1\154\5\uffff\1\60\1\uffff\1\144\1\60\1\145"+ + "\4\uffff\1\160\1\60\1\uffff\1\144\4\uffff\1\56\10\uffff\2\145\1"+ + "\uffff\1\145\4\uffff\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154"+ + "\1\56\1\uffff"; + static final String DFA6_maxS = + "\1\172\1\uffff\1\163\2\uffff\1\163\1\165\1\157\1\170\1\144\2\165"+ + "\1\uffff\2\172\1\125\1\uffff\1\172\10\uffff\2\157\1\164\1\160\2"+ + "\164\1\156\1\157\1\151\2\156\1\157\1\165\1\166\1\162\1\145\1\165"+ + "\1\157\1\143\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1\172\1"+ + "\156\1\141\1\157\1\172\1\146\1\157\2\144\1\156\1\166\1\151\1\161"+ + "\2\164\1\145\1\143\1\141\1\154\1\147\1\157\1\172\1\155\1\157\1\142"+ + "\1\162\3\172\1\154\1\172\1\146\1\114\1\172\1\uffff\1\163\1\144\1"+ + "\162\1\uffff\1\151\3\172\1\163\1\172\1\143\7\172\1\144\2\172\1\153"+ + "\1\uffff\1\172\1\162\2\172\3\uffff\2\172\1\uffff\1\151\1\172\1\164"+ + "\1\172\2\145\3\uffff\1\164\1\uffff\1\155\7\uffff\1\172\2\uffff\1"+ + "\145\1\uffff\1\145\4\uffff\1\145\1\137\1\63\1\uffff\1\172\1\154"+ + "\1\137\1\160\1\63\1\uffff\1\163\1\172\1\154\5\uffff\1\63\1\uffff"+ + "\1\144\1\155\1\156\4\uffff\1\160\1\63\1\uffff\1\144\4\uffff\1\172"+ + "\10\uffff\2\164\1\uffff\1\145\4\uffff\1\172\5\uffff\1\143\1\uffff"+ + "\1\151\1\141\1\154\1\172\1\uffff"; + static final String DFA6_acceptS = + "\1\uffff\1\1\1\uffff\1\7\1\10\7\uffff\1\105\3\uffff\1\111\1\uffff"+ + "\1\113\1\114\1\115\1\2\1\3\1\4\1\5\1\6\30\uffff\1\106\1\107\43\uffff"+ + "\1\112\3\uffff\1\24\22\uffff\1\66\4\uffff\1\77\1\100\1\101\2\uffff"+ + "\1\102\6\uffff\1\26\1\27\1\30\1\uffff\1\40\1\uffff\1\47\1\50\1\51"+ + "\1\52\1\53\1\54\1\55\1\uffff\1\63\1\64\1\uffff\1\67\1\uffff\1\75"+ + "\1\76\1\110\1\103\3\uffff\1\12\5\uffff\1\56\3\uffff\1\11\1\13\1"+ + "\14\1\15\1\16\1\uffff\1\17\3\uffff\1\57\1\60\1\61\1\62\2\uffff\1"+ + "\70\1\uffff\1\20\1\21\1\22\1\23\1\uffff\1\31\1\32\1\33\1\34\1\35"+ + "\1\36\1\37\1\41\2\uffff\1\46\1\uffff\1\71\1\72\1\73\1\74\1\uffff"+ + "\1\25\1\42\1\43\1\44\1\45\1\uffff\1\104\4\uffff\1\65"; + static final String DFA6_specialS = + "\u00d7\uffff}>"; + static final String[] DFA6_transitionS = { "\1\24\1\23\2\uffff\1\24\22\uffff\1\24\7\uffff\1\1\4\uffff\1"+ - "\21\1\2\1\3\12\21\1\4\1\uffff\1\15\4\uffff\10\22\1\16\2\22\1"+ - "\5\1\22\1\20\7\22\1\17\4\22\6\uffff\1\6\2\22\1\7\2\22\1\10\1"+ - "\22\1\11\2\22\1\12\1\22\1\13\1\22\1\14\12\22", + "\20\1\2\1\3\12\20\1\4\1\uffff\1\14\4\uffff\10\22\1\15\2\22\1"+ + "\21\1\22\1\17\7\22\1\16\4\22\6\uffff\1\5\2\22\1\6\2\22\1\7\1"+ + "\22\1\10\2\22\1\11\1\22\1\12\1\22\1\13\12\22", "", "\1\25\1\uffff\1\26\1\27\6\uffff\1\30\5\uffff\1\31", "", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\33\10\uffff\1\34\6\uffff\1\35", - "\1\36", - "\1\37\11\uffff\1\40", - "\1\41\1\uffff\1\42\1\43\1\uffff\1\44\2\uffff\1\45\2\uffff\1"+ - "\46\1\47\1\50\1\51\2\uffff\1\52\1\53\4\uffff\1\54", - "\1\55", - "\1\56\11\uffff\1\57\5\uffff\1\60", - "\1\61\5\uffff\1\62", + "\1\32\10\uffff\1\33\6\uffff\1\34", + "\1\35", + "\1\36\11\uffff\1\37", + "\1\40\1\uffff\1\41\1\42\1\uffff\1\43\2\uffff\1\44\2\uffff\1"+ + "\45\1\46\1\47\1\50\2\uffff\1\51\1\52\4\uffff\1\53", + "\1\54", + "\1\55\11\uffff\1\56\5\uffff\1\57", + "\1\60\5\uffff\1\61", "", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\65", - "", + "\1\64", "", + "\32\65\6\uffff\32\65", "", "", "", @@ -2755,63 +2789,66 @@ public void mTokens() throws RecognitionException { "", "", "\1\125", - "\1\126", - "\1\127", + "\1\126\1\uffff\12\126\7\uffff\32\126\6\uffff\32\126", "\1\130", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\131", "\1\132", - "\1\133", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\134", "\1\135", "\1\136", "\1\137", "\1\140", "\1\141", - "\1\142\16\uffff\1\143", + "\1\142", + "\1\143", "\1\144\16\uffff\1\145", - "\1\146", - "\1\147", + "\1\146\16\uffff\1\147", "\1\150", "\1\151", "\1\152", "\1\153", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\154", "\1\155", - "\1\156", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\157", "\1\160", + "\1\161", + "\1\162", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\164", - "\1\22\1\uffff\2\22\1\165\7\22\7\uffff\32\22\6\uffff\32\22", - "\1\167", - "\1\170", + "\1\166", + "\1\22\1\uffff\2\22\1\167\7\22\7\uffff\32\22\6\uffff\32\22", "\1\171", "\1\172", - "\1\173", + "\1\126\1\uffff\12\126\7\uffff\32\126\6\uffff\32\126", "", + "\1\173", "\1\174", + "\1\175", + "", + "\1\176", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u0080", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\u0082", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u0084", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u008a", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u008c", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u008d", - "", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\u008f", + "", + "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u0091", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", @@ -2820,19 +2857,19 @@ public void mTokens() throws RecognitionException { "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", - "\1\u0094", + "\1\u0096", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u0095", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u0096\1\uffff\32"+ + "\1\u0097", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u0098\1\uffff\32"+ "\22", - "\1\u0098", - "\1\u0099", + "\1\u009a", + "\1\u009b", "", "", "", - "\1\u009a", + "\1\u009c", "", - "\1\u009b", + "\1\u009d", "", "", "", @@ -2840,51 +2877,51 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u009c\1\uffff\32"+ + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u009e\1\uffff\32"+ "\22", "", "", - "\1\u009e", + "\1\u00a0", "", - "\1\u009f", + "\1\u00a1", "", "", "", "", - "\1\u00a0", - "\1\u00a1", - "\1\u00a2\1\u00a3\1\u00a4\1\u00a5", + "\1\u00a2", + "\1\u00a3", + "\1\u00a4\1\u00a5\1\u00a6\1\u00a7", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00a6\1\uffff\32"+ + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00a8\1\uffff\32"+ "\22", - "\1\u00a8", - "\1\u00a9", "\1\u00aa", - "\1\u00ab\1\u00ac\1\u00ad\1\u00ae", + "\1\u00ab", + "\1\u00ac", + "\1\u00ad\1\u00ae\1\u00af\1\u00b0", "", - "\1\u00af", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00b0\1\uffff\32"+ + "\1\u00b1", + "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00b2\1\uffff\32"+ "\22", - "\1\u00b2", + "\1\u00b4", "", "", "", "", "", - "\1\u00b3\1\u00b4\1\u00b5\1\u00b6", + "\1\u00b5\1\u00b6\1\u00b7\1\u00b8", "", - "\1\u00b7", - "\1\u00b8\1\u00b9\1\u00ba\1\u00bb\1\u00bc\1\u00bd\67\uffff\1"+ - "\u00be", - "\1\u00bf\1\uffff\1\u00c0\4\uffff\1\u00c1\1\uffff\1\u00c2", + "\1\u00b9", + "\1\u00ba\1\u00bb\1\u00bc\1\u00bd\1\u00be\1\u00bf\67\uffff\1"+ + "\u00c0", + "\1\u00c1\1\uffff\1\u00c2\4\uffff\1\u00c3\1\uffff\1\u00c4", "", "", "", "", - "\1\u00c3", - "\1\u00c4\1\u00c5\1\u00c6\1\u00c7", + "\1\u00c5", + "\1\u00c6\1\u00c7\1\u00c8\1\u00c9", "", - "\1\u00c8", + "\1\u00ca", "", "", "", @@ -2898,10 +2935,10 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00ca\16\uffff\1\u00cb", "\1\u00cc\16\uffff\1\u00cd", + "\1\u00ce\16\uffff\1\u00cf", "", - "\1\u00ce", + "\1\u00d0", "", "", "", @@ -2912,46 +2949,46 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00d0", - "", - "\1\u00d1", "\1\u00d2", + "", "\1\u00d3", + "\1\u00d4", + "\1\u00d5", "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "" }; - static final short[] DFA5_eot = DFA.unpackEncodedString(DFA5_eotS); - static final short[] DFA5_eof = DFA.unpackEncodedString(DFA5_eofS); - static final char[] DFA5_min = DFA.unpackEncodedStringToUnsignedChars(DFA5_minS); - static final char[] DFA5_max = DFA.unpackEncodedStringToUnsignedChars(DFA5_maxS); - static final short[] DFA5_accept = DFA.unpackEncodedString(DFA5_acceptS); - static final short[] DFA5_special = DFA.unpackEncodedString(DFA5_specialS); - static final short[][] DFA5_transition; + static final short[] DFA6_eot = DFA.unpackEncodedString(DFA6_eotS); + static final short[] DFA6_eof = DFA.unpackEncodedString(DFA6_eofS); + static final char[] DFA6_min = DFA.unpackEncodedStringToUnsignedChars(DFA6_minS); + static final char[] DFA6_max = DFA.unpackEncodedStringToUnsignedChars(DFA6_maxS); + static final short[] DFA6_accept = DFA.unpackEncodedString(DFA6_acceptS); + static final short[] DFA6_special = DFA.unpackEncodedString(DFA6_specialS); + static final short[][] DFA6_transition; static { - int numStates = DFA5_transitionS.length; - DFA5_transition = new short[numStates][]; + int numStates = DFA6_transitionS.length; + DFA6_transition = new short[numStates][]; for (int i=0; i", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__22=22; public static final int T__23=23; public static final int T__24=24; public static final int T__25=25; @@ -107,8 +106,9 @@ public abstract class AssemblerParser extends Parser { public static final int NULL=17; public static final int PILHA=18; public static final int STORE=19; - public static final int VOID=20; - public static final int WS=21; + public static final int TIPO_REF=20; + public static final int VOID=21; + public static final int WS=22; // delegates public Parser[] getDelegates() { @@ -178,7 +178,7 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==23||LA1_0==26||(LA1_0 >= 31 && LA1_0 <= 90)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==24||LA1_0==27||(LA1_0 >= 31 && LA1_0 <= 90)) ) { alt1=1; } @@ -258,7 +258,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 31 && LA3_0 <= 90)) ) { alt3=1; } - else if ( (LA3_0==23||LA3_0==26) ) { + else if ( (LA3_0==24||LA3_0==27) ) { alt3=2; } else { @@ -301,14 +301,14 @@ else if ( (LA3_0==23||LA3_0==26) ) { int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==24) ) { + if ( (LA2_0==25) ) { alt2=1; } switch (alt2) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:30: '.end class' { - string_literal4=(Token)match(input,24,FOLLOW_24_in_instrucao153); + string_literal4=(Token)match(input,25,FOLLOW_25_in_instrucao153); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -474,8 +474,8 @@ public final AssemblerParser.label_return label() throws RecognitionException { BytecodesAST a_tree=null; BytecodesAST char_literal8_tree=null; + RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); try { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: (a= ID ':' -> ^( LABEL $a) ) @@ -485,8 +485,8 @@ public final AssemblerParser.label_return label() throws RecognitionException { stream_ID.add(a); - char_literal8=(Token)match(input,29,FOLLOW_29_in_label205); - stream_29.add(char_literal8); + char_literal8=(Token)match(input,30,FOLLOW_30_in_label205); + stream_30.add(char_literal8); // AST REWRITE @@ -893,7 +893,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST NEWLINE31_tree=null; RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23"); + RewriteRuleTokenStream stream_24=new RewriteRuleTokenStream(adaptor,"token 24"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { @@ -901,10 +901,10 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec int alt8=2; int LA8_0 = input.LA(1); - if ( (LA8_0==23) ) { + if ( (LA8_0==24) ) { alt8=1; } - else if ( (LA8_0==26) ) { + else if ( (LA8_0==27) ) { alt8=2; } else { @@ -918,8 +918,8 @@ else if ( (LA8_0==26) ) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal20=(Token)match(input,23,FOLLOW_23_in_definicaoClasse438); - stream_23.add(string_literal20); + string_literal20=(Token)match(input,24,FOLLOW_24_in_definicaoClasse438); + stream_24.add(string_literal20); ID21=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse440); @@ -934,7 +934,7 @@ else if ( (LA8_0==26) ) { int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==27) ) { + if ( (LA6_0==28) ) { alt6=1; } switch (alt6) { @@ -965,7 +965,7 @@ else if ( (LA8_0==26) ) { int alt7=2; int LA7_0 = input.LA(1); - if ( (LA7_0==25) ) { + if ( (LA7_0==26) ) { alt7=1; } @@ -999,7 +999,7 @@ else if ( (LA8_0==26) ) { // AST REWRITE - // elements: superClasse, 23, ID, membroClasse + // elements: ID, membroClasse, 24, superClasse // token labels: // rule labels: retval // token list labels: @@ -1015,7 +1015,7 @@ else if ( (LA8_0==26) ) { { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_23.nextNode() + stream_24.nextNode() , root_1); adaptor.addChild(root_1, @@ -1064,7 +1064,7 @@ else if ( (LA8_0==26) ) { root_0 = (BytecodesAST)adaptor.nil(); - string_literal27=(Token)match(input,26,FOLLOW_26_in_definicaoClasse514); + string_literal27=(Token)match(input,27,FOLLOW_27_in_definicaoClasse514); string_literal27_tree = (BytecodesAST)adaptor.create(string_literal27) ; @@ -1078,7 +1078,7 @@ else if ( (LA8_0==26) ) { adaptor.addChild(root_0, INIT28_tree); - string_literal29=(Token)match(input,22,FOLLOW_22_in_definicaoClasse518); + string_literal29=(Token)match(input,23,FOLLOW_23_in_definicaoClasse518); string_literal29_tree = (BytecodesAST)adaptor.create(string_literal29) ; @@ -1146,14 +1146,14 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal32_tree=null; BytecodesAST ID33_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); + RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); try { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:13: ( '.super' ID -> ^( EXTENDS ID ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: '.super' ID { - string_literal32=(Token)match(input,27,FOLLOW_27_in_superClasse563); - stream_27.add(string_literal32); + string_literal32=(Token)match(input,28,FOLLOW_28_in_superClasse563); + stream_28.add(string_literal32); ID33=(Token)match(input,ID,FOLLOW_ID_in_superClasse565); @@ -1239,14 +1239,14 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST string_literal34_tree=null; BytecodesAST ID35_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_25=new RewriteRuleTokenStream(adaptor,"token 25"); + RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: '.field' ID tipo { - string_literal34=(Token)match(input,25,FOLLOW_25_in_membroClasse587); - stream_25.add(string_literal34); + string_literal34=(Token)match(input,26,FOLLOW_26_in_membroClasse587); + stream_26.add(string_literal34); ID35=(Token)match(input,ID,FOLLOW_ID_in_membroClasse589); @@ -1261,7 +1261,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti stream_tipo.add(tipo36.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1352,7 +1352,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); - RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); @@ -1412,7 +1412,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo37.getTree()); // AST REWRITE - // elements: tipo, 43, b + // elements: b, tipo, 43 // token labels: // rule labels: retval, b // token list labels: @@ -1468,7 +1468,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo38.getTree()); // AST REWRITE - // elements: b, tipo, 90 + // elements: tipo, 90, b // token labels: // rule labels: retval, b // token list labels: @@ -1516,8 +1516,8 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); - char_literal39=(Token)match(input,28,FOLLOW_28_in_manipulacaoObjetos734); - stream_28.add(char_literal39); + char_literal39=(Token)match(input,29,FOLLOW_29_in_manipulacaoObjetos734); + stream_29.add(char_literal39); pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos740); @@ -1528,7 +1528,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, d, 75 + // elements: 75, d, c // token labels: // rule labels: retval, d, c // token list labels: @@ -1578,7 +1578,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: c, 86 + // elements: 86, c // token labels: // rule labels: retval, c // token list labels: @@ -1641,7 +1641,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: tipo : ( INT | VOID | tipoRef ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1649,89 +1649,34 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token INT40=null; - Token VOID41=null; - AssemblerParser.tipoRef_return tipoRef42 =null; + Token set40=null; - - BytecodesAST INT40_tree=null; - BytecodesAST VOID41_tree=null; + BytecodesAST set40_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:6: ( INT | VOID | tipoRef ) - int alt10=3; - switch ( input.LA(1) ) { - case INT: - { - alt10=1; - } - break; - case VOID: - { - alt10=2; - } - break; - case 30: - { - alt10=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 10, 0, input); - - throw nvae; - - } - - switch (alt10) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: INT - { - root_0 = (BytecodesAST)adaptor.nil(); - - - INT40=(Token)match(input,INT,FOLLOW_INT_in_tipo846); - INT40_tree = - (BytecodesAST)adaptor.create(INT40) - ; - adaptor.addChild(root_0, INT40_tree); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:14: VOID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - VOID41=(Token)match(input,VOID,FOLLOW_VOID_in_tipo850); - VOID41_tree = - (BytecodesAST)adaptor.create(VOID41) - ; - adaptor.addChild(root_0, VOID41_tree); - - - } - break; - case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:21: tipoRef - { - root_0 = (BytecodesAST)adaptor.nil(); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: + { + root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_tipoRef_in_tipo854); - tipoRef42=tipoRef(); + set40=(Token)input.LT(1); - state._fsp--; + if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { + input.consume(); + adaptor.addChild(root_0, + (BytecodesAST)adaptor.create(set40) + ); + state.errorRecovery=false; + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } - adaptor.addChild(root_0, tipoRef42.getTree()); - - } - break; } + retval.stop = input.LT(-1); @@ -1785,56 +1730,56 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt11=7; + int alt10=7; switch ( input.LA(1) ) { case 45: { - alt11=1; + alt10=1; } break; case 83: { - alt11=2; + alt10=2; } break; case 73: { - alt11=3; + alt10=3; } break; case 54: { - alt11=4; + alt10=4; } break; case 77: { - alt11=5; + alt10=5; } break; case 67: { - alt11=6; + alt10=6; } break; case 74: { - alt11=7; + alt10=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 11, 0, input); + new NoViableAltException("", 10, 0, input); throw nvae; } - switch (alt11) { + switch (alt10) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:19: a= 'iadd' { - a=(Token)match(input,45,FOLLOW_45_in_aritmetica872); + a=(Token)match(input,45,FOLLOW_45_in_aritmetica871); stream_45.add(a); @@ -1843,7 +1788,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:19: a= 'isub' { - a=(Token)match(input,83,FOLLOW_83_in_aritmetica896); + a=(Token)match(input,83,FOLLOW_83_in_aritmetica895); stream_83.add(a); @@ -1852,7 +1797,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:19: a= 'imul' { - a=(Token)match(input,73,FOLLOW_73_in_aritmetica920); + a=(Token)match(input,73,FOLLOW_73_in_aritmetica919); stream_73.add(a); @@ -1861,7 +1806,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 4 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:19: a= 'idiv' { - a=(Token)match(input,54,FOLLOW_54_in_aritmetica944); + a=(Token)match(input,54,FOLLOW_54_in_aritmetica943); stream_54.add(a); @@ -1870,7 +1815,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 5 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:19: a= 'irem' { - a=(Token)match(input,77,FOLLOW_77_in_aritmetica968); + a=(Token)match(input,77,FOLLOW_77_in_aritmetica967); stream_77.add(a); @@ -1879,7 +1824,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 6 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:19: a= 'iinc' { - a=(Token)match(input,67,FOLLOW_67_in_aritmetica992); + a=(Token)match(input,67,FOLLOW_67_in_aritmetica991); stream_67.add(a); @@ -1888,7 +1833,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 7 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:19: a= 'ineg' { - a=(Token)match(input,74,FOLLOW_74_in_aritmetica1016); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica1015); stream_74.add(a); @@ -1993,101 +1938,101 @@ public final AssemblerParser.load_return load() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt12=16; + int alt11=16; switch ( input.LA(1) ) { case 53: { - alt12=1; + alt11=1; } break; case 47: { - alt12=2; + alt11=2; } break; case 48: { - alt12=3; + alt11=3; } break; case 49: { - alt12=4; + alt11=4; } break; case 50: { - alt12=5; + alt11=5; } break; case 51: { - alt12=6; + alt11=6; } break; case 52: { - alt12=7; + alt11=7; } break; case 31: { - alt12=8; + alt11=8; } break; case 69: { - alt12=9; + alt11=9; } break; case 70: { - alt12=10; + alt11=10; } break; case 71: { - alt12=11; + alt11=11; } break; case 72: { - alt12=12; + alt11=12; } break; case 33: { - alt12=13; + alt11=13; } break; case 34: { - alt12=14; + alt11=14; } break; case 35: { - alt12=15; + alt11=15; } break; case 36: { - alt12=16; + alt11=16; } break; default: NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); + new NoViableAltException("", 11, 0, input); throw nvae; } - switch (alt12) { + switch (alt11) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:13: a= 'iconst_m1' { - a=(Token)match(input,53,FOLLOW_53_in_load1094); + a=(Token)match(input,53,FOLLOW_53_in_load1093); stream_53.add(a); @@ -2096,7 +2041,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'iconst_0' { - a=(Token)match(input,47,FOLLOW_47_in_load1112); + a=(Token)match(input,47,FOLLOW_47_in_load1111); stream_47.add(a); @@ -2105,7 +2050,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'iconst_1' { - a=(Token)match(input,48,FOLLOW_48_in_load1130); + a=(Token)match(input,48,FOLLOW_48_in_load1129); stream_48.add(a); @@ -2114,7 +2059,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'iconst_2' { - a=(Token)match(input,49,FOLLOW_49_in_load1148); + a=(Token)match(input,49,FOLLOW_49_in_load1147); stream_49.add(a); @@ -2123,7 +2068,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'iconst_3' { - a=(Token)match(input,50,FOLLOW_50_in_load1167); + a=(Token)match(input,50,FOLLOW_50_in_load1166); stream_50.add(a); @@ -2132,7 +2077,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'iconst_4' { - a=(Token)match(input,51,FOLLOW_51_in_load1185); + a=(Token)match(input,51,FOLLOW_51_in_load1184); stream_51.add(a); @@ -2141,7 +2086,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'iconst_5' { - a=(Token)match(input,52,FOLLOW_52_in_load1203); + a=(Token)match(input,52,FOLLOW_52_in_load1202); stream_52.add(a); @@ -2150,7 +2095,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: a= 'aconst_null' { - a=(Token)match(input,31,FOLLOW_31_in_load1221); + a=(Token)match(input,31,FOLLOW_31_in_load1220); stream_31.add(a); @@ -2159,7 +2104,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 9 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: a= 'iload_0' { - a=(Token)match(input,69,FOLLOW_69_in_load1240); + a=(Token)match(input,69,FOLLOW_69_in_load1239); stream_69.add(a); @@ -2168,7 +2113,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 10 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:13: a= 'iload_1' { - a=(Token)match(input,70,FOLLOW_70_in_load1259); + a=(Token)match(input,70,FOLLOW_70_in_load1258); stream_70.add(a); @@ -2177,7 +2122,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 11 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:13: a= 'iload_2' { - a=(Token)match(input,71,FOLLOW_71_in_load1277); + a=(Token)match(input,71,FOLLOW_71_in_load1276); stream_71.add(a); @@ -2186,7 +2131,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 12 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:13: a= 'iload_3' { - a=(Token)match(input,72,FOLLOW_72_in_load1295); + a=(Token)match(input,72,FOLLOW_72_in_load1294); stream_72.add(a); @@ -2195,7 +2140,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 13 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:13: a= 'aload_0' { - a=(Token)match(input,33,FOLLOW_33_in_load1313); + a=(Token)match(input,33,FOLLOW_33_in_load1312); stream_33.add(a); @@ -2204,7 +2149,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 14 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:13: a= 'aload_1' { - a=(Token)match(input,34,FOLLOW_34_in_load1331); + a=(Token)match(input,34,FOLLOW_34_in_load1330); stream_34.add(a); @@ -2213,7 +2158,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 15 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:13: a= 'aload_2' { - a=(Token)match(input,35,FOLLOW_35_in_load1350); + a=(Token)match(input,35,FOLLOW_35_in_load1349); stream_35.add(a); @@ -2222,7 +2167,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 16 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:13: a= 'aload_3' { - a=(Token)match(input,36,FOLLOW_36_in_load1368); + a=(Token)match(input,36,FOLLOW_36_in_load1367); stream_36.add(a); @@ -2317,40 +2262,40 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) - int alt13=3; + int alt12=3; switch ( input.LA(1) ) { case 68: { - alt13=1; + alt12=1; } break; case 85: { - alt13=2; + alt12=2; } break; case 32: { - alt13=3; + alt12=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); + new NoViableAltException("", 12, 0, input); throw nvae; } - switch (alt13) { + switch (alt12) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:15: a= 'iload' b= INTEIRO { - a=(Token)match(input,68,FOLLOW_68_in_loadint1422); + a=(Token)match(input,68,FOLLOW_68_in_loadint1421); stream_68.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1428); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1427); stream_INTEIRO.add(b); @@ -2359,11 +2304,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,85,FOLLOW_85_in_loadint1449); + a=(Token)match(input,85,FOLLOW_85_in_loadint1448); stream_85.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1455); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1454); stream_INTEIRO.add(b); @@ -2372,11 +2317,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,32,FOLLOW_32_in_loadint1475); + a=(Token)match(input,32,FOLLOW_32_in_loadint1474); stream_32.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1481); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1480); stream_INTEIRO.add(b); @@ -2387,7 +2332,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -2476,61 +2421,61 @@ public final AssemblerParser.store_return store() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt14=8; + int alt13=8; switch ( input.LA(1) ) { case 79: { - alt14=1; + alt13=1; } break; case 80: { - alt14=2; + alt13=2; } break; case 81: { - alt14=3; + alt13=3; } break; case 82: { - alt14=4; + alt13=4; } break; case 38: { - alt14=5; + alt13=5; } break; case 39: { - alt14=6; + alt13=6; } break; case 40: { - alt14=7; + alt13=7; } break; case 41: { - alt14=8; + alt13=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 14, 0, input); + new NoViableAltException("", 13, 0, input); throw nvae; } - switch (alt14) { + switch (alt13) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'istore_0' { - a=(Token)match(input,79,FOLLOW_79_in_store1548); + a=(Token)match(input,79,FOLLOW_79_in_store1547); stream_79.add(a); @@ -2539,7 +2484,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'istore_1' { - a=(Token)match(input,80,FOLLOW_80_in_store1567); + a=(Token)match(input,80,FOLLOW_80_in_store1566); stream_80.add(a); @@ -2548,7 +2493,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'istore_2' { - a=(Token)match(input,81,FOLLOW_81_in_store1586); + a=(Token)match(input,81,FOLLOW_81_in_store1585); stream_81.add(a); @@ -2557,7 +2502,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'istore_3' { - a=(Token)match(input,82,FOLLOW_82_in_store1605); + a=(Token)match(input,82,FOLLOW_82_in_store1604); stream_82.add(a); @@ -2566,7 +2511,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'astore_0' { - a=(Token)match(input,38,FOLLOW_38_in_store1624); + a=(Token)match(input,38,FOLLOW_38_in_store1623); stream_38.add(a); @@ -2575,7 +2520,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'astore_1' { - a=(Token)match(input,39,FOLLOW_39_in_store1642); + a=(Token)match(input,39,FOLLOW_39_in_store1641); stream_39.add(a); @@ -2584,7 +2529,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'astore_2' { - a=(Token)match(input,40,FOLLOW_40_in_store1661); + a=(Token)match(input,40,FOLLOW_40_in_store1660); stream_40.add(a); @@ -2593,7 +2538,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'astore_3' { - a=(Token)match(input,41,FOLLOW_41_in_store1680); + a=(Token)match(input,41,FOLLOW_41_in_store1679); stream_41.add(a); @@ -2687,31 +2632,31 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) - int alt15=2; - int LA15_0 = input.LA(1); + int alt14=2; + int LA14_0 = input.LA(1); - if ( (LA15_0==78) ) { - alt15=1; + if ( (LA14_0==78) ) { + alt14=1; } - else if ( (LA15_0==37) ) { - alt15=2; + else if ( (LA14_0==37) ) { + alt14=2; } else { NoViableAltException nvae = - new NoViableAltException("", 15, 0, input); + new NoViableAltException("", 14, 0, input); throw nvae; } - switch (alt15) { + switch (alt14) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:16: a= 'istore' b= INTEIRO { - a=(Token)match(input,78,FOLLOW_78_in_storeint1737); + a=(Token)match(input,78,FOLLOW_78_in_storeint1736); stream_78.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1743); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1742); stream_INTEIRO.add(b); @@ -2720,11 +2665,11 @@ else if ( (LA15_0==37) ) { case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,37,FOLLOW_37_in_storeint1765); + a=(Token)match(input,37,FOLLOW_37_in_storeint1764); stream_37.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1771); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1770); stream_INTEIRO.add(b); @@ -2735,7 +2680,7 @@ else if ( (LA15_0==37) ) { // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -2819,36 +2764,36 @@ public final AssemblerParser.logica_return logica() throws RecognitionException // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt16=3; + int alt15=3; switch ( input.LA(1) ) { case 46: { - alt16=1; + alt15=1; } break; case 76: { - alt16=2; + alt15=2; } break; case 84: { - alt16=3; + alt15=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + new NoViableAltException("", 15, 0, input); throw nvae; } - switch (alt16) { + switch (alt15) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:14: a= 'iand' { - a=(Token)match(input,46,FOLLOW_46_in_logica1835); + a=(Token)match(input,46,FOLLOW_46_in_logica1834); stream_46.add(a); @@ -2857,7 +2802,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:14: a= 'ior' { - a=(Token)match(input,76,FOLLOW_76_in_logica1854); + a=(Token)match(input,76,FOLLOW_76_in_logica1853); stream_76.add(a); @@ -2866,7 +2811,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:14: a= 'ixor' { - a=(Token)match(input,84,FOLLOW_84_in_logica1873); + a=(Token)match(input,84,FOLLOW_84_in_logica1872); stream_84.add(a); @@ -2971,90 +2916,90 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt17=13; + int alt16=13; switch ( input.LA(1) ) { case 61: { - alt17=1; + alt16=1; } break; case 66: { - alt17=2; + alt16=2; } break; case 65: { - alt17=3; + alt16=3; } break; case 62: { - alt17=4; + alt16=4; } break; case 63: { - alt17=5; + alt16=5; } break; case 64: { - alt17=6; + alt16=6; } break; case 55: { - alt17=7; + alt16=7; } break; case 60: { - alt17=8; + alt16=8; } break; case 59: { - alt17=9; + alt16=9; } break; case 56: { - alt17=10; + alt16=10; } break; case 57: { - alt17=11; + alt16=11; } break; case 58: { - alt17=12; + alt16=12; } break; case 44: { - alt17=13; + alt16=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 17, 0, input); + new NoViableAltException("", 16, 0, input); throw nvae; } - switch (alt17) { + switch (alt16) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: a= 'ifeq' b= ID { - a=(Token)match(input,61,FOLLOW_61_in_desvio1926); + a=(Token)match(input,61,FOLLOW_61_in_desvio1925); stream_61.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1932); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1931); stream_ID.add(b); @@ -3063,11 +3008,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'ifne' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio1952); + a=(Token)match(input,66,FOLLOW_66_in_desvio1951); stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1958); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1957); stream_ID.add(b); @@ -3076,11 +3021,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'iflt' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio1978); + a=(Token)match(input,65,FOLLOW_65_in_desvio1977); stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1984); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio1983); stream_ID.add(b); @@ -3089,11 +3034,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 4 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'ifge' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio2003); + a=(Token)match(input,62,FOLLOW_62_in_desvio2002); stream_62.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2009); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2008); stream_ID.add(b); @@ -3102,11 +3047,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 5 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'ifgt' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2028); + a=(Token)match(input,63,FOLLOW_63_in_desvio2027); stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2034); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2033); stream_ID.add(b); @@ -3115,11 +3060,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 6 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:14: a= 'ifle' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2054); + a=(Token)match(input,64,FOLLOW_64_in_desvio2053); stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2060); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2059); stream_ID.add(b); @@ -3128,11 +3073,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 7 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,55,FOLLOW_55_in_desvio2080); + a=(Token)match(input,55,FOLLOW_55_in_desvio2079); stream_55.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2086); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2085); stream_ID.add(b); @@ -3141,11 +3086,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 8 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,60,FOLLOW_60_in_desvio2106); + a=(Token)match(input,60,FOLLOW_60_in_desvio2105); stream_60.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2112); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2111); stream_ID.add(b); @@ -3154,11 +3099,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 9 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,59,FOLLOW_59_in_desvio2131); + a=(Token)match(input,59,FOLLOW_59_in_desvio2130); stream_59.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2137); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2136); stream_ID.add(b); @@ -3167,11 +3112,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 10 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,56,FOLLOW_56_in_desvio2157); + a=(Token)match(input,56,FOLLOW_56_in_desvio2156); stream_56.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2163); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2162); stream_ID.add(b); @@ -3180,11 +3125,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 11 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,57,FOLLOW_57_in_desvio2183); + a=(Token)match(input,57,FOLLOW_57_in_desvio2182); stream_57.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2189); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2188); stream_ID.add(b); @@ -3193,11 +3138,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 12 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:14: a= 'if_icmple' b= ID { - a=(Token)match(input,58,FOLLOW_58_in_desvio2208); + a=(Token)match(input,58,FOLLOW_58_in_desvio2207); stream_58.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2214); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2213); stream_ID.add(b); @@ -3206,11 +3151,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 13 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:14: a= 'goto' b= ID { - a=(Token)match(input,44,FOLLOW_44_in_desvio2234); + a=(Token)match(input,44,FOLLOW_44_in_desvio2233); stream_44.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2240); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2239); stream_ID.add(b); @@ -3221,7 +3166,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3305,36 +3250,36 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) - int alt18=3; + int alt17=3; switch ( input.LA(1) ) { case 88: { - alt18=1; + alt17=1; } break; case 89: { - alt18=2; + alt17=2; } break; case 42: { - alt18=3; + alt17=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 18, 0, input); + new NoViableAltException("", 17, 0, input); throw nvae; } - switch (alt18) { + switch (alt17) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'pop' { - a=(Token)match(input,88,FOLLOW_88_in_pilha2305); + a=(Token)match(input,88,FOLLOW_88_in_pilha2304); stream_88.add(a); @@ -3343,7 +3288,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:13: a= 'pop2' { - a=(Token)match(input,89,FOLLOW_89_in_pilha2323); + a=(Token)match(input,89,FOLLOW_89_in_pilha2322); stream_89.add(a); @@ -3352,7 +3297,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:13: a= 'dup' { - a=(Token)match(input,42,FOLLOW_42_in_pilha2341); + a=(Token)match(input,42,FOLLOW_42_in_pilha2340); stream_42.add(a); @@ -3433,11 +3378,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal43=null; + Token char_literal41=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal43_tree=null; + BytecodesAST char_literal41_tree=null; BytecodesAST cls_tree=null; @@ -3451,19 +3396,19 @@ public final AssemblerParser.classe_return classe() throws RecognitionException // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:8: (cls+= ID '/' )* - loop19: + loop18: do { - int alt19=2; - int LA19_0 = input.LA(1); + int alt18=2; + int LA18_0 = input.LA(1); - if ( (LA19_0==ID) ) { - int LA19_1 = input.LA(2); + if ( (LA18_0==ID) ) { + int LA18_1 = input.LA(2); - if ( (LA19_1==28) ) { - int LA19_2 = input.LA(3); + if ( (LA18_1==29) ) { + int LA18_2 = input.LA(3); - if ( (LA19_2==ID) ) { - alt19=1; + if ( (LA18_2==ID) ) { + alt18=1; } @@ -3473,11 +3418,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } - switch (alt19) { + switch (alt18) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2407); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2406); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3487,18 +3432,18 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal43=(Token)match(input,28,FOLLOW_28_in_classe2409); - char_literal43_tree = - (BytecodesAST)adaptor.create(char_literal43) + char_literal41=(Token)match(input,29,FOLLOW_29_in_classe2408); + char_literal41_tree = + (BytecodesAST)adaptor.create(char_literal41) ; - adaptor.addChild(root_0, char_literal43_tree); + adaptor.addChild(root_0, char_literal41_tree); } break; default : - break loop19; + break loop18; } } while (true); @@ -3506,7 +3451,7 @@ public final AssemblerParser.classe_return classe() throws RecognitionException // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:25: (cls+= ID ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2418); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2417); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3583,21 +3528,21 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2458); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2457); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,22,FOLLOW_22_in_chamadaMetodo2464); + par=(Token)match(input,23,FOLLOW_23_in_chamadaMetodo2463); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2470); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2469); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -3652,12 +3597,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal44=null; + Token char_literal42=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal44_tree=null; + BytecodesAST char_literal42_tree=null; BytecodesAST cls_tree=null; @@ -3672,28 +3617,28 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:8: (cls+= ID '/' )+ - int cnt20=0; - loop20: + int cnt19=0; + loop19: do { - int alt20=2; - int LA20_0 = input.LA(1); + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA20_0==ID) ) { - int LA20_1 = input.LA(2); + if ( (LA19_0==ID) ) { + int LA19_1 = input.LA(2); - if ( (LA20_1==28) ) { - alt20=1; + if ( (LA19_1==29) ) { + alt19=1; } } - switch (alt20) { + switch (alt19) { case 1 : // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2510); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2509); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3703,27 +3648,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal44=(Token)match(input,28,FOLLOW_28_in_campo2512); - char_literal44_tree = - (BytecodesAST)adaptor.create(char_literal44) + char_literal42=(Token)match(input,29,FOLLOW_29_in_campo2511); + char_literal42_tree = + (BytecodesAST)adaptor.create(char_literal42) ; - adaptor.addChild(root_0, char_literal44_tree); + adaptor.addChild(root_0, char_literal42_tree); } break; default : - if ( cnt20 >= 1 ) break loop20; + if ( cnt19 >= 1 ) break loop19; EarlyExitException eee = - new EarlyExitException(20, input); + new EarlyExitException(19, input); throw eee; } - cnt20++; + cnt19++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2520); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2519); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3755,134 +3700,20 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } // $ANTLR end "campo" - - public static class tipoRef_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "tipoRef" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:1: tipoRef : 'L' ( ID '/' )* ID ; - public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionException { - AssemblerParser.tipoRef_return retval = new AssemblerParser.tipoRef_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token char_literal45=null; - Token ID46=null; - Token char_literal47=null; - Token ID48=null; - - BytecodesAST char_literal45_tree=null; - BytecodesAST ID46_tree=null; - BytecodesAST char_literal47_tree=null; - BytecodesAST ID48_tree=null; - - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:9: ( 'L' ( ID '/' )* ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:11: 'L' ( ID '/' )* ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - char_literal45=(Token)match(input,30,FOLLOW_30_in_tipoRef2536); - char_literal45_tree = - (BytecodesAST)adaptor.create(char_literal45) - ; - adaptor.addChild(root_0, char_literal45_tree); - - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:15: ( ID '/' )* - loop21: - do { - int alt21=2; - int LA21_0 = input.LA(1); - - if ( (LA21_0==ID) ) { - int LA21_1 = input.LA(2); - - if ( (LA21_1==28) ) { - alt21=1; - } - - - } - - - switch (alt21) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:16: ID '/' - { - ID46=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2539); - ID46_tree = - (BytecodesAST)adaptor.create(ID46) - ; - adaptor.addChild(root_0, ID46_tree); - - - char_literal47=(Token)match(input,28,FOLLOW_28_in_tipoRef2541); - char_literal47_tree = - (BytecodesAST)adaptor.create(char_literal47) - ; - adaptor.addChild(root_0, char_literal47_tree); - - - } - break; - - default : - break loop21; - } - } while (true); - - - ID48=(Token)match(input,ID,FOLLOW_ID_in_tipoRef2545); - ID48_tree = - (BytecodesAST)adaptor.create(ID48) - ; - adaptor.addChild(root_0, ID48_tree); - - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "tipoRef" - // Delegated rules - public static final BitSet FOLLOW_instrucao_in_programa107 = new BitSet(new long[]{0xFFFFFFFF84810102L,0x0000000007FFFFFFL}); + public static final BitSet FOLLOW_instrucao_in_programa107 = new BitSet(new long[]{0xFFFFFFFF89010102L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_operacao_in_instrucao135 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao150 = new BitSet(new long[]{0x0000000001000002L}); - public static final BitSet FOLLOW_24_in_instrucao153 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao150 = new BitSet(new long[]{0x0000000002000002L}); + public static final BitSet FOLLOW_25_in_instrucao153 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_label_in_operacao175 = new BitSet(new long[]{0xFFFFFFFF80010000L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_comando_in_operacao177 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_comando_in_operacao181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label203 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_29_in_label205 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label203 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_30_in_label205 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_manipulacaoObjetos_in_comando228 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_aritmetica_in_comando247 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_load_in_comando266 = new BitSet(new long[]{0x0000000000010000L}); @@ -3894,123 +3725,116 @@ public final AssemblerParser.tipoRef_return tipoRef() throws RecognitionExceptio public static final BitSet FOLLOW_pilha_in_comando377 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_87_in_comando396 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_NEWLINE_in_comando412 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_definicaoClasse438 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_24_in_definicaoClasse438 = new BitSet(new long[]{0x0000000000000100L}); public static final BitSet FOLLOW_ID_in_definicaoClasse440 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse442 = new BitSet(new long[]{0x000000000A000000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse442 = new BitSet(new long[]{0x0000000014000000L}); public static final BitSet FOLLOW_superClasse_in_definicaoClasse445 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse447 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse447 = new BitSet(new long[]{0x0000000004000000L}); public static final BitSet FOLLOW_membroClasse_in_definicaoClasse452 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse454 = new BitSet(new long[]{0x0000000002000002L}); - public static final BitSet FOLLOW_26_in_definicaoClasse514 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INIT_in_definicaoClasse516 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_22_in_definicaoClasse518 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse454 = new BitSet(new long[]{0x0000000004000002L}); + public static final BitSet FOLLOW_27_in_definicaoClasse514 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_INIT_in_definicaoClasse516 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_23_in_definicaoClasse518 = new BitSet(new long[]{0x0000000000200000L}); public static final BitSet FOLLOW_VOID_in_definicaoClasse520 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse522 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_superClasse563 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_28_in_superClasse563 = new BitSet(new long[]{0x0000000000000100L}); public static final BitSet FOLLOW_ID_in_superClasse565 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_25_in_membroClasse587 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_membroClasse589 = new BitSet(new long[]{0x0000000040100400L}); + public static final BitSet FOLLOW_26_in_membroClasse587 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_membroClasse589 = new BitSet(new long[]{0x0000000000300400L}); public static final BitSet FOLLOW_tipo_in_membroClasse591 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_43_in_manipulacaoObjetos633 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos639 = new BitSet(new long[]{0x0000000040100400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos639 = new BitSet(new long[]{0x0000000000300400L}); public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos641 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_90_in_manipulacaoObjetos679 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos685 = new BitSet(new long[]{0x0000000040100400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos685 = new BitSet(new long[]{0x0000000000300400L}); public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos687 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_75_in_manipulacaoObjetos726 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos732 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_manipulacaoObjetos734 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos732 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_29_in_manipulacaoObjetos734 = new BitSet(new long[]{0x0000000000000200L}); public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos740 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_86_in_manipulacaoObjetos802 = new BitSet(new long[]{0x0000000000000100L}); public static final BitSet FOLLOW_classe_in_manipulacaoObjetos807 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_tipo846 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_VOID_in_tipo850 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tipoRef_in_tipo854 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_aritmetica872 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_aritmetica896 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_aritmetica920 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_aritmetica944 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_aritmetica968 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_aritmetica992 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica1016 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_load1094 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1112 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load1130 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load1148 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_load1167 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_load1185 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_load1203 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_load1221 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_load1240 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_load1259 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_load1277 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_load1295 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load1313 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load1331 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load1350 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load1368 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_loadint1422 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1428 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_loadint1449 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1455 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_loadint1475 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1481 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_store1548 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_store1567 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_store1586 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_store1605 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_store1624 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_store1642 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_store1661 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_store1680 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_storeint1737 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1743 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_storeint1765 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1771 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_logica1835 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_logica1854 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_logica1873 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_desvio1926 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1932 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio1952 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1958 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio1978 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1984 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio2003 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2009 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2028 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2034 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2054 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2060 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio2080 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2086 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_desvio2106 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2112 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio2131 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2137 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio2157 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2163 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio2183 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2189 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_desvio2208 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2214 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_desvio2234 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2240 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_pilha2305 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_pilha2323 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_pilha2341 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2407 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_classe2409 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_classe2418 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2458 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_22_in_chamadaMetodo2464 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2470 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2510 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_campo2512 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_campo2520 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_tipoRef2536 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_tipoRef2539 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_tipoRef2541 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_tipoRef2545 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_aritmetica871 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_aritmetica895 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_aritmetica919 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_aritmetica943 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_aritmetica967 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_aritmetica991 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica1015 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_load1093 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1129 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1147 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_load1166 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_load1184 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_load1202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_load1220 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_load1239 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_load1258 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_load1276 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_load1294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_load1312 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_load1330 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_load1349 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_load1367 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_loadint1421 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1427 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_loadint1448 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1454 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_loadint1474 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1480 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_store1547 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_store1566 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_store1585 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_store1604 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_store1623 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_store1641 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_store1660 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_store1679 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_storeint1736 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1742 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_storeint1764 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1770 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_logica1834 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_logica1853 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_logica1872 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_desvio1925 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1931 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio1951 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1957 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio1977 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio1983 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio2002 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2008 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2027 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2033 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2053 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2059 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio2079 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2085 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_desvio2105 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio2130 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2136 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_desvio2156 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2162 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio2182 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2188 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_desvio2207 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2213 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_desvio2233 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_desvio2239 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_pilha2304 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_pilha2322 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_pilha2340 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2406 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_29_in_classe2408 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_classe2417 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2457 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_23_in_chamadaMetodo2463 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2469 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2509 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_29_in_campo2511 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_ID_in_campo2519 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index d96ab0a..b59c7ab 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-12 21:30:11 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-13 13:13:19 package br.ufpb.iged.interpretador.parser; @@ -20,11 +20,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__22=22; public static final int T__23=23; public static final int T__24=24; public static final int T__25=25; @@ -109,8 +108,9 @@ public class Def extends TreeFilter { public static final int NULL=17; public static final int PILHA=18; public static final int STORE=19; - public static final int VOID=20; - public static final int WS=21; + public static final int TIPO_REF=20; + public static final int VOID=21; + public static final int WS=22; // delegates public TreeFilter[] getDelegates() { @@ -149,7 +149,7 @@ public final void topdown() throws RecognitionException { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==23) ) { + if ( (LA1_0==24) ) { alt1=1; } else if ( (LA1_0==FIELD_DECL) ) { @@ -210,7 +210,7 @@ public final void bottomup() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse | getfield | putfield | invokespecial ) int alt2=4; switch ( input.LA(1) ) { - case 23: + case 24: { alt2=1; } @@ -311,7 +311,7 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,23,FOLLOW_23_in_entraNaClasse154); if (state.failed) return ; + match(input,24,FOLLOW_24_in_entraNaClasse154); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse158); if (state.failed) return ; @@ -447,7 +447,7 @@ public final void saiDaClasse() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:13: ( '.class' ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:15: '.class' { - match(input,23,FOLLOW_23_in_saiDaClasse237); if (state.failed) return ; + match(input,24,FOLLOW_24_in_saiDaClasse237); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -570,13 +570,13 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_getfield_in_bottomup94 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_putfield_in_bottomup107 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_invokespecial_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_24_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel202 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); - public static final BitSet FOLLOW_23_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_24_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_43_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_90_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_75_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index a597d6b..2da8f65 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,4 +1,3 @@ -T__22=22 T__23=23 T__24=24 T__25=25 @@ -83,17 +82,17 @@ NEWLINE=16 NULL=17 PILHA=18 STORE=19 -VOID=20 -WS=21 -'()'=22 -'.class'=23 -'.end class'=24 -'.field'=25 -'.method'=26 -'.super'=27 -'/'=28 -':'=29 -'L'=30 +TIPO_REF=20 +VOID=21 +WS=22 +'()'=23 +'.class'=24 +'.end class'=25 +'.field'=26 +'.method'=27 +'.super'=28 +'/'=29 +':'=30 'aconst_null'=31 'aload'=32 'aload_0'=33 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 204a726..838b0f6 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-12 21:30:11 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-13 13:13:19 package br.ufpb.iged.interpretador.parser; @@ -24,11 +24,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'L'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" }; public static final int EOF=-1; - public static final int T__22=22; public static final int T__23=23; public static final int T__24=24; public static final int T__25=25; @@ -113,8 +112,9 @@ public class Ref extends TreeFilter { public static final int NULL=17; public static final int PILHA=18; public static final int STORE=19; - public static final int VOID=20; - public static final int WS=21; + public static final int TIPO_REF=20; + public static final int VOID=21; + public static final int WS=22; // delegates public TreeFilter[] getDelegates() { @@ -392,12 +392,10 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } catch (LabelException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (AcessoIndevidoMemoriaException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + } catch (AcessoIndevidoMemoriaException e) { + System.out.println(e.getMessage()); + } catch (LabelException e) { + System.out.println(e.getMessage()); } finally { @@ -419,7 +417,7 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) { - match(input,23,FOLLOW_23_in_entraNaClasse230); if (state.failed) return ; + match(input,24,FOLLOW_24_in_entraNaClasse230); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse234); if (state.failed) return ; @@ -1136,7 +1134,7 @@ public final void label() throws RecognitionException, LabelException { "\34\uffff}>"; static final String[] DFA1_transitionS = { "\1\7\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\3\uffff\1\14\1"+ - "\11\3\uffff\1\1\23\uffff\1\3\37\uffff\1\5\12\uffff\1\6\3\uffff"+ + "\11\4\uffff\1\1\22\uffff\1\3\37\uffff\1\5\12\uffff\1\6\3\uffff"+ "\1\4", "", "", @@ -1217,7 +1215,7 @@ public String getDescription() { public static final BitSet FOLLOW_logica_in_topdown185 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_pilha_in_topdown195 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_label_in_topdown205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_23_in_entraNaClasse230 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_24_in_entraNaClasse230 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse234 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse238 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse242 = new BitSet(new long[]{0x0000000000000008L}); diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index a597d6b..2da8f65 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__22=22 T__23=23 T__24=24 T__25=25 @@ -83,17 +82,17 @@ NEWLINE=16 NULL=17 PILHA=18 STORE=19 -VOID=20 -WS=21 -'()'=22 -'.class'=23 -'.end class'=24 -'.field'=25 -'.method'=26 -'.super'=27 -'/'=28 -':'=29 -'L'=30 +TIPO_REF=20 +VOID=21 +WS=22 +'()'=23 +'.class'=24 +'.end class'=25 +'.field'=26 +'.method'=27 +'.super'=28 +'/'=29 +':'=30 'aconst_null'=31 'aload'=32 'aload_0'=33 diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 59f6f0e..63e30f1 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -37,6 +37,8 @@ public class Interpretador { public static final int TAMANHO_INICIAL_PILHA = 100; + private static final String DIRETORIO_FONTE = "./classes"; + public int sp = -1; public int ip = 0; @@ -114,7 +116,7 @@ public static void carregar() entrada = new StringBuffer(); - File file = new File(".\\"); + File file = new File(DIRETORIO_FONTE); String[] arquivos = file.list(); @@ -124,7 +126,8 @@ public static void carregar() if (arquivos[i].endsWith(".class")) { - ANTLRFileStream input = new ANTLRFileStream(arquivos[i]); + ANTLRFileStream input = + new ANTLRFileStream(DIRETORIO_FONTE+"/"+arquivos[i]); entrada.append(input.toString()); From 9336d07d51fdd74347572a96e5d6ae0f264ed34f Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 15 Jul 2012 01:26:35 -0300 Subject: [PATCH 42/79] commit --- .../principal/Interpretador.class | Bin 14044 -> 14051 bytes classes/Heranca.class | 5 ++ classes/Main.class | 62 +++++++++++++++++- .../iged/interpretador/gramaticas/Assembler.g | 2 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 2 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 2 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 30 ++++----- .../ufpb/iged/interpretador/parser/Def.java | 18 ++--- .../ufpb/iged/interpretador/parser/Ref.java | 18 ++--- .../principal/Interpretador.java | 4 +- .../iged/interpretador/principal/Objeto.java | 29 +++++++- .../symboltable/classes/SimboloClasse.java | 8 +++ 13 files changed, 142 insertions(+), 40 deletions(-) create mode 100644 classes/Heranca.class diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index aec85239976b60e564bc9a9289b340b9550df500..aba0a23d7ce610f9ea0f5584e4618bbc9e4835af 100644 GIT binary patch delta 1137 zcmZWoTSyd982VLpbsg8esXMwWUUIu=S46@@Ld|ZHrcoeUWumdyycfQLx^PibB)AgxqsM!X6nPqiexGSY{swSX?7*B&gM3$18hE!p~$5TF>7T4vig7pb2!SDtROUnYsyES z@!|9TX6256l+ey`sN>NUbB!~`g9P1D2wpZe7jVkPW(1j1#WYC8fxhY$+ zbP89Ua22n1Il0R#(Ko)=J{HSM#W8{2bJQo0BR>_JSWdoG6TW5Jku2U+T2{ zM|~|XsQ9VEH8j zx)Tp$E1zG{bZo;TKnNAG%3JIKNToc;q5^idd^bkoQ{^q#6y?N5D5uR(MOCnawn96vCuuvJp`CD!s-cf+ r-~q2sX%|dTElg1zyrz2i%IgB{L5UjBLXD{M?p?GG-E@HURY6+rU^v}C!6p2NdI2pEHqTTr3j1Dl}_qq{=y2Y#uu!OKY>F=v3|5#HAF`T`*G zZy?fQGz>yEwG2Uaz_uV7i`o2Ooo+9VvwpW5d)bMMEVk%gherh}_N>EnfzERDU7#RG z{UH>?Um}m+*-qEVQOv3dSlgJK;&JXWr)uI;tvF;;-@rDfBoxMl>lUF$EQKqIsm!qJ zJUJPzTTOi+T#-!WCYw&t@f^F6y58zEsX8{B8n4LtHGznd5M))U7Ibo?;~ya@Tv9&s zhzDQ(_bLwrq>y$|n44G4+l1N8s=PYNtc^dvva4R*Iw3ySu)^lNaoEQuydJ#5O)kmO zDqOpSD{HMQio4tr{oq^dVS%)092MvjN1X!M)1$GPC8q1>XUiG!$>dns=KL{CAI8iw z=N+&c!&pQ`6p)ufCQ0Ty$P=$cLVg^U=w6e!W+vK2qSj25h9&N=Nw~~}#NV$JCwP;9 zPdLu8_pF+vcEQ&R{?Qs<7rY$eS$C#}lVUI&5X3AePMbu7NcOHKF)<{>An~;plo`$; z$PKL+ez6NiE%vYvMjUprZ$^$){QFG@hnU-UJZkzGKNd0=091{!!MnapDwvcP)VK1I zIwdcwa|G%N>3qAlT1Bye(G59;zhc*W`f&!?{vz)x!dK4bQ zCO)>JIq)zx1F5&55RYIBSkx&tlb308;W2ClMV$-A=08QOWa9<9?eSnI2gHyI)>9(W z{f#ycL{lm_D2;Xa_h44=y}uFn7jmK){8R$vv=J()9FFjMiZ;P{+5#Q46}o6U^zk}E nJ7A1() V + new Teste + dup + invokespecial Teste/() V + ldc 12 + putfield Teste/abc I + ldc 24 + putfield Teste/xyz I + putfield Composicao/teste LTeste + iconst_2 + putfield Composicao/basxty I + iconst_3 + putfield Composicao/jahss I + astore 14 + ldc 8 + istore 15 + aload 14 + dup + getfield Composicao/teste LTeste + dup + getfield Teste/xyz I + iload 15 + idiv + istore 16 + pop2 + new Heranca + dup + invokespecial Heranca/() V + iconst_3 + putfield Heranca/abfgs I + ldc 45 + putfield Heranca/lovxfd I + ldc 32 + putfield Heranca/abc I + ldc 9 + putfield Heranca/xyz I + astore 17 + iconst_4 + istore 18 + aload 17 + dup + getfield Heranca/abfgs I + aload 17 + getfield Heranca/abc I + imul + istore 19 + dup + getfield Heranca/lovxfd I + aload 17 + getfield Heranca/xyz I + idiv + iload 18 + isub + istore 20 + \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index d609f07..656cfb6 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -69,7 +69,7 @@ definicaoClasse | '.method' INIT '()' VOID NEWLINE ; -superClasse : '.super' ID -> ^(EXTENDS ID) ; +superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 4dbf4d1..b14a133 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -38,7 +38,7 @@ bottomup : saiDaClasse ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=ID))? .) + : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) { System.out.println("linha "+$nome.getLine()+ ": def class "+$nome.text); diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 5925dc1..2edf1ce 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -115,7 +115,7 @@ topdown ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=ID))? .) + : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) { simboloClasse = ((SimboloClasse)$nome.simbolo); if ( $sup!=null ) { diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index d784aa4..2a8e54a 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-13 13:13:19 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-15 00:36:58 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index de0958b..aa9f2e6 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-13 13:13:18 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-15 00:36:58 package br.ufpb.iged.interpretador.parser; @@ -1132,7 +1132,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:1: superClasse : '.super' ID -> ^( EXTENDS ID ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1141,27 +1141,27 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST root_0 = null; Token string_literal32=null; - Token ID33=null; + Token TIPO_REF33=null; BytecodesAST string_literal32_tree=null; - BytecodesAST ID33_tree=null; - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + BytecodesAST TIPO_REF33_tree=null; + RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:13: ( '.super' ID -> ^( EXTENDS ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: '.super' ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: '.super' TIPO_REF { string_literal32=(Token)match(input,28,FOLLOW_28_in_superClasse563); stream_28.add(string_literal32); - ID33=(Token)match(input,ID,FOLLOW_ID_in_superClasse565); - stream_ID.add(ID33); + TIPO_REF33=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse565); + stream_TIPO_REF.add(TIPO_REF33); // AST REWRITE - // elements: ID + // elements: TIPO_REF // token labels: // rule labels: retval // token list labels: @@ -1171,9 +1171,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 72:27: -> ^( EXTENDS ID ) + // 72:33: -> ^( EXTENDS TIPO_REF ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:30: ^( EXTENDS ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:36: ^( EXTENDS TIPO_REF ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1181,7 +1181,7 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition , root_1); adaptor.addChild(root_1, - stream_ID.nextNode() + stream_TIPO_REF.nextNode() ); adaptor.addChild(root_0, root_1); @@ -3737,8 +3737,8 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { public static final BitSet FOLLOW_23_in_definicaoClasse518 = new BitSet(new long[]{0x0000000000200000L}); public static final BitSet FOLLOW_VOID_in_definicaoClasse520 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse522 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_superClasse563 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_superClasse565 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_superClasse563 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse565 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_26_in_membroClasse587 = new BitSet(new long[]{0x0000000000000100L}); public static final BitSet FOLLOW_ID_in_membroClasse589 = new BitSet(new long[]{0x0000000000300400L}); public static final BitSet FOLLOW_tipo_in_membroClasse591 = new BitSet(new long[]{0x0000000000000002L}); diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index b59c7ab..4631a7f 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-13 13:13:19 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-15 00:36:59 package br.ufpb.iged.interpretador.parser; @@ -302,21 +302,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { match(input,24,FOLLOW_24_in_entraNaClasse154); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse158); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:28: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:28: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -326,7 +326,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_1==DOWN) ) { int LA3_3 = input.LA(3); - if ( (LA3_3==ID) ) { + if ( (LA3_3==TIPO_REF) ) { int LA3_4 = input.LA(4); if ( (LA3_4==UP) ) { @@ -341,12 +341,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:29: ^( EXTENDS sup= TIPO_REF ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse162); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse166); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse166); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -573,7 +573,7 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_24_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel202 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_24_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 838b0f6..50ef693 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-13 13:13:19 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-15 00:36:59 package br.ufpb.iged.interpretador.parser; @@ -408,21 +408,21 @@ public final void topdown() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( '.class' nome= ID ( ^( EXTENDS sup= ID ) )? . ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { match(input,24,FOLLOW_24_in_entraNaClasse230); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse234); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:28: ( ^( EXTENDS sup= ID ) )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:28: ( ^( EXTENDS sup= TIPO_REF ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -432,7 +432,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_1==DOWN) ) { int LA2_3 = input.LA(3); - if ( (LA2_3==ID) ) { + if ( (LA2_3==TIPO_REF) ) { int LA2_4 = input.LA(4); if ( (LA2_4==UP) ) { @@ -447,12 +447,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:29: ^( EXTENDS sup= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:29: ^( EXTENDS sup= TIPO_REF ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse238); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse242); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse242); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1218,7 +1218,7 @@ public String getDescription() { public static final BitSet FOLLOW_24_in_entraNaClasse230 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse234 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse238 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse242 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse242 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel282 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_declaracaoVariavel284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); public static final BitSet FOLLOW_43_in_getfield323 = new BitSet(new long[]{0x0000000000000004L}); diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 63e30f1..d853ef5 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -1008,7 +1008,9 @@ protected void cpu() { op1 = obterOperandoInteiro(); - pilha[++sp] = objeto.getMemoriaLocal()[op1]; + pilha[sp] = null; + + pilha[sp] = objeto.getMemoriaLocal()[op1]; } diff --git a/src/br/ufpb/iged/interpretador/principal/Objeto.java b/src/br/ufpb/iged/interpretador/principal/Objeto.java index ed674a3..bb7ffd2 100644 --- a/src/br/ufpb/iged/interpretador/principal/Objeto.java +++ b/src/br/ufpb/iged/interpretador/principal/Objeto.java @@ -31,11 +31,38 @@ public Objeto(SimboloClasse simboloClasse) { else if (nomeTipo.startsWith("L")) - memoriaLocal[i] = new Integer(0); + memoriaLocal[i] = new Referencia(new Integer(0)); } + SimboloClasse parent = simboloClasse.getSuperClasse(); + + while(parent != null) { + + List constantPoolParent = parent.getConstantPool(); + + int j; + + for (j = 0; j < constantPoolParent.size(); j++, i++) { + + String nomeTipo = constantPoolParent.get(i).getTipo().obterNome(); + + if(nomeTipo.equals("I")) + + memoriaLocal[i] = new Integer(0); + + else if (nomeTipo.startsWith("L")) + + memoriaLocal[i] = new Referencia(new Integer(0)); + + + } + + parent = parent.getSuperClasse(); + + } + } public String getNome() { diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java index f37ee12..b863eac 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -70,6 +70,14 @@ public void setConstantPool(List constantPool) { this.constantPool = constantPool; } + public SimboloClasse getSuperClasse() { + return superClasse; + } + + public void setSuperClasse(SimboloClasse superClasse) { + this.superClasse = superClasse; + } + } From 80c2c17fd2398c18038d926a94e5f443cf5625be Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 15 Jul 2012 17:12:56 -0300 Subject: [PATCH 43/79] commit --- src/br/ufpb/iged/interpretador/principal/Objeto.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/br/ufpb/iged/interpretador/principal/Objeto.java b/src/br/ufpb/iged/interpretador/principal/Objeto.java index bb7ffd2..f388728 100644 --- a/src/br/ufpb/iged/interpretador/principal/Objeto.java +++ b/src/br/ufpb/iged/interpretador/principal/Objeto.java @@ -1,5 +1,6 @@ package br.ufpb.iged.interpretador.principal; +import java.util.Arrays; import java.util.List; import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; @@ -42,11 +43,15 @@ else if (nomeTipo.startsWith("L")) List constantPoolParent = parent.getConstantPool(); + memoriaLocal = + Arrays.copyOf( + memoriaLocal, memoriaLocal.length + constantPoolParent.size()); + int j; for (j = 0; j < constantPoolParent.size(); j++, i++) { - String nomeTipo = constantPoolParent.get(i).getTipo().obterNome(); + String nomeTipo = constantPoolParent.get(j).getTipo().obterNome(); if(nomeTipo.equals("I")) From 5e3e49a943bda4a84587e4101760ff5ced0bc53b Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 15 Jul 2012 17:33:34 -0300 Subject: [PATCH 44/79] commit --- .../parser/IntermediarioLexer.class | Bin 8963 -> 8941 bytes .../parser/IntermediarioParser.class | Bin 7102 -> 7079 bytes build.xml | 2 +- .../interpretador/gramaticas/Intermediario.g | 14 +- .../parser/IntermediarioLexer.java | 93 ++++++----- .../parser/IntermediarioParser.java | 157 +++++++++--------- 6 files changed, 141 insertions(+), 125 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.class b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.class index b7a3e3a585466f7e2b13e1b6e6f119c42e476dd3..d4f046abe1f13b2b9fad8539d531b05a8da84639 100644 GIT binary patch delta 1285 zcmW;Idu-2V6bA6~Jm>qqU)qiizl_zTqDtG5Dn=Krx~7%244tW4%jilw!-}EmwrOS9 z{FsHA7GrL6>2zWya|zR|W3w)?#YWD_?k0kn?8VxSVMft2Et5%V1>aGr@-;ZPD6weN7t)lc-=`XsU@8EA4`np&4i&G-0Cx z9Ym$07)g*&=`M{WQ6eNc*g8BWSQeHV=(^_ zPV?(@htsJ}r#YSBw8-gPrwi*ep+Rb()aeqZ%bc!sy2|OAI^FNI%xSsPPn>Rdy2I(7 zI!$hv8u-HLey0bW9&viq={I$H%;|SdPdPo~^sLjLo&M%@O5l={%TE4ua?{BzC-?rJ zt2iAVg5p}CJQfcW3zbGN(hOE2P*36!CeI@viD)W4&`eShAupr33`eBoBTAN_t$cv? zvI#M=4Y9Hl2~vqJas-{_7`n;{bdxG{mue(Q4U**?`bb+5_p}gKf0bxyCsHxIQ5e(H zgc#tC$dD8alov7BEg2%CF;ucKLdIgGypGYb9%G~&?4rePHo{)^K?T!L$qXFeP#oeg9A*}daXgN55>9YBPI3;aSb}f49MxQl zQ`~^l+=U-li8DNk8dl*ap2Aty;2eL!1zx}lmSBY^mEBse9O353-G3 zW|UrKJH5p?{hJ;2AI9rLcG1V|=G9}O*MKj0#m(5mYsDlljy=5urg+Kh?M-GMuaNz{ zSsdWaV}|z*2YaQ=^xoww-fCuf>o~&ul%u@QINCeFZ0|60ylRf~e&nm(1y1mOXRddb zd0s6in)=K);VdvMIN3z;4HL_0CZ01*3TK$!oKwvpsp-_U8#ZgvBRq7OQMFtL+4SZ}VAWr}C_w$#Zr# z&)d1YX6N&UU8F7TVvV#*G}|ff;Ue|v1 zwx-#;nrL}mW96vz$V{D4mJn`)uoT;K9rX_4PX=ljw6 UwjZmdeg|FZchXfA@sVfvAGw4pumAu6 delta 1285 zcmW;Fdu+{T90u_3_xZl>`y0pTaDvjcQ%XxS)y^d=sxCPa?U(uIcXnBos@U;>bmVsS^#M?ldguYq!un%F1Xf9xJI< z-m#KqB{~@Ls>kiMI?d`#t65gFt>(6Bwbg}I{Z@;umRMb4b$P4yXzy{CTdlCV#%j=N zmDSH%wbtrpt2I`)S>0`QkJSUM+P8zpeZ=ZftKV2XW%abx^R2qiYQ5DfRx#N%$X`iIp&tu|YIXtkwoeMmg#KO@j{Qp{u+)R7f+V@=)Jp#kioLEM>!au-VE zuH@lRdXKx)R1T*+j-*xGi>kQ~ZR5VQo1^JVj-w+SPp5exea8uOo(It-9!&L|NH=&G z{mRL8aUEYriig1C>}3iiaVm}HiFWc`n!%GOgT0i=(`Y_Vr_DTrws0mL;%pA%IULRN zcrfSkFwWy7Ud$dY;R#$?_eJMU99>4j<)nEvjpQ|y!t2P(>uDxel8>t?i#Jd{Z=@ow zscUd=aRS?IeFr!4E^g*M+`@Z7ybp%=qaz>0DE0DS>*CL z6!Qg?@I{pK_xOY_VL6QTOVu&n(lI3uu94=Xl4pN0qvH@LW z6GEj1VX_C|au5-696jX@BBcpY@;74SU&P8|yeUr+FE21iy@DaCJ%*}4H@vOFk*NA% zxEhENYB)x!0wk*$kSn%uX~|D$H1=#-~*k6Vx5c+19}VsdNP*kDJa!m zl<9d`sq;{w3$Rufp;9kKwJya5y#kwb8ESMTYV~K>s<&dh-i00dFm~!Y*rl7WS3kl5 z{RD^fGaS_~am=*Aank`OOenrJ5jbi3lMuLIytrsGaM@(z2a|{E z#*YTG2sh1Q{BD+_$&})OSs`JjOv247>220XAG1zk%w~x;HPYYI$^dgq5=^5EF?S`= z{3S`|fs8hf#A8}yy!lTinCFt_ki74Rq&tpeIBjLN(_ZE}uSH3o( zTDbyIr%v-+!Kl+AZ*C|kyo<|9OUqVOG{);2sw-;h>~4%VG*!mxLlLK2)3U>UF=?b} z?odNzLv<`(UEp)3y0Wqh3P!8Z(P|_*RIQjhX4W4VD%aM>s{Fn&a>=4mIWo%f2mhA? z0pS@5P_lf*s2*~OmA}=abp57W^(v@7E!OW^tt+b4RW<9HcB)^8bzPkr&>1qFO_>4Z zIY%=WrOe_MW;-`Bi&N$>4xh8YU8aDu(>+f?=NorVxC9pukWMMtEW^u#_;`c}E4iCT zDP}E8E#Y$3Q^p2XP{ZTYCweDtQS)XSeU2iwvVa!uXB$g+*)b2-T13`5GywsV6tlQMY0;As}9z@AtVB+O}ES zOU&1+=K4DKX@|KwEY@y{^(ITz#xlK4xeidF{XC(A_D>&Si#qI_jU7V49V4dQUzUH#d(yedl({~K&{P1~(oR!`U{{b!+CtLsk delta 1216 zcmYk5eN2^Q7{-6s0R)=}sIY)aaH9nwaL$2)XeyQQksw+&hr{p$M`Q6}$3yF5g)YC! zR_05JC3Af!_JxfEu);fQSH{Us@^knZO zF>WYn(qKYeFyIdb@(Z2uuB7Aw?{KteIO_8aM%xNKV(d_@+cOw$Z1L9@-Gr9U_#eGV z$L+m=y4@y_I7CrCYwj>!FpRqk2I1=+xbv;28~IuPu@41&B6*0Ya4_E=YzQ?4LJf6( zw=d6$i%4}%ay!|!<$0WP+dSUzqKJu+TH>@v7pH}S{`ywCqnd{1P$1Y8sBf_PmYT&u zf0KWZBYZMCC#HHd(Zo^9XdcrETJQ|!%)TUpxUKg}g7qwTvsh3zM5bx0hrz3twR3@Xya!$vWMP)OBiB3*Jm2#aI z5+*Cp*_Y5)P=bq6Vksw?2T5fXc|1fR4>N^FD5IL0)EHV%6#?e5hy^r;kB?cVwr8#M zIf`lHK9=(UD~)Kik-SU=uUPte=Fn~>8>wT15p1&JPFC~ z7oQU5Gh6qwm#^(~gdUD_fD;_#lpz=C<#)d04~twG!BPIFrOq_&lq~1Nc!x% z^pnT{DO@1UgfmPu-^6`frid%d<|>c!H_cpQsl-!?Vuhk<*C;k>G#!egQ}GMfrXp(n`E5~F^SdQz%+M~NKD^aeB4L8abgwmPZRW)^CT{Q&Q>OkKRL z57?j`Y*IJdwVPe~*qrR+pg!l2dgzr+gTCUlzTvEm`Z*nDK;Lp%N3Y* + diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g b/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g index c0b37a0..e3d8dec 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g @@ -1,5 +1,17 @@ grammar Intermediario; +@header{ + + package br.ufpb.iged.interpretador.tradutor.intermediario.parser; + + import java.io.IOException; + +} + +@lexer::header{ + package br.ufpb.iged.interpretador.tradutor.intermediario.parser; +} + @members { protected void adicionarVariavel(Token op); @@ -14,7 +26,7 @@ programa : instrucao*; instrucao : (create | load | store | aritmetica); create : 'CREATE_INT' a = ID {adicionarVariavel($a);} - | 'DELETE_INT' a = ID + | 'DELETE_INT' ID ; load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java index b165113..b4844f8 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.java @@ -1,6 +1,7 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g 2012-06-04 23:46:57 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g 2012-07-15 17:30:16 + + package br.ufpb.iged.interpretador.tradutor.intermediario.parser; -package br.ufpb.iged.interpretador.tradutor.intermediario.parser; import org.antlr.runtime.*; import java.util.Stack; @@ -36,15 +37,15 @@ public IntermediarioLexer(CharStream input) { public IntermediarioLexer(CharStream input, RecognizerSharedState state) { super(input,state); } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g"; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g"; } // $ANTLR start "T__7" public final void mT__7() throws RecognitionException { try { int _type = T__7; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:2:6: ( 'ADD' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:2:8: 'ADD' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:6:6: ( 'ADD' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:6:8: 'ADD' { match("ADD"); @@ -66,8 +67,8 @@ public final void mT__8() throws RecognitionException { try { int _type = T__8; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:3:6: ( 'CREATE_INT' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:3:8: 'CREATE_INT' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:7:6: ( 'CREATE_INT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:7:8: 'CREATE_INT' { match("CREATE_INT"); @@ -89,8 +90,8 @@ public final void mT__9() throws RecognitionException { try { int _type = T__9; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:4:6: ( 'DELETE_INT' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:4:8: 'DELETE_INT' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:8:6: ( 'DELETE_INT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:8:8: 'DELETE_INT' { match("DELETE_INT"); @@ -112,8 +113,8 @@ public final void mT__10() throws RecognitionException { try { int _type = T__10; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:5:7: ( 'DIV' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:5:9: 'DIV' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:9:7: ( 'DIV' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:9:9: 'DIV' { match("DIV"); @@ -135,8 +136,8 @@ public final void mT__11() throws RecognitionException { try { int _type = T__11; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:6:7: ( 'MULT' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:6:9: 'MULT' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:10:7: ( 'MULT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:10:9: 'MULT' { match("MULT"); @@ -158,8 +159,8 @@ public final void mT__12() throws RecognitionException { try { int _type = T__12; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:7:7: ( 'READ_INT' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:7:9: 'READ_INT' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:11:7: ( 'READ_INT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:11:9: 'READ_INT' { match("READ_INT"); @@ -181,8 +182,8 @@ public final void mT__13() throws RecognitionException { try { int _type = T__13; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:8:7: ( 'READ_INTC' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:8:9: 'READ_INTC' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:12:7: ( 'READ_INTC' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:12:9: 'READ_INTC' { match("READ_INTC"); @@ -204,8 +205,8 @@ public final void mT__14() throws RecognitionException { try { int _type = T__14; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:9:7: ( 'SUB' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:9:9: 'SUB' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:13:7: ( 'SUB' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:13:9: 'SUB' { match("SUB"); @@ -227,8 +228,8 @@ public final void mT__15() throws RecognitionException { try { int _type = T__15; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:10:7: ( 'WRITE_INT' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:10:9: 'WRITE_INT' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:14:7: ( 'WRITE_INT' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:14:9: 'WRITE_INT' { match("WRITE_INT"); @@ -250,10 +251,10 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:5: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:7: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:44:5: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:44:7: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:7: ( '-' )? + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:44:7: ( '-' )? int alt1=2; int LA1_0 = input.LA(1); @@ -262,7 +263,7 @@ public final void mINT() throws RecognitionException { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:7: '-' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:44:7: '-' { match('-'); @@ -272,7 +273,7 @@ public final void mINT() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:32:12: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:44:12: ( '0' .. '9' )+ int cnt2=0; loop2: do { @@ -286,7 +287,7 @@ public final void mINT() throws RecognitionException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -327,8 +328,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:34:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:34:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:46:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:46:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -340,7 +341,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:34:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:46:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop3: do { int alt3=2; @@ -353,7 +354,7 @@ public final void mID() throws RecognitionException { switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g: + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g: { if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -390,8 +391,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:36:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:36:6: ( ' ' | '\\t' | '\\r' | '\\n' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:48:4: ( ( ' ' | '\\t' | '\\r' | '\\n' ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:48:6: ( ' ' | '\\t' | '\\r' | '\\n' ) { if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -417,7 +418,7 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:8: ( T__7 | T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | INT | ID | WS ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:8: ( T__7 | T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | INT | ID | WS ) int alt4=12; switch ( input.LA(1) ) { case 'A': @@ -815,7 +816,7 @@ public void mTokens() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:10: T__7 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:10: T__7 { mT__7(); @@ -823,7 +824,7 @@ public void mTokens() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:15: T__8 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:15: T__8 { mT__8(); @@ -831,7 +832,7 @@ public void mTokens() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:20: T__9 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:20: T__9 { mT__9(); @@ -839,7 +840,7 @@ public void mTokens() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:25: T__10 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:25: T__10 { mT__10(); @@ -847,7 +848,7 @@ public void mTokens() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:31: T__11 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:31: T__11 { mT__11(); @@ -855,7 +856,7 @@ public void mTokens() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:37: T__12 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:37: T__12 { mT__12(); @@ -863,7 +864,7 @@ public void mTokens() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:43: T__13 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:43: T__13 { mT__13(); @@ -871,7 +872,7 @@ public void mTokens() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:49: T__14 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:49: T__14 { mT__14(); @@ -879,7 +880,7 @@ public void mTokens() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:55: T__15 + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:55: T__15 { mT__15(); @@ -887,7 +888,7 @@ public void mTokens() throws RecognitionException { } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:61: INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:61: INT { mINT(); @@ -895,7 +896,7 @@ public void mTokens() throws RecognitionException { } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:65: ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:65: ID { mID(); @@ -903,7 +904,7 @@ public void mTokens() throws RecognitionException { } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:1:68: WS + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:1:68: WS { mWS(); diff --git a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java index b8f83a9..d7a2960 100644 --- a/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java +++ b/src/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioParser.java @@ -1,10 +1,13 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g 2012-06-04 23:46:57 +// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g 2012-07-15 17:30:15 -package br.ufpb.iged.interpretador.tradutor.intermediario.parser; -import org.antlr.runtime.*; + package br.ufpb.iged.interpretador.tradutor.intermediario.parser; + + import java.io.IOException; + + -import java.io.IOException; +import org.antlr.runtime.*; import java.util.Stack; import java.util.List; import java.util.ArrayList; @@ -45,26 +48,26 @@ public IntermediarioParser(TokenStream input, RecognizerSharedState state) { } public String[] getTokenNames() { return IntermediarioParser.tokenNames; } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g"; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g"; } - protected abstract void adicionarVariavel(Token op); - protected abstract void traduzirLoad(Token opc, Token op) throws IOException; - protected abstract void traduzirStore(Token opc, Token op) throws IOException; - protected abstract void traduzirArimetica(Token opc) throws IOException; + protected abstract void adicionarVariavel(Token op); + protected abstract void traduzirLoad(Token opc, Token op) throws IOException; + protected abstract void traduzirStore(Token opc, Token op) throws IOException; + protected abstract void traduzirArimetica(Token opc) throws IOException; // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:1: programa : ( instrucao )* ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:24:1: programa : ( instrucao )* ; public final void programa() throws RecognitionException, IOException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:10: ( ( instrucao )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:12: ( instrucao )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:24:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:24:12: ( instrucao )* { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:12: ( instrucao )* + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:24:12: ( instrucao )* loop1: do { int alt1=2; @@ -77,9 +80,9 @@ public final void programa() throws RecognitionException, IOException { switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:12:12: instrucao + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:24:12: instrucao { - pushFollow(FOLLOW_instrucao_in_programa16); + pushFollow(FOLLOW_instrucao_in_programa29); instrucao(); state._fsp--; @@ -112,13 +115,13 @@ public final void programa() throws RecognitionException, IOException { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:1: instrucao : ( create | load | store | aritmetica ) ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:26:1: instrucao : ( create | load | store | aritmetica ) ; public final void instrucao() throws RecognitionException, IOException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:11: ( ( create | load | store | aritmetica ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:13: ( create | load | store | aritmetica ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:26:11: ( ( create | load | store | aritmetica ) ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:26:13: ( create | load | store | aritmetica ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:13: ( create | load | store | aritmetica ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:26:13: ( create | load | store | aritmetica ) int alt2=4; switch ( input.LA(1) ) { case 8: @@ -156,9 +159,9 @@ public final void instrucao() throws RecognitionException, IOException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:14: create + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:26:14: create { - pushFollow(FOLLOW_create_in_instrucao26); + pushFollow(FOLLOW_create_in_instrucao39); create(); state._fsp--; @@ -167,9 +170,9 @@ public final void instrucao() throws RecognitionException, IOException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:23: load + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:26:23: load { - pushFollow(FOLLOW_load_in_instrucao30); + pushFollow(FOLLOW_load_in_instrucao43); load(); state._fsp--; @@ -178,9 +181,9 @@ public final void instrucao() throws RecognitionException, IOException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:30: store + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:26:30: store { - pushFollow(FOLLOW_store_in_instrucao34); + pushFollow(FOLLOW_store_in_instrucao47); store(); state._fsp--; @@ -189,9 +192,9 @@ public final void instrucao() throws RecognitionException, IOException { } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:14:38: aritmetica + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:26:38: aritmetica { - pushFollow(FOLLOW_aritmetica_in_instrucao38); + pushFollow(FOLLOW_aritmetica_in_instrucao51); aritmetica(); state._fsp--; @@ -221,12 +224,12 @@ public final void instrucao() throws RecognitionException, IOException { // $ANTLR start "create" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:16:1: create : ( 'CREATE_INT' a= ID | 'DELETE_INT' a= ID ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:28:1: create : ( 'CREATE_INT' a= ID | 'DELETE_INT' ID ); public final void create() throws RecognitionException { Token a=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:16:8: ( 'CREATE_INT' a= ID | 'DELETE_INT' a= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:28:8: ( 'CREATE_INT' a= ID | 'DELETE_INT' ID ) int alt3=2; int LA3_0 = input.LA(1); @@ -245,22 +248,22 @@ else if ( (LA3_0==9) ) { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:16:10: 'CREATE_INT' a= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:28:10: 'CREATE_INT' a= ID { - match(input,8,FOLLOW_8_in_create47); + match(input,8,FOLLOW_8_in_create60); - a=(Token)match(input,ID,FOLLOW_ID_in_create53); + a=(Token)match(input,ID,FOLLOW_ID_in_create66); adicionarVariavel(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:17:10: 'DELETE_INT' a= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:29:10: 'DELETE_INT' ID { - match(input,9,FOLLOW_9_in_create66); + match(input,9,FOLLOW_9_in_create79); - a=(Token)match(input,ID,FOLLOW_ID_in_create72); + match(input,ID,FOLLOW_ID_in_create81); } break; @@ -282,14 +285,14 @@ else if ( (LA3_0==9) ) { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:20:1: load : (a= 'READ_INT' b= ID |a= 'READ_INTC' INT ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:32:1: load : (a= 'READ_INT' b= ID |a= 'READ_INTC' INT ); public final void load() throws RecognitionException, IOException { Token a=null; Token b=null; Token INT1=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:20:6: (a= 'READ_INT' b= ID |a= 'READ_INTC' INT ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:32:6: (a= 'READ_INT' b= ID |a= 'READ_INTC' INT ) int alt4=2; int LA4_0 = input.LA(1); @@ -308,22 +311,22 @@ else if ( (LA4_0==13) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:20:8: a= 'READ_INT' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:32:8: a= 'READ_INT' b= ID { - a=(Token)match(input,12,FOLLOW_12_in_load92); + a=(Token)match(input,12,FOLLOW_12_in_load101); - b=(Token)match(input,ID,FOLLOW_ID_in_load98); + b=(Token)match(input,ID,FOLLOW_ID_in_load107); traduzirLoad(a, b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:21:8: a= 'READ_INTC' INT + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:33:8: a= 'READ_INTC' INT { - a=(Token)match(input,13,FOLLOW_13_in_load113); + a=(Token)match(input,13,FOLLOW_13_in_load122); - INT1=(Token)match(input,INT,FOLLOW_INT_in_load115); + INT1=(Token)match(input,INT,FOLLOW_INT_in_load124); traduzirLoad(a, INT1); @@ -347,18 +350,18 @@ else if ( (LA4_0==13) ) { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:24:1: store : a= 'WRITE_INT' b= ID ; + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:36:1: store : a= 'WRITE_INT' b= ID ; public final void store() throws RecognitionException, IOException { Token a=null; Token b=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:24:7: (a= 'WRITE_INT' b= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:24:9: a= 'WRITE_INT' b= ID + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:36:7: (a= 'WRITE_INT' b= ID ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:36:9: a= 'WRITE_INT' b= ID { - a=(Token)match(input,15,FOLLOW_15_in_store140); + a=(Token)match(input,15,FOLLOW_15_in_store149); - b=(Token)match(input,ID,FOLLOW_ID_in_store146); + b=(Token)match(input,ID,FOLLOW_ID_in_store155); traduzirStore(a, b); @@ -380,12 +383,12 @@ public final void store() throws RecognitionException, IOException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:26:1: aritmetica : (a= 'ADD' |a= 'SUB' |a= 'MULT' |a= 'DIV' ); + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:38:1: aritmetica : (a= 'ADD' |a= 'SUB' |a= 'MULT' |a= 'DIV' ); public final void aritmetica() throws RecognitionException, IOException { Token a=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:26:12: (a= 'ADD' |a= 'SUB' |a= 'MULT' |a= 'DIV' ) + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:38:12: (a= 'ADD' |a= 'SUB' |a= 'MULT' |a= 'DIV' ) int alt5=4; switch ( input.LA(1) ) { case 7: @@ -418,36 +421,36 @@ public final void aritmetica() throws RecognitionException, IOException { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:26:14: a= 'ADD' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:38:14: a= 'ADD' { - a=(Token)match(input,7,FOLLOW_7_in_aritmetica160); + a=(Token)match(input,7,FOLLOW_7_in_aritmetica169); traduzirArimetica(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:27:14: a= 'SUB' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:39:14: a= 'SUB' { - a=(Token)match(input,14,FOLLOW_14_in_aritmetica181); + a=(Token)match(input,14,FOLLOW_14_in_aritmetica190); traduzirArimetica(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:28:14: a= 'MULT' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:40:14: a= 'MULT' { - a=(Token)match(input,11,FOLLOW_11_in_aritmetica202); + a=(Token)match(input,11,FOLLOW_11_in_aritmetica211); traduzirArimetica(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\tradutor\\intermediario\\gramatica\\Intermediario.g:29:14: a= 'DIV' + // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Intermediario.g:41:14: a= 'DIV' { - a=(Token)match(input,10,FOLLOW_10_in_aritmetica223); + a=(Token)match(input,10,FOLLOW_10_in_aritmetica232); traduzirArimetica(a); @@ -473,24 +476,24 @@ public final void aritmetica() throws RecognitionException, IOException { - public static final BitSet FOLLOW_instrucao_in_programa16 = new BitSet(new long[]{0x000000000000FF82L}); - public static final BitSet FOLLOW_create_in_instrucao26 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_load_in_instrucao30 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_store_in_instrucao34 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_aritmetica_in_instrucao38 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_8_in_create47 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_create53 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_9_in_create66 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_create72 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_12_in_load92 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_load98 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_13_in_load113 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_INT_in_load115 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_15_in_store140 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_ID_in_store146 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_7_in_aritmetica160 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_14_in_aritmetica181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_11_in_aritmetica202 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_10_in_aritmetica223 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_programa29 = new BitSet(new long[]{0x000000000000FF82L}); + public static final BitSet FOLLOW_create_in_instrucao39 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_load_in_instrucao43 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_store_in_instrucao47 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_aritmetica_in_instrucao51 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_8_in_create60 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_create66 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_9_in_create79 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_create81 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_12_in_load101 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_load107 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_13_in_load122 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_INT_in_load124 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_15_in_store149 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_ID_in_store155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_7_in_aritmetica169 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_14_in_aritmetica190 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_11_in_aritmetica211 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_10_in_aritmetica232 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file From bb7fc5fef1e41b9ef9c87823047a66ee3bb43e7b Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 15 Jul 2012 17:43:58 -0300 Subject: [PATCH 45/79] commit --- instropcode_set.txt | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/instropcode_set.txt b/instropcode_set.txt index 106d0d4..58b2931 100755 --- a/instropcode_set.txt +++ b/instropcode_set.txt @@ -62,32 +62,3 @@ getfield b4 180 putfield b5 181 invokespecial b7 183 new bb 187 - -new java/lang/Integer ; Create the integer -dup ; Make a copy of the reference to it -bipush 27 ; Push an argument - ; Call the constructor -invokespecial java/lang/Integer/ (I)V - - -.class MyClass -.super MySuperClass -; A constructor taking no arguments -.method ()V -aload_0 ; Push this -invokespecial MySuperClass/()V ; Call a superclass - ; constructor on this - -return ; Return to the caller -.end method - -getfield -putfield - -aload_0 - invokespecial Main/() V - ldc 5 - putfield Main/abc I - iconst_3 - putfield Main/xyz I - getfield Main/abc I \ No newline at end of file From 432f202089d7b30b598307d447ba7c0fbf628dcc Mon Sep 17 00:00:00 2001 From: "tiagodvneves@yahoo.com.br" Date: Sun, 15 Jul 2012 17:44:37 -0300 Subject: [PATCH 46/79] commit --- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index 05e50af..6d01066 100755 --- a/build.xml +++ b/build.xml @@ -1,5 +1,5 @@ - + From c88f2c521cb6132f93ebc14a9a24e2db401f37da Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Thu, 30 Aug 2012 19:22:49 -0300 Subject: [PATCH 47/79] commit --- .../iged/interpretador/gramaticas/Assembler.g | 220 +++++++++++++++++ .../ufpb/iged/interpretador/gramaticas/Def.g | 97 ++++++++ .../interpretador/gramaticas/Intermediario.g | 48 ++++ .../ufpb/iged/interpretador/gramaticas/Ref.g | 232 ++++++++++++++++++ .../interpretador/parser/Assembler.tokens | 155 ++++++++++++ .../parser/AssemblerLexer$DFA6.class | Bin 0 -> 1854 bytes .../interpretador/parser/AssemblerLexer.class | Bin 0 -> 26558 bytes .../AssemblerParser$aritmetica_return.class | Bin 0 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 0 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 0 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 0 -> 710 bytes .../AssemblerParser$comando_return.class | Bin 0 -> 677 bytes ...semblerParser$definicaoClasse_return.class | Bin 0 -> 701 bytes .../AssemblerParser$desvio_return.class | Bin 0 -> 674 bytes .../AssemblerParser$instrucao_return.class | Bin 0 -> 683 bytes .../parser/AssemblerParser$label_return.class | Bin 0 -> 671 bytes .../parser/AssemblerParser$load_return.class | Bin 0 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 0 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 0 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 0 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 0 -> 692 bytes .../AssemblerParser$operacao_return.class | Bin 0 -> 680 bytes .../parser/AssemblerParser$pilha_return.class | Bin 0 -> 671 bytes .../AssemblerParser$programa_return.class | Bin 0 -> 680 bytes .../parser/AssemblerParser$store_return.class | Bin 0 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 0 -> 680 bytes .../AssemblerParser$superClasse_return.class | Bin 0 -> 689 bytes .../parser/AssemblerParser$tipo_return.class | Bin 0 -> 668 bytes .../parser/AssemblerParser.class | Bin 0 -> 58260 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 0 -> 13782 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 155 ++++++++++++ .../iged/interpretador/parser/Ref$DFA1.class | Bin 0 -> 1348 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 0 -> 23470 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 155 ++++++++++++ .../principal/Interpretador$1.class | Bin 0 -> 1637 bytes .../iged/interpretador/principal/Objeto.class | Bin 0 -> 2602 bytes .../interpretador/principal/Referencia.class | Bin 0 -> 831 bytes .../symboltable/classes/BytecodesAST.class | Bin 0 -> 596 bytes .../classes/BytecodesErrorNode.class | Bin 0 -> 745 bytes .../symboltable/classes/Escopo.class | Bin 0 -> 484 bytes .../symboltable/classes/EscopoBase.class | Bin 0 -> 1966 bytes .../symboltable/classes/EscopoGlobal.class | Bin 0 -> 642 bytes .../symboltable/classes/EscopoLocal.class | Bin 0 -> 638 bytes .../symboltable/classes/Simbolo.class | Bin 0 -> 2103 bytes .../symboltable/classes/SimboloClasse.class | Bin 0 -> 3489 bytes .../classes/SimboloComEscopo.class | Bin 0 -> 2310 bytes .../classes/SimboloTipoPrimitvo.class | Bin 0 -> 640 bytes .../symboltable/classes/SimboloVariavel.class | Bin 0 -> 590 bytes .../symboltable/classes/TabelaSimbolos.class | Bin 0 -> 756 bytes .../symboltable/classes/Tipo.class | Bin 0 -> 179 bytes 50 files changed, 1062 insertions(+) create mode 100644 bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g create mode 100644 bin/br/ufpb/iged/interpretador/gramaticas/Def.g create mode 100644 bin/br/ufpb/iged/interpretador/gramaticas/Intermediario.g create mode 100644 bin/br/ufpb/iged/interpretador/gramaticas/Ref.g create mode 100644 bin/br/ufpb/iged/interpretador/parser/Assembler.tokens create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$definicaoClasse_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$instrucao_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$loadint_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/Def.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/Def.tokens create mode 100644 bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/Ref.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/Ref.tokens create mode 100644 bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class create mode 100644 bin/br/ufpb/iged/interpretador/principal/Objeto.class create mode 100644 bin/br/ufpb/iged/interpretador/principal/Referencia.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/Escopo.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/TabelaSimbolos.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/Tipo.class diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g new file mode 100644 index 0000000..bd9878e --- /dev/null +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -0,0 +1,220 @@ +grammar Assembler; + +options { + output = AST; + ASTLabelType = BytecodesAST; +} + +tokens { + MEMBRO_CLASSE; + FIELD_DECL; + EXTENDS; + ARITMETICA; + LOAD; + STORE; + LOGICA; + DESVIO; + LABEL; + PILHA; +} + +@header{ + package br.ufpb.iged.interpretador.parser; + + import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; + import br.ufpb.iged.interpretador.excecoes.LabelException; + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +} + +@lexer::header{ + package br.ufpb.iged.interpretador.parser; +} + +@members { + + public abstract void escreverOpcode(String nomeInstrucao); + public abstract void escreverOpcode(Token opc, Token op) throws LabelException; + public abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + public abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + public abstract void definirLabel(Token id) throws LabelException; + +} + +programa : instrucao* + ; + +instrucao : operacao + | definicaoClasse ('.end class')? + ; + +operacao : (label comando | comando); + +label : a = ID ':' -> ^(LABEL $a); + +comando: ( manipulacaoObjetos + | aritmetica + | load + | loadint + | store + | storeint + | desvio + | logica + | pilha + | 'nop' + )? NEWLINE; + +definicaoClasse + : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) + | '.method' INIT '()' VOID NEWLINE + ; + +superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; + +membroClasse + : '.field' ID tipo -> ^(FIELD_DECL ID tipo) + ; + +manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) + | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) + | a = 'invokespecial' c = classe '/' d = chamadaMetodo + -> ^('invokespecial' $c $d) + | a = 'new'c = classe -> ^('new' $c) + ; + +tipo : INT | VOID | TIPO_REF; + +aritmetica : ( a = 'iadd' + | a = 'isub' + | a = 'imul' + | a = 'idiv' + | a = 'irem' + | a = 'iinc' + | a = 'ineg' + ) + -> ^(ARITMETICA $a) + ; + +load : ( a = 'iconst_m1' + | a = 'iconst_0' + | a = 'iconst_1' + | a = 'iconst_2' + | a = 'iconst_3' + | a = 'iconst_4' + | a = 'iconst_5' + | a = 'aconst_null' + | a = 'iload_0' + | a = 'iload_1' + | a = 'iload_2' + | a = 'iload_3' + | a = 'aload_0' + | a = 'aload_1' + | a = 'aload_2' + | a = 'aload_3' + ) + -> ^(LOAD $a) + ; + +loadint : ( a = 'iload' b = INTEIRO + | a = 'ldc' b = INTEIRO + | a = 'aload' b = INTEIRO + ) + -> ^(LOAD $a $b) + ; + +store : ( a = 'istore_0' + | a = 'istore_1' + | a = 'istore_2' + | a = 'istore_3' + | a = 'astore_0' + | a = 'astore_1' + | a = 'astore_2' + | a = 'astore_3' + ) + -> ^(STORE $a) + ; + +storeint : ( a = 'istore' b = INTEIRO + | a = 'astore' b = INTEIRO + ) + -> ^(STORE $a $b) + ; + +logica : ( a = 'iand' + | a = 'ior' + | a = 'ixor' + ) + -> ^(LOGICA $a) + ; + +desvio : ( a = 'ifeq' b = ID + | a = 'ifne' b = ID + | a = 'iflt' b = ID + | a = 'ifge' b = ID + | a = 'ifgt' b = ID + | a = 'ifle' b = ID + | a = 'if_icmpeq' b = ID + | a = 'if_icmpne' b = ID + | a = 'if_icmplt' b = ID + | a = 'if_icmpge' b = ID + | a = 'if_icmpgt' b = ID + | a = 'if_icmple' b = ID + | a = 'goto' b = ID + ) + -> ^(DESVIO $a $b) + ; + +pilha : ( a = 'pop' + | a = 'pop2' + | a = 'dup' + ) + -> ^(PILHA $a) + ; + +classe returns [List classe] + @init { + $classe = new ArrayList(); + } + : (cls += ID '/')* (cls += ID) {$classe = $cls;} + ; + +chamadaMetodo returns [String nome, String params, String tipoRetorno] + @init { + $nome = ""; + $params = ""; + $tipoRetorno = ""; + } + : n = INIT par = '()' tip = VOID { + $nome = $n.text; + $params = $par.text; + $tipoRetorno = $tip.text; + } + ; + +campo returns [List classe, String campo] + @init { + $classe = new ArrayList(); + $campo=""; + } + : (cls += ID '/')+ cmp = ID {$classe = $cls; $campo = $cmp.text;} + ; + +INIT : ''; + +INT : 'I'; + +VOID : 'V'; + +NULL : ('null' | 'NULL'); + +INTEIRO : '-'? '0'..'9'+ ; + +TIPO_REF: 'L' ID ('/' ID)*; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +//LETRA: ('a'..'z' | 'A'..'Z'); + +NEWLINE : '\n'; + +WS : (' ' | '\t' | '\r') {$channel=HIDDEN;} ; \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g new file mode 100644 index 0000000..62a1e82 --- /dev/null +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -0,0 +1,97 @@ + +tree grammar Def; + +options { + tokenVocab=Assembler; + ASTLabelType=BytecodesAST; + filter=true; +} + +@header{ + package br.ufpb.iged.interpretador.parser; + + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + import br.ufpb.iged.interpretador.symboltable.classes.Escopo; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; + import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +} + +@members { + TabelaSimbolos tabelaSimbolos; + Escopo escopoAtual; + public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + escopoAtual = tabelaSimbolos.global; + } +} + +topdown : entraNaClasse + | declaracaoVariavel + ; + +bottomup : saiDaClasse + | getfield + | putfield + | invokespecial + ; + +entraNaClasse + : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + { + System.out.println("linha "+$nome.getLine()+ + ": def class "+$nome.text); + if ( $sup!=null ) + $sup.escopo = escopoAtual; + SimboloClasse classe = new SimboloClasse("L" + $nome.text,escopoAtual,null); + classe.def = $nome; + $nome.simbolo = classe; + escopoAtual.definir(classe); + escopoAtual = classe; + } + ; + +declaracaoVariavel + : ^(FIELD_DECL ID tipo =.) + { + System.out.println("linha "+$ID.getLine()+": def "+$ID.text); + $tipo.escopo = escopoAtual; + SimboloVariavel variavel = new SimboloVariavel($ID.text,null); + variavel.def = $ID; + $ID.simbolo = variavel; + escopoAtual.definir(variavel); + ((SimboloClasse)escopoAtual).getConstantPool().add(variavel); + } + ; + +saiDaClasse : '.class' + { + System.out.println("Saindo da classe.. membros: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; + +getfield + : 'getfield' + { + System.out.println("Saindo do getfield.."); + } + ; + +putfield + : 'putfield' + { + System.out.println("Saindo do putfield.."); + } + ; + +invokespecial + : 'invokespecial' + { + System.out.println("Saindo do invokespecial.."); + } + ; + + + diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Intermediario.g b/bin/br/ufpb/iged/interpretador/gramaticas/Intermediario.g new file mode 100644 index 0000000..20075df --- /dev/null +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Intermediario.g @@ -0,0 +1,48 @@ +grammar Intermediario; + +@header{ + + package br.ufpb.iged.interpretador.tradutor.intermediario.parser; + + import java.io.IOException; + +} + +@lexer::header{ + package br.ufpb.iged.interpretador.tradutor.intermediario.parser; +} + +@members { + + protected void adicionarVariavel(Token op); + protected void traduzirLoad(Token opc, Token op) throws IOException; + protected void traduzirStore(Token opc, Token op) throws IOException; + protected void traduzirArimetica(Token opc) throws IOException; + +} + +programa : instrucao*; + +instrucao : (create | load | store | aritmetica); + +create : 'CREATE_INT' a = ID {adicionarVariavel($a);} + | 'DELETE_INT' ID + ; + +load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} + | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} + ; + +store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; + +aritmetica : a = 'ADD' {traduzirArimetica($a);} + | a = 'SUB' {traduzirArimetica($a);} + | a = 'MULT' {traduzirArimetica($a);} + | a = 'DIV' {traduzirArimetica($a);} + ; + +INT : '-'? '0'..'9'+ ; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +WS : (' ' | '\t' | '\r' | '\n') {skip();} ; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g new file mode 100644 index 0000000..ca82be0 --- /dev/null +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -0,0 +1,232 @@ +tree grammar Ref; + +options { + tokenVocab = Assembler; + ASTLabelType = BytecodesAST; + filter = true; +} + +@header{ + package br.ufpb.iged.interpretador.parser; + + import br.ufpb.iged.interpretador.symboltable.classes.Escopo; + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; + import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; + import br.ufpb.iged.interpretador.symboltable.classes.Tipo; + import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; +} + +@members { + TabelaSimbolos tabelaSimbolos; + SimboloClasse simboloClasse; + BytecodeAssembler assembler; + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, + BytecodeAssembler assembler) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + this.assembler = assembler; + } + + private Tipo resolverTipo(String nomeTipo) { + + return (Tipo)simboloClasse.resolver(nomeTipo); + + } + + private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) { + + assembler.escreverOpcode(operacao); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ + + SimboloVariavel simboloVariavel = + (SimboloVariavel) simboloClasse.resolver(nomeCampo); + + if (!simboloClasse.getConstantPool().contains(simboloVariavel)) + + simboloClasse.getConstantPool().add(simboloVariavel); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + simboloClasse.getConstantPool().indexOf(simboloVariavel)); + + } + + private void chamarConstrutorDefault(String nomeClasse) { + + assembler.escreverOpcode("invokespecial"); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + } + + private void newClass(String nomeClasse) { + + assembler.escreverOpcode("new"); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + } + +} + +topdown + : entraNaClasse + | declaracaoVariavel + | getfield + | putfield + | invokespecial + | novaClasse + | aritmetica + | load + | loadint + | store + | storeint + | desvio + | logica + | pilha + | label + ; + +entraNaClasse + : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + { + simboloClasse = ((SimboloClasse)$nome.simbolo); + if ( $sup!=null ) { + $sup.simbolo = $sup.escopo.resolver($sup.text); + simboloClasse.superClasse = + (SimboloClasse)$sup.simbolo; + System.out.println("linha "+$nome.getLine()+": set "+$nome.text+ + " super to "+((SimboloClasse)$nome.simbolo).superClasse.nome); + } + else { + System.out.println("linha "+$nome.getLine()+": set "+$nome.text); + } + } + ; + +declaracaoVariavel + : ^(FIELD_DECL ID tip =.) + { + $ID.simbolo.tipo = resolverTipo($tip.getText()); + System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); + } + ; + +getfield + : ^('getfield' classe = . . campo = . tipo = .) + { + acessarCampo("getfield", $classe.getText(), $campo.getText()); + } + ; + +putfield + : ^('putfield' classe = . . campo = . tipo = .) + { + acessarCampo("putfield", $classe.getText(), $campo.getText()); + } + ; + +invokespecial + : ^('invokespecial' classe = . metodo = . args = . tipo = .) + { + chamarConstrutorDefault($classe.getText()); + } + ; + +novaClasse + : ^('new' classe = .) + { + newClass($classe.getText()); + } + ; + +aritmetica + : ^(ARITMETICA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +load + : ^(LOAD operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +loadint + : ^(LOAD operacao = . operando = .) + { + assembler.escreverOpcode($operacao.token, $operando.token); + } + ; + +store + : ^(STORE operacao = .) + { + assembler.verificarAumentoMemoriaGlobal($operacao.token); + } + ; + +storeint + : ^(STORE operacao = . operando = .) + { + assembler.verificarAumentoMemoriaGlobal($operacao.token, $operando.token); + } + ; + +desvio + : ^(DESVIO operacao = . operando = .) + { + assembler.escreverOpcode($operacao.token, $operando.token); + } + ; + +logica + : ^(LOGICA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +pilha + : ^(PILHA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +label + : ^(LABEL operacao = .) + { + assembler.definirLabel($operacao.token); + } + ; + \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens new file mode 100644 index 0000000..d514209 --- /dev/null +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -0,0 +1,155 @@ +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 +T__77=77 +T__78=78 +T__79=79 +T__80=80 +T__81=81 +T__82=82 +T__83=83 +T__84=84 +T__85=85 +T__86=86 +T__87=87 +T__88=88 +T__89=89 +T__90=90 +ARITMETICA=4 +DESVIO=5 +EXTENDS=6 +FIELD_DECL=7 +ID=8 +INIT=9 +INT=10 +INTEIRO=11 +LABEL=12 +LOAD=13 +LOGICA=14 +MEMBRO_CLASSE=15 +NEWLINE=16 +NULL=17 +PILHA=18 +STORE=19 +TIPO_REF=20 +VOID=21 +WS=22 +'()'=23 +'.class'=24 +'.end class'=25 +'.field'=26 +'.method'=27 +'.super'=28 +'/'=29 +':'=30 +'aconst_null'=31 +'aload'=32 +'aload_0'=33 +'aload_1'=34 +'aload_2'=35 +'aload_3'=36 +'astore'=37 +'astore_0'=38 +'astore_1'=39 +'astore_2'=40 +'astore_3'=41 +'dup'=42 +'getfield'=43 +'goto'=44 +'iadd'=45 +'iand'=46 +'iconst_0'=47 +'iconst_1'=48 +'iconst_2'=49 +'iconst_3'=50 +'iconst_4'=51 +'iconst_5'=52 +'iconst_m1'=53 +'idiv'=54 +'if_icmpeq'=55 +'if_icmpge'=56 +'if_icmpgt'=57 +'if_icmple'=58 +'if_icmplt'=59 +'if_icmpne'=60 +'ifeq'=61 +'ifge'=62 +'ifgt'=63 +'ifle'=64 +'iflt'=65 +'ifne'=66 +'iinc'=67 +'iload'=68 +'iload_0'=69 +'iload_1'=70 +'iload_2'=71 +'iload_3'=72 +'imul'=73 +'ineg'=74 +'invokespecial'=75 +'ior'=76 +'irem'=77 +'istore'=78 +'istore_0'=79 +'istore_1'=80 +'istore_2'=81 +'istore_3'=82 +'isub'=83 +'ixor'=84 +'ldc'=85 +'new'=86 +'nop'=87 +'pop'=88 +'pop2'=89 +'putfield'=90 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class new file mode 100644 index 0000000000000000000000000000000000000000..545ff51d0cc7431b575dc7e75250ba32899916d4 GIT binary patch literal 1854 zcmb8wTT>%N7zW_C6C{vn0axWKP_wdidzy1bbVZVT!fOC?V=l2IE zX4F-uW)!C?86+wVPy2~E2$P{o%;LxG8% z{;8UVfFbb|CX2}9X^8@61oD;Yp&pr&cn0$V#pKCUfyMvl_1p!CtGFgGbE-PgFzUyx z^Rp9`2#Dr1N_f72=LA+RyEPKm@q)mV-u`3NPX%)K4)mXUN#bQalBZ7Xzap`CvGTqy zT9SB;i>O_~8xj>%A9H6>thpUsc|+o+9?4Uuu3VNdFI0vPbkVBB+PFx!ORyyz%^TV3 z!cIpGXe|Psgs=N2A9t0oA+f2uWL7#H&>n?7UHhiQmL4cP=_}!FiEZ2wn9YjQB#ehq zN;^u+yEp#zyApL>QM@=f8$_`h?|M6=lPfSE^gChiFiaxd=FSOyP-&5uK4;k-ptCyD zRq3u8c9Li?Ue!XS8hjFd7Mi^FUPnM!DVpRK>&cM!8aMA0Mw- z>>4X*!`sYbUH6ncpuKfE;zN}9wUBqS_t7NAa z(r2D-!-T$SDAR?^)4vHZH>W?5^p>NZ0;cFWO|37ft;ZX+8zU5Je?r!7jxbxBn;hXv z?GHRV!iyB;5niQueS{jttr1oztPxy_^$~7Uyfwnk@0s7A=Q0ey_zKg;*O)QB!GiHE zt{dNB(fA%!;|Hu5Kf*J9!j|zf>c%g4hvrN0-K5IG)ZB!^a3wTHWu#cXm39|Dg6TQtq8 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class new file mode 100644 index 0000000000000000000000000000000000000000..0e3de91ff8e9d632c7322727dd429008d7db6aa4 GIT binary patch literal 26558 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 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class new file mode 100644 index 0000000000000000000000000000000000000000..6f3e6858271696b86e8fd34772e9e5a81240b56c GIT binary patch literal 686 zcma)4U279T6g`uqSrfO7Nz+#QCKPP?&_R5x3NctH1S?6%tITe$>4e?cWp-BRA1ZxR z5QIMX1N>3q-A!K_L+HcYkGbdGIdf+I{Jr}P;0+EvR0IZrmHF2+ka|utsf{C>T5@WZ zSeYuDk(K={qd17jelGJPWwndR=}>)PWNwXzn!u~X&ZROgveM?p>6qjaKguH-mAG-3 zq$E&tme{=;Za6x-j)Np}ijS3Hq?kb_KU_NslNn|G@#IXP{#G09-V0QZdsCh|;8GJ+ zJoVw>i9lHBD=MEBtpfgqF=Piz1w1?#c)dZj^*jaI z|2-LAGLb6(1Hp^gu&r>+!m({|CfS#@lV525D9b+Eda+r*!8XVK5`Z1FI1_k=Hrt2I cKhgQV(tNw7xq@zq+QUBkCXW#~zza0~0m@Oas{jB1 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class new file mode 100644 index 0000000000000000000000000000000000000000..30f1b9d3bc2ee7e466c01df7f2194c3217fad990 GIT binary patch literal 744 zcma)4+iDa+5IsG6bJxw)7_SKg1d}}2h>y`=3<$!al3nr|dS=V9!%WXm-6Q0$6a*m; z`2asESTh?WN?7tzr>pAJnbXzt`||t(z$wP*!5?5Tx7wBRXzKT*YC~( zCB>Bd!FVDv-PhLHu&>bC-Z>W4Lun1r!qO0TF;rL@Sw|nMJSLvhI<=c3G1;+UTjy8B zcKB+&!rOUnZm~Qu)JrK$nyamC?_9h1r}&hTu-AvegCY7DC=A9$#RV*R@`Bm5m+jBXf?@UUS$!ehaK L$S6F)2Ks*h_shKd literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class new file mode 100644 index 0000000000000000000000000000000000000000..15c1214c38bb352918be5f968f746b57e2d6529a GIT binary patch literal 770 zcmb7?+iDa+5QhKW-R!!XjWIEv4-gPca$zH0Muiv%3hROFl3VGSDJLCfx`&z`ArIt@ zR|+&(4b_Fp1^KWC3t}S|+{- zMqqVX7~!tp}VzxBwhC@r)Hj^c zfsJ?@|2)rwI8uf23+IUU&xSC-ZH0#m1~(s7n$LS{Yzj+P{-K`e68f?e{Bym~Dk7+y zcO)ZYm32iTEviJ9cD~}`=Qe#w)_y!(`G7Uq$5JW4IxdR}0ItaTxA_aMev)Jdzs(=# Vm^--MR^7l&(UG)KxP?0y{sM(##Tozr literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class new file mode 100644 index 0000000000000000000000000000000000000000..8d33250ae371c74f97ba42d808907e7453f24521 GIT binary patch literal 710 zcma)4T}vB56g`u~Y?E&MXk%^F7eO)l;86N#t3;t7ELu$PRc1HWII@`yGqZyKs)a(K z5B&lCQR3ZQUla+x%)R&Ab1!Gk%>Vnp{{Vc!dVre1VQgi7HI1bn(@1LL$xbbKHOj1< zD(lF~zH>B*Q?ftGdNWBCBbUs|tqIT&*v{-&D&tctZEn1tkgT}pc}nLcZ;)hD5@=S# z0*ld&x>YjwI+c-jeqW&BEivU=G((cRo5We_70Z#;DkqQbJSEwPTz@d+HO;TuXn!D3 z@9kXh)?;q9QAa043vGdgNE literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class new file mode 100644 index 0000000000000000000000000000000000000000..8796b1821826b32f15df89d53e0ab97ab6021ea4 GIT binary patch literal 677 zcma)3TT2^36#gbjvnH7Z9KWLBd>NyR^2I?C^M2j zqFajnaRUOYAwHlk(CpjX#dNL_p8ZS!&tj+)c literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$definicaoClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$definicaoClasse_return.class new file mode 100644 index 0000000000000000000000000000000000000000..9b2264ad40f561ad955bee573d232323df04d13b GIT binary patch literal 701 zcmb7C+e!m55It#Y*Vgr3uWy3j<-s66dI1$grKs3ae3R^UtdVWDWV3>Qr634C_yK;D zIJ@;lDFq)glgZ4PIXTJa*ZT*69V~k&2%H91rgyzS>JGJ~HjZr1l2h&2%AT?bS$UWw z)D0rCS9!eJraNtPsN&;Daq5=KQ)@hw1lD5Pk;=HpN}C#|yCnOd>olV4ysi<(JrXE6 zOYHXRL*^$>-5`#f;@L9HXC?CJ$x#@$DLHI3cLmCOOvN1t6xTOe-1V4KRTMGi!^5b+ zWL+D&NV@^qX4XewrXGhXYALI;_~)?X?sXz?K8(%3)L?2}hg>tiWNm$;{-7R}jFjof z%iw`Rw_Ab0td9|t1*(lWwIQA8j9~4L-dh<|z&|sFY+v%k!=k|U5a|Y!6__9VcvxXJ zMgA6o7gJ(e;5|#ow!)EQpXWB;P<_eMKHGA3SZraO_kO+yD&G`LwxR$4 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class new file mode 100644 index 0000000000000000000000000000000000000000..c2bda782d8879a1fa3ea942d0a04fdff4f8c51b2 GIT binary patch literal 674 zcma)3$w~u35PhA*jEUnO*P9?{JlKdwH=-a2LB#~G(laSz%cLjt^aS!(3WDIl5AdVJ znu!-hf`_j4Rn@ENkI%Pv0Q*??P!Ko?tW59wfz(~!@acur`1ZL!Q$+h#{YTNbZqZ%j~Dbtl#!6Sw4paOwK z9}_4GR9kUsLps+PuiCHc?q;O|{)I7Q&qmvOSQXeCbFsfU3QYg_Dr_)`BLBVM$4poj z*ye+=tgt6p=eeC%RG;&-&$65ar%o`JpC$e{83y$Ek`Y3 NnRS)h2&`ZYl`pbbtPlVI literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$instrucao_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$instrucao_return.class new file mode 100644 index 0000000000000000000000000000000000000000..e64918f090e293b8631761e7d455d5960682a72d GIT binary patch literal 683 zcma)4-%A@o5dJnvbLM)jHm3H+TcJ?xgG=e7T8I`wIBYS&*Rpq+rYm=QVQ#PBf2AM@ zKJ*Xp4-x+gadPp+AfXRCv$ONf%(vg}_1)D!0AKMwKto|SVO{;6B-)N?q^uvqbj4L8aGIb z2`RKZlenFD!Q}EZPm0VNnX1#w2!T@Xo_b1)5taSHa7&@RZJqVs6q@TB$I^9AQX!gn z9wESz!g6dK9aeclJe>AX=*C5AvSY(`8b2Ji{2yB?d|$-oKXnjN!I=E8zFu#ABR(;I zjn0f4>mSJprGBdeh1Cep&{hZsMa3!Y+bOl)oW`5eQibTiIpV#U00G`Ad|4pc(=-)U z<{u0nghx|8fs!R;#5QCvvWe|Tq{Y{{&zA_#>vSZxT_4`yh3uml057pDkqp5rv5$){ b&^?^l!^L~Esz3;vG_2>2uz!{DLlmt4FliBA*B=wXgQd>`M;mE5=;^acP zl$`9QDa|88?yB%#8WoYbW>DsAfQrDY#7(8L-Z<$p>-C)E3OdLP4GP>aP8K9k@s3!% z?{Ar!F6U8VyyA&6Hj0O*^5fD|oJ=U~4o7W)>N{<5gg5PfUAR&1+v;yC@f6$(vy$WnStoRAs{1<{t+6z$mhb%FdM2wf{HR@jrAaaJ-Jq|4+btf(7|`v)OoeFIuW|B{O9f@=Ls= z#2@q^upQzNx&r-~tz1GMbaW3lY9Cs{YSx4+Q8YSJOgZXFDAJZ3vw0q_Jv_5?Pu#q!_cpBP=`z-xx3)_5ohtj4w@m2r`kHZ@LnNe;l5X+)Pft{KKX5-2%Kto9m1<|h4a z5Jyh&Oc_Rs$0zcr?5gg5PfSqR;0#&d&CHwGhsXQB0M2mep(1b*TABZthf>Ehk=i)2b4yN5QY+`m zW@KeA%V-uRWUos9eUipHQr{VsTjQZ7@FBIaRK_J%+T1ujBe}$0=LubxxM7seNucH| zvHCRFFgClLg=yjxkCaiOczPy3-#UuY31z+Es4GzasEu~#0@b6=n7j5l<)exh0X%FA zvz)*)0>Py*Wc$nQJsb#}Zn)TbjsneoRxz2mbFe9k8qyL4ScJ+rbimmuRsku!CKetHlfK{d!h> Wx2Cv)c8Pk8ebzp=5qN{QXgmRctE{I0 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class new file mode 100644 index 0000000000000000000000000000000000000000..b04f4ba4e54f125af7dec9443f805e9985922548 GIT binary patch literal 710 zcmb7CU279T6g`uq*=Ai^ZKJh)D+p~`a1bA3g&GjVXiF0MDzlqwoU%K!%+3n=R}}=I z5B&lDDDm#b7efs6VeZG=d+wY$GrxY{-T`=pg8&VI53!TwmpqnwMpLPcCzm_&YHFR# zl`F`}^P-?EPRU)?`SVN}otLRfl)Z?r$=l*HBT8oiv;>ZZB`;*BQwLZd9f; zs{6)?%}Jo;9kDwbuAxxOv)HCy@$oWA6*DR1+qtL2PN_H_Px=Dw*V<_RMxc4zyW*(> zE`?~~L4*LC0^37v=u?@+Mts&K=j@ia)X5u0iFrGT%+D< zz5@IIeL@^Ep(g(i!HZe3ZE(y&vh8pt+1Is`p9sI#<%n&&+T7^jA;;080bAJSOyCh7 fv;7zR13NcM;L{c02D)|E6Fg-f@)&_V?4$Ds8uGe+ literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class new file mode 100644 index 0000000000000000000000000000000000000000..a6401ba232d342b4e5a29051501d117b0688a8a2 GIT binary patch literal 692 zcma)4O-md>5PiM7*>N|MXmmB|Ef9$2U=wom15{LmB?fo#8hU0co0gfLrKTs~zfuqc z54i*{{wT3#){C+%9;T{aRlTa$HGThZ`wzf(tOlql97L>(-=j#|Aq}*3o_NIM%^+hv zGMp3Z-8`o>N{D|}_;V_Vv;D+K{Fl@g>;g0tzGOVq#`%Ob7tY(1^q6s4By?KU_2O(q z3JuRBZo4~Wcz%&aS>lZh)^Rl}*LxS9;%q?qZm++o(A=`l`W=P(+WMJv-Ir7wb-WD` zU`AoKYaRV4(ulZU_EDJcX0b`m4BHYv1snd4%@vNOsd@b>L{~5*->+`iSzGU(o4-aU z#trpJbWX9~Y(Zfm#2Yjf+P$pcm=0~JuJdBk8zogCJa&$Fyze}~vck71dz-9OCQkTm z_#{&5@*0$UqDO2^&aynQEkRm*mHT>w_EnV*#Wu@e<3HZXIUE<@J!S=5dJoaIg_5Iw(&>%CI}`zbP*q83u&Mr1eGS_vATB|&kdKoFt;c4zfvd^ z`rsenA5}Vc@x@Sr4?DB7GvCa&-|nB=o8JK5;V?i=VHmM4zO5o{6Pj!5Jn@Rjn|a21 zWjH6+!#t;DloEfg;#b*<*u*CLB6S7301buL87JB}pR(q{dAlUNu0AhPIchs zo=M#Cc+24Yav5c*H!@Vmsge1)KE3o5XLHJjlj%UA`QAF~PZa9C{!F@#B-KV8J0Su* zROpPYqmRWhBA%9g6!ykhY|@!wTgHD68~(e^6-L|G{GSZMDM-jqtJ`&Z{qe&5Fgi6Z z(VwCP#eUF&!hVPcXezWPS-~-#*^*gzL*b(mst|r~j(D`be}ESXZ?|Z6KT8o}BgC|SZqY)$qen%I^^T6~pzbB*?|DjkY#mWS#Bk7OUN3-A~ni4=D6MC`xdEA0K; Y0Drv)Ttm02dWvV_+tNniIS$ae18-rjfB*mh literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class new file mode 100644 index 0000000000000000000000000000000000000000..31fc6366157272f25ae5c9b4fb861a8e98823225 GIT binary patch literal 671 zcma)3-D(;^6#hnyTg^5mscnKRR?HjZp!$*E~< zWuk0KR`$}A7C}Vzy71p5I=WLg49cwWP!TwZ?My1;A}eiXoL-PzLWfyI!vZ%7RWBJ>k5=x?Fo17bE=LqwtaYb zCeRpYL!YumKz5w>5!fHZp^7HT>fC<}R@|LV1>S99^Mo5PA#X-*T&&h?wFh(cS;Gsz|9%vX znM0XBUhrcgEK6+jxmecNldOx}=?~N&inPzNng{(ac+R%J1YidZ_5^mZ$MXN;@7Vvg YQv7vIaS6==^%AdG*SU?rYaF8X7n`@MQ2+n{ literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class new file mode 100644 index 0000000000000000000000000000000000000000..e22370ae939990beeb8c2a7e2d1ff69753164fd7 GIT binary patch literal 680 zcma)4QA-;^5dJoaITNqd+Gy3cLZRA+F49M}kOl-HXfeT8*}F`yD|dUx++M*SQv4eV zg3yQlfc~h`$;B6ggg)%d&dxV8-+sG){{H$6;1hNNG!*&~>*`w(X`9eQTjz-jCT}J= z>%wqJtovn2S(Flgt>bqE=Lwt4TnesY7oer^KIcRm=Tp{PId3!4GxT|t(s_*=#d$#r zEzczGXt-c-d7VXh>WvK5acX3KslQx%it`DT{n7Y9p?zqb^`8}*yL%VXbs(uOnpg=D zU|C^xXdRtaSwuXZ_EA_L=CMgH4BKh^c-ZpaZK*I=#OD8G5Kciteq7(Kx4SpIGCzz? zjZ5@dbVad0=s@9hh$XZYx}&_}n2zm~S#M6^kJD0x@WeUd!R-D4wiNakX!bly5n}GS z@K$IvV@#kT9ipLikra0b9jtV*P?hF4;r7T;t2 ZcCPs5nc@a|HEIK!;=9sD;SILY`3KTIuNeRU literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class new file mode 100644 index 0000000000000000000000000000000000000000..3891da281ea16be68a9617ff3e5fb13df3a811be GIT binary patch literal 671 zcma)3-%A@o5dJoaIg_5+YFevrf}ruCi}F_6%137XJTW&0pC}VQ&(fcicb-1q1TEa<$fayK`-R8=V+8(8tj= z#eTa1g@q7Ps4FzPY0fbn+JaW=)os5Or3&GZbHoSZ#RRksPA+xq-#%7A?kP=A;6Nt za^E^SD<(1VuSTg2vdG6<(&OnzA1uD#RgUzuy8Q{%?^ zM|?$zKWsr^Ey5c#6~aMQa6%`xWY(Tjc&{u~h)$g&?#=EW;G@FV1)9CgQiPa$E^G;n zy8HkoOSp)w$zDVg+mc9&uX4M85Z+bkNNlq_4EOL(_R$Q0_gI!lVFe$=J}g`izgCtFzZYMNVF zDC@||6X$3VXJoJHc;A%;*|SV>`V+U7)&yt?yv}VZmGPOCwlrQZNZtaj%Z#q;zEP4F zB+&Af*u9H3>~_mVoM&F~UYXRpoIG86O7bbWlhOECp#4@G?cWPD2g3yarO*{$_ z;Gw`yqz!#67ctp!HAkQq<%!BB%IYeJAsQ$Z0@ZD(+X1Znz8b}?{Kx*U2rk0!Q7biZQu09%=#`iH)Q(F1FI<#_1u+G4djh>7vB-!XzbunzO`euRCFA zHW~&=>=X}_VXSy|CXYsr!el_%VXxm2sPAf{-M&C|vwg{3k2%#u6*E3OObg6)wV|_o z7?AB3eFPS}NvPsWWp&}d1#9lV&IAr7vHAW4%*Tt!^~=p#o9*tkx=}J#CX#=HYYJVb z0f8kSQ>Y6xdr59XI?)BI)~CyE6{Q0HsWD`a$Gdx271*9|udf*j%)I+1{9+1K{&m5R zd9bXo&BtQdU{A6xbAKMtyerc_%X$&46K2`=#{m4m9D4%uSYY|F_#TV5pNgX|iYsW9 QsAa6MZgLxepIAfV73TA);s5{u literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class new file mode 100644 index 0000000000000000000000000000000000000000..99051701baca33a97a54e7c71841ccd147d0f7ef GIT binary patch literal 58260 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 Tg)FF$cOojV*nue%;`9Fp^`DT7 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.tokens b/bin/br/ufpb/iged/interpretador/parser/Def.tokens new file mode 100644 index 0000000..d514209 --- /dev/null +++ b/bin/br/ufpb/iged/interpretador/parser/Def.tokens @@ -0,0 +1,155 @@ +T__23=23 +T__24=24 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 +T__77=77 +T__78=78 +T__79=79 +T__80=80 +T__81=81 +T__82=82 +T__83=83 +T__84=84 +T__85=85 +T__86=86 +T__87=87 +T__88=88 +T__89=89 +T__90=90 +ARITMETICA=4 +DESVIO=5 +EXTENDS=6 +FIELD_DECL=7 +ID=8 +INIT=9 +INT=10 +INTEIRO=11 +LABEL=12 +LOAD=13 +LOGICA=14 +MEMBRO_CLASSE=15 +NEWLINE=16 +NULL=17 +PILHA=18 +STORE=19 +TIPO_REF=20 +VOID=21 +WS=22 +'()'=23 +'.class'=24 +'.end class'=25 +'.field'=26 +'.method'=27 +'.super'=28 +'/'=29 +':'=30 +'aconst_null'=31 +'aload'=32 +'aload_0'=33 +'aload_1'=34 +'aload_2'=35 +'aload_3'=36 +'astore'=37 +'astore_0'=38 +'astore_1'=39 +'astore_2'=40 +'astore_3'=41 +'dup'=42 +'getfield'=43 +'goto'=44 +'iadd'=45 +'iand'=46 +'iconst_0'=47 +'iconst_1'=48 +'iconst_2'=49 +'iconst_3'=50 +'iconst_4'=51 +'iconst_5'=52 +'iconst_m1'=53 +'idiv'=54 +'if_icmpeq'=55 +'if_icmpge'=56 +'if_icmpgt'=57 +'if_icmple'=58 +'if_icmplt'=59 +'if_icmpne'=60 +'ifeq'=61 +'ifge'=62 +'ifgt'=63 +'ifle'=64 +'iflt'=65 +'ifne'=66 +'iinc'=67 +'iload'=68 +'iload_0'=69 +'iload_1'=70 +'iload_2'=71 +'iload_3'=72 +'imul'=73 +'ineg'=74 +'invokespecial'=75 +'ior'=76 +'irem'=77 +'istore'=78 +'istore_0'=79 +'istore_1'=80 +'istore_2'=81 +'istore_3'=82 +'isub'=83 +'ixor'=84 +'ldc'=85 +'new'=86 +'nop'=87 +'pop'=88 +'pop2'=89 +'putfield'=90 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class new file mode 100644 index 0000000000000000000000000000000000000000..dc6345fb7715b9cace073a3f60674f94bb2ad1a9 GIT binary patch literal 1348 zcma)6U2hXd6g^`PapDX~8UmOUS_7fjCS;SQK$GxM$VUlv15K*D}qyx z5aQ23zbQfmX;rBb{DA(bs(02-8mSNDWzWpH=iWJUXJ-HY=dX7FX0cvCj-l4DUVA%g zc)F#Uo;HcHkyVLohSrOujg|G*)%L{F%I%o~IK%PKwmfN)zhs>$}fAKpqR_n?STSh-ocA>h-z!$@&8UVwfz!CHnk;hSi z0)`m!mFlL8j0k*yQHG-3Ph~jw{_-w&OyD?9Fbp-7uVWpWwf1g9Sq8Q`fD*!B}$O=-28_ek#UA;aY1Zd7)!=_(GjRI;RE-|DDqWvo)Ie=j@I3#4gz z8;RAXwa|~R8Q#v#&Ckr2lQ3$Ak4$;KTq!FqE&Lv1?YL)GgJg-qD_uMX`j*;R@5B}IZzx?BhJN@)})p>?Ze*rl2(?&vU6 zwYpi64tBC^*&r8H+G=qlY+GNgXxGAidfQWOpLBMs#wgp}12vGl(?OZeFi(FAHZtO# z5{+`i6wpuK0h&Fdxr;B?E~O~e{)DJarWmgA6vt|Ba5BXif^v%U1fQg+5nN6&O)#6{ zD#2We>jbw_EWXaluh4f2g8+Yy0saGq_>VZof5JHb8E5$~sPJFm@!xQjzrYRtJC^uM zd`USc$O;+3U91wi5xwxt?mc|fvwNA4Q7k`N|AQb0w^*N}_^Ygl=!Sbma#+h$_wj(R Km?f9+4e&2cEl1S= literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class new file mode 100644 index 0000000000000000000000000000000000000000..2b11fc624ddffbd55f429c081740eb4a08b5d59a GIT binary patch literal 23470 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 C5`qf= literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/principal/Referencia.class b/bin/br/ufpb/iged/interpretador/principal/Referencia.class new file mode 100644 index 0000000000000000000000000000000000000000..03e4b17198bdaff8b2672adc2064867791b03237 GIT binary patch literal 831 zcmb7@U2oGc6oy~-BWcsLT|d_GJzyZUorHzB9GZj>lMn?YihA#)Uho!@$aDEi+=2u{ z;(|*q_)&=Cq_myb4T@s>93Q{uImhy^-`{@#c!c{dN(?;Ed~uuwTt#xuRbr&hv@~L# zYMyD8gens;eudBoTidoXF5H)MPTJkT7NFP1f7bNidT7fWdjJ z5@ik<2E$ACM>B@X({wI9l+p0v!e=NCM>7u$Egx;v7#e5NJX@t{PgEjbE#3!GzZF3& z8M>1+6!A=GW$mT2V&17UhKG~?ER>KN(PqBw;ph_ZI`QrJsKTKhm~?8WXAwjHLU7?d z@NgYBUEE;k{L>*HS8%n4U1~$Jh+~H4)QIr(rO5I+T-?3T_P=?&X}Zv%JW{s)_WGJ0 z*aWykaAmq|619Z1s?gd+jmA1zM<~$;c;j#M@1LXjnXD4FXl&&t>AEShjs`m98x+y# zqDK~;%T*bv^|8IwY5PfsTM9;*Sr~$zyogd&977EdT2CWX89O?HiYh1m%4SRb+ewLMB;Scaf ziF1iXKrGVin>WmR`)0nrKRyARqf>)N=tWi(kJCu#i5d%?Ic29-IXN~~g7lWRvQZ&a~?j4v&Jru|xBsvflBCP#N%sKGx8vV-r518R$$s z6ltVvSe}E>4oobQk+izxzs-t!(mCOJ)r8AO<(T9M2mb~n_(N0JSl#O~NNZVq_AFl| zx**ODc#P|)a>e(<#vG|!i1`+?K2Laz)sxeA)Ze)Bu+6VO?>1PwjVANXVhTHGG2?l( NvCAHWJ!T&Ee*m#Mq_hA4 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.class new file mode 100644 index 0000000000000000000000000000000000000000..d7db25cf25f108662f44f7abb7653269c7165a65 GIT binary patch literal 745 zcmbVK%Sr<=6g{casgBiZeN;gZcPe5Qx~mAa)K%%imag1nrm;q+lOdB43;vWV!G#~- zM~Qc8abss;6G+a173pI`4E0M4*eLV=;-8=l_9K379I;3~4x#70^%(1s`Dk*`B5 z{7~{B6iFfzel@l-&;yyYjM1h;s04?hK5v>vx5waKs7TpMhL^*(HbX8V8yarX$f}X# zJ^d)7t~FAO>UrUR1#W19Ar(|QYCQ)s&OrUB&)_s^9uEsxDx(OGVK29ziN4ZSk?f=+ zUz%R#5<|7E0}=LxQ5l~;I`&>A49)huCjEL{XDF&DPA$WJo)uH4NSRn+NV%J*q-;)N zbeK}CT4f{G{(gzm2k|6u07h13iwcmRE}bP}wOdB}=QDFtE#7K_{)+k4Y)={0PU2G7_s<_z1795Ii6Dy$h4cVvIVE_OC literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/Escopo.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/Escopo.class new file mode 100644 index 0000000000000000000000000000000000000000..0d27abd10f5f685003e1b84613085dd7fa1945c9 GIT binary patch literal 484 zcmbV}u};G<6h-eVv?(pn4&@)x1rLY;WiC@iks@`slh??V8%K5;iC<&j1NbO}lYl^C zDvO^i9Ua|w-}}ew8-P2^BMb=l%8BEyQbHG;3tiUiD#x|VtrPy`pscB-GAuG9y=O00 zKC_jLa88)-Wg~@=Wg#|d&sj~FSrr6N_P{+ySj5Zq50};mYVPoxPL_n zvYTJBRoPh6aM*(o<-F6Sc7!B8Ri5g0cbhD?gt24aN`q(}|J~-~;NNb-B(+DE@uM~& s?zFGtwykSKAe@Ce0mD%B5F@meM;LeW;%iPY?f#dz3S_7?yaUWW0URKbfdBvi literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.class new file mode 100644 index 0000000000000000000000000000000000000000..bfb57af4997c0d3350508ecbfad0382e3efaf480 GIT binary patch literal 1966 zcmbVMSx*yD6#i}(hL&kr1l&bMp)KgRgBEcGx8jl-jPYsOUh7DiX=bJ*KKhR^0gaj% zpM3B)8RK_n23r9iN+#`H&-u>zzH{!+-(S7~xQHbUF@dWU*J!tizi`~Xh4v~xVMCzHdY|Eb)xR&eIO~`dIzbufrQs_-`zd*LC*o5>e?lO_xei4p(|gRac;t+evZ0TXMEI?!!r((l9QNX*0q6b)3co zd8$i-Pjn)Ng<8ya1QBg%$O&BOvf!dX(j>T`V+zv(S*OB23VC>HTI{l1*ZD=__aTY1 zI>vCEMPNItfmrRPiwaagP^sCya!BsVzFA!%ZISj`O}=K`QmkUvWxJ(JemR9n%;+$1 zPN{TN$2G7d;>{K%ncYQ_or>%tl5%=o$GocK9vM6s0-6`LoKoSIj@wFwkq#9)pOjwT z3274;rY<|kRIx7VxQF`$Sds6_s)7c$ZU&DCw~DG8AL_V+y8`L5({ihF(NfLS-)?}j z%6Z}hgNpN)M2sI>kne9yH6{1@g1L?!&NImJzn?qLct6H*r0@v?g|FE6@)JfjF_6GwAezdSjTpH% zf;Et2N;g$1u^<)2I4~Z#(Svz13SX%D*q4(iRi{m7YvI_yhb= z#%UpjGnbj2nK!fZ-u(Q2eFHedVHG6?+fDf5dG2x*NS~`XlgT`hnecVO)3?agVJ6&A zaxWBVDpP)!dU~!OLhXvMiZa8+MgxW-l?b(cBaluyb2zQ zIN*=&OnRA3Jy$AL*$soyA50j^x7wE$3^W_4qs4I9cQ)F{&Zo5<70b~ga%J+A(`M*8 z+7sbK&|Va;lI840r3}}b{j}sqRNC4lxkoyZOH~O+Cd>XgEiKR z#FO_b->$QMj?-K%9D$^v1DD8GVA6}BirOkuheh!gMdt+qFpt?M8XrZyP1d4(ZYzY^ qrdNaTghB^h@^lsSRufLh=QX3d`%bQeyxlBPt+iI;zjePr9sB{c;-I4d literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoLocal.class new file mode 100644 index 0000000000000000000000000000000000000000..7674e3f96116d0388be142a0acaddc4902a0d08b GIT binary patch literal 638 zcmbVJJx{|h5PeSCri4PEKzFtl1RgpdXw?A(Q`DuXyOWw?l*W;rBJr;~+qYGsvr;6PyAialO(`am3&kLNQ#`6QTS_C$#dZUdhd78IJpd_(i-5 zo{4^>u#s3eY@dyE$`V;&29O1t);Dc%l16&SrtcYu7QNY%oF>mZME!n)7q~+(RE)T z(RPotLZn}G0QZ7GLc|;Tk;0u(6}I!@0plHhI#Xa>NphUOpGC^FkN=qdarj> z)7=AMR|s?KcB^W49XUtFg#Xy_6xK$qH<}Sky?;i9qoM`$7piI2zbO4oNhjw`7)U7? zP3`XmBcIC`PP3tq^4(AXDO^&3#9lGEqz&X07KUZA)pJ@6-JL)lMFRz@Wkj)rvo=w} z5_xuO)U(tVn$uW@Wnkqk>4xQ*_ynJ_pQm=Kr}wFn+#q$Kyw}g@FpaBNOyM&HwIcgf z6SuHNk=UJ%ZZ{N`2XUgea2hA-dtD%Io49}_sdYoDx+6l{J{>||g)dBegryYjGXHG} z-j@7d4W)f&`GaY9B=T#8>{-eFb7UGSad>dD=mYKOkK^#!RvF0<*vJ6vH|GPX&mR#GE3=H0EiW552K~_jzJmkd1>Q<_8hx zL;6T96UEXoJ}h2)f$T77hGDY|o(n)PgzhJx6A>sOf+k`FrVt}|iz^>H#)`jT_Bl6U zwaLJ^5CEE?LjN`UgotW01`3aByxQc#`~Uy| literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class new file mode 100644 index 0000000000000000000000000000000000000000..4da609e9939a0b16e656912dbf837762786c36cc GIT binary patch literal 3489 zcmb_eT~ixX7=BLp2!t&ZN-6delu{CCgTFoDCHd673j)r>d*CL z#WRb^WxdS3_N=*X>0ZS#1Rgi;PWj8CZmlP?o?}|;sUupFN)t)T+m`F;mbYr#MS+tc zu#D+?Jh8M-G<6)f{<35LV3zE;qERv|&z_a&KD1aAXq_@G(@P8dGID%3{e&MiI)0v0 z@il?wS-W7w(1d;sy?9R`^X{yRuSIcA;7pwX8PnP_3JbcsK`z8_78fMyMS-S~_*y#z z1~ha)i{gEOQ}t`pj-zkOl*KTJ3-a7$4P7`XXIC`z;FO%jHMAopDQ8;7N~M%DoQJYl z1$r`eUN5fcjw#oHu-V%%Nzi7?E~z65E=)Z##!w|WXFa!z&zVx5n>;K-f=mf?+BtR; zf4Qog0=GxvM^q-g{YXO+;{qqLo}S-gI0Lsj9mAE@I?JjA4^HTzfrA21b>KEqQQRSJ zJv{{1Folnq#&yFJ7!FhDL2lE?d#QMc^MNRey8<_l)@fplz_f;&m=qAq;;q9*vg#1K zgvyH_Eo$m!RvKJmn|QKc_Kq7>n`is&PN2666=q@-OVu(8iDxQiv0ylD$gsJn2WcRN zMXbn@dLVE*oQ0s9`bGAchO4+H&t^3|#237-m&=A#5V(5KrBLd8Jppp64POdG?))fO z@kqnhcuZAW#&%Y+pfQjXrDAx3r%`;%!m1aWPX-P5u^^MGYseu_db#ZXFUv5q35@*`RZJ0 zC)glW4x=BV+)4OqF{X?ofUG=%${E`?O_VcfdK0A|;(B1v0>AQ9cj6^R{z4l+6EEca z1%*viD?N~x&lC8ff|6eILI8C`ofA^XCdtuvGs4TD7cX&X^c8MJ@F&vCV{gzhrnJ9- zCP7AbaqoqwL-jGpz-9V(g}%mdjs^@7NP0NnYpi)V9C+Bt2+UxXMoLrK5%~wbQKY+Q z$|snk*w4_sGAv1{w7x|eCUGOm#a1P}9&)cGz!9=va94VjQ?UcaUt{r6&!>A>rk2%R zeBQIhL27)3uLO4S&2RWliVGZe@vM&1seG6u9d1$oWC(A(hPPhB3mdyySK=F+4qdJr zy8*N2@#b3|5A9bnbD)wf6l+RKO35nMk_4@ZQSwu=GE9wmX6?Sx)aRe7<)}3%3X3;< z+DJ*aN`j4Y5ZADuig)3pEFEa#_i%#C>9A>`g7I0qLen1nk7=?PBpX~B7lHR5MNEPd literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.class new file mode 100644 index 0000000000000000000000000000000000000000..3283df51436ce48a49e22531d306a15eb25f18ca GIT binary patch literal 2310 zcmb_eOK%cU7(JI~DO0do>ieygmmOc#>eN=PRb!}+VCqH}108WHFk~2-xOCzFsY$ER zg>mJ=-(-yE-WdpKaRG6`a3AxX^L^)gz^^~wz5}?5M{$G%mMX5^dDE)scFkJX?WSkB zE!XnQb;s4)?;91T?wOUkrB~}_yKS}gvMtY?Wv8*yt~xCzj)=hZ(Lmye3Cs;?>(dJC zvlRbIbJMABTJ&4sMrkB0Lm;+bH*IfG;6t{wVQ!jw-E7wMvgg{(nlUWu3%lhEZRCe# zq)0kvD_Cj#{&CHPSvchnXWDO z!C}OEYqtgN4lBd%N}qN7+~o!_p|V1xo)xqh1cA_(!Gq#{@D1fMu4( zT&pcB&mGL28#azWE@PY-I;G(>&Io8uh5fi{H7c&d6ijAwesy*{yRNUAEhC9@n2F=O zz=V>td!gY1vI60n((3gEi+(bM@5w_5yqT`45p=;H#E%SCZ%h2 zDBb)3>G}r5zr~cGhK2>%XEA?L3B=p}@RUj~X}BYm&h#nWKg-hU{0aNT&w{{IH~amw zN%r%cK%#8dnx@xr*qb+(G&i_aRL3nc^+@UJMg_rm>&9y#GE9 zV2V3h%9JU54F_?Emhwz;N#+C&2Tad-qtNn&FF2Af4j?)}M>BNopdvaIkavlaJ))$7 z4-uH<9Ke4J;IsM9I9d3LvmyLIc(wQw(c%`*azBxhU%a{)!j{;gn_(5?G+BY84E7j9 zI>FUR%&_rgu)Yu3Ua;A~hZK%L$0c%J=35Dbeq$<*@FbnN!rydX+vg;ZYGjm4+qg#V z>tVbsgU(6!HMNcg sFhZ949^-AKcN@_1B{n<8ykC#`PYPVl*ad!mn&R7P^*W30Zz3;vH$=8 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.class new file mode 100644 index 0000000000000000000000000000000000000000..1e0ae1fed474b9fd0593df8b7c522591f7ccff34 GIT binary patch literal 640 zcmbVJO;5r=5Pe&qwY7>Ls9e1PChmd63xeSCZ}9wg*0;`3o+G(=PzljlS0Ia z2U+$Yy+4 z7?sU>?J-03R!?Ps3U)(y*kPzgDwBgn8cQ>>O)(rrdLojsFv{Xpuv$E+oZ&9ovaAiG z=}{G#PD`h?8X0^Y)4T^Iq0wrux8Z}@3vqx$hG3`{W+LyEExftG?9w{moKh;ZYV^qt zozyw)KA}EghfcS1@qys2d=F_4%BV*fKK2No{;{x+Iw9g)f6}0F;drIROAORH?`XUd X$$^z}DGW-qGGTeItz;ONg literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.class new file mode 100644 index 0000000000000000000000000000000000000000..e24dfd9e076c4d7b80dd0861066b021fd1dc8572 GIT binary patch literal 590 zcmbVIO-lnY5PehEu3fA3qd!1zeqjz$FDpe51ZDBErT1(bYh;_0Y_{Of@+5fh2l%7J zN%d4uHGyQ_n_=F(`TTnS0C0hBj0T}!I8i^&3ZW-zEVS{;&7AUbY@MiHriCrNEJ`It zrK~DdiChQH4yDs_uF4n@;qrey2+b>PwC@w{kFsYum!gzrB69DvnWWi@T?cw*)8io_ zy0K%GU=6J{*3l$%GHujDJuQ?Q1T%!a%#LKaFv0kjjQo?X2-m9$FRdiy35=aCRQ{Oa zoaZ?Sy;W5f_6SLCYd2E2I@stgNuLKj9D>+9;m9}M;I8j`vLo7_3}a#XM#Q|WjTb%ke63>c zE8zu-N0ErU2KR;Hb(vIjWW!>Z>+%QgDIRvb8^0@pm?6_q+UJVkYZKz1M}h9^%b)ft z0UgRv#>Wil@?Mj{I@4|8AdQ?08`Cys7^?qZaNr`B1?}Ks3K<&(hSLf0Mp`svU*8(p zlktO|#v%i|axjmjWYA@XV!8GwQ$02^>{R!f3ID2#HLNq(ZE;7-8rrBlscNGc2$3OQ zlcBgC^n79HSV}MyYC7Pm$&F0nQPPU6SFAkIn-n(47N`Rx atVMWv!q`R*o0M^Xaj-?1gl~sz3Z-vzn9;2O literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/Tipo.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/Tipo.class new file mode 100644 index 0000000000000000000000000000000000000000..c732335d18c753c2fe57bff49d54741feb283f64 GIT binary patch literal 179 zcmYL@Jr06E6olvb17c<2A++%ol=fCe3%tNCJjs%UCCg&s)hs-KhcYge&18yizRc(Q zdIQLjrI-YR&_OB zbt7dUWKPHV#kE4%?)K+DQ3P+g`bbz8ZuF&`jEzh-$qo~h5D4>l3!vy;BAFV}m@}+? D(?~E0 literal 0 HcmV?d00001 From 1e8857e34732da96086fe45600c0d9ab30784a31 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Thu, 30 Aug 2012 19:27:41 -0300 Subject: [PATCH 48/79] commit commit de teste --- .../principal/Interpretador.class | Bin 14051 -> 14051 bytes .../principal/Interpretador.java | 2234 +++++++++-------- 2 files changed, 1118 insertions(+), 1116 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index aba0a23d7ce610f9ea0f5584e4618bbc9e4835af..98e3db5dcf142b32ef51c557cd1662985dabd929 100644 GIT binary patch delta 13 UcmaEy`#5()qZwn& heap = new ArrayList(); - - private static BytecodeAssembler assembler; - - public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { - - public Object create(Token token) { - return new BytecodesAST(token); - } - - public Object dupNode(Object t) { - if ( t==null ) { - return null; - } - return create(((BytecodesAST)t).token); - } - - public Object errorNode(TokenStream input, Token start, Token stop, - RecognitionException e) - { - BytecodesErrorNode t = new BytecodesErrorNode(input, start, stop, e); - return t; - } - - }; - - public static void main(String[] args) { - - try { - - carregar(); - - Interpretador interpretador = new Interpretador(); - - interpretador.cpu(); - - } catch (IOException ioe) { - - System.out.println(ioe.getMessage()); - - } catch (RecognitionException re) { - - System.out.println(re.getMessage()); - - } catch (LabelException le) { - - System.out.println(le.getMessage()); - - } catch (AcessoIndevidoMemoriaException aime) { - - System.out.println(aime.getMessage()); - - } - - - } - - public static void carregar() - throws IOException, RecognitionException, LabelException, - AcessoIndevidoMemoriaException { - - entrada = new StringBuffer(); - - File file = new File(DIRETORIO_FONTE); - - String[] arquivos = file.list(); - - int i; - - for (i = 0; i < arquivos.length; i++){ - - if (arquivos[i].endsWith(".class")) { - - ANTLRFileStream input = - new ANTLRFileStream(DIRETORIO_FONTE+"/"+arquivos[i]); - - entrada.append(input.toString()); - - } - - } - - - tabelaSimbolos = new TabelaSimbolos(); - - assembler = carregarClasses(); - - global = tabelaSimbolos.global; - global.codigo = assembler.obterCodigoMaquina(); - tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); - global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; - - //Para testes - Simbolo classe = tabelaSimbolos.global.resolver("LTeste"); - System.out.println("Classe adicionada:" + classe.nome); - - - } - - public static BytecodeAssembler carregarClasses() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - - BytecodeAssembler parser = null; - - CharStream input = new ANTLRStringStream(entrada.toString()); - - AssemblerLexer lexer = new AssemblerLexer(input); - CommonTokenStream tokens = new CommonTokenStream(lexer); - parser = new BytecodeAssembler(tokens, Definicao.instrucoes); - parser.setTreeAdaptor(bytecodesAdaptor); - RuleReturnScope r = parser.programa(); - CommonTree tree = (CommonTree)r.getTree(); - - CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); - nos.setTokenStream(tokens); - Def def = new Def(nos, tabelaSimbolos); - def.downup(tree); - nos.reset(); - Ref ref = new Ref(nos, tabelaSimbolos, parser); - ref.downup(tree); - - return parser; - - } - - protected void cpu() { - - int op1, op2; - - short opcode; - - boolean desvio; - - Referencia referencia; - - while (ip < tamanhoCodigo) { - - desvio = false; - - opcode = global.codigo[ip]; - - if (opcode < 0) - - opcode = valorEmByte(opcode); - - switch (opcode) { - - // operaçőes de pilha - - case Definicao.NOP: - ; - break; - - case Definicao.POP: - sp-- ; - break; - - case Definicao.POP2: - sp -= 2 ; - break; - - case Definicao.DUP: { - - Referencia ref = (Referencia)pilha[sp]; - - sp++; - - pilha[sp] = ref; - - } - ; - break; - - // operaçőes aritméticas - - case Definicao.INEG: { - - op1 = (Integer) pilha[sp]; - - pilha[sp] = 0 - op1; - - }; - break; - - case Definicao.IADD: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 + op2; - - } - ; - break; - - case Definicao.ISUB: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 - op2; - - } - ; - break; - - case Definicao.IMUL: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 * op2; - - } - ; - break; - - case Definicao.IDIV: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 / op2; - - } - ; - break; - - case Definicao.IREM: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 % op2; - - } - ; - break; - - case Definicao.IINC: { - - op1 = (Integer) pilha[sp]; - - pilha[sp] = ++op1; - - } - ; - break; - - // operaçőes de empilhamento de constantes - - case Definicao.ICONST0: { - - sp++; - - pilha[sp] = 0; - - } - ; - break; - - case Definicao.ICONST1: { - - sp++; - - pilha[sp] = 1; - - } - ; - break; - - case Definicao.ICONST2: { - - sp++; - - pilha[sp] = 2; - - } - ; - break; - - case Definicao.ICONST3: { - - sp++; - - pilha[sp] = 3; - - } - ; - break; - - case Definicao.ICONST4: { - - sp++; - - pilha[sp] = 4; - - } - ; - break; - - case Definicao.ICONST5: { - - sp++; - - pilha[sp] = 5; - - } - ; - break; - - case Definicao.ICONSTM1: { - - sp++; - - pilha[sp] = -1; - - } - ; - break; - - case Definicao.ACONSTNULL: { - - sp++; - - pilha[sp] = new Referencia(null); - - } - ; - break; - - case Definicao.LDC: { - - sp++; - - op1 = obterOperandoInteiro(); - - pilha[sp] = op1; - - } - ; - break; - - // operaçőes de load - - case Definicao.ILOAD0: { - - sp++; - - pilha[sp] = global.memoriaGlobal[0]; - - } - ; - break; - - case Definicao.ILOAD1: { - - sp++; - - pilha[sp] = global.memoriaGlobal[1]; - - } - ; - break; - - case Definicao.ILOAD2: { - - sp++; - - pilha[sp] = global.memoriaGlobal[2]; - - } - ; - break; - - case Definicao.ILOAD3: { - - sp++; - - pilha[sp] = global.memoriaGlobal[3]; - - } - ; - break; - - case Definicao.ILOAD: { - - sp++; - - op1 = obterOperandoInteiro(); - - pilha[sp] = global.memoriaGlobal[op1]; - - } - ; - break; - - case Definicao.ALOAD0: { - - sp++; - - pilha[sp] = global.memoriaGlobal[0]; - - } - ; - break; - - case Definicao.ALOAD1: { - - sp++; - - pilha[sp] = global.memoriaGlobal[1]; - - } - ; - break; - - case Definicao.ALOAD2: { - - sp++; - - pilha[sp] = global.memoriaGlobal[2]; - - } - ; - break; - - case Definicao.ALOAD3: { - - sp++; - - pilha[sp] = global.memoriaGlobal[3]; - - } - ; - break; - - case Definicao.ALOAD: { - - sp++; - - op1 = obterOperandoInteiro(); - - pilha[sp] = global.memoriaGlobal[op1]; - - } - ; - break; - - - // operaçőes de store - - case Definicao.ISTORE0: { - - global.memoriaGlobal[0] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE1: { - - global.memoriaGlobal[1] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE2: { - - global.memoriaGlobal[2] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE3: { - - global.memoriaGlobal[3] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE: { - - op1 = obterOperandoInteiro(); - - global.memoriaGlobal[op1] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE0: { - - global.memoriaGlobal[0] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE1: { - - global.memoriaGlobal[1] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE2: { - - global.memoriaGlobal[2] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE3: { - - global.memoriaGlobal[3] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE: { - - op1 = obterOperandoInteiro(); - - global.memoriaGlobal[op1] = pilha[sp]; - - sp--; - - } - ; - break; - - // operaçőes lógicas - - case Definicao.IAND: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - op1 = op1 & op2; - - sp--; - - } - ; - break; - - case Definicao.IOR: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - op1 = op1 | op2; - - sp--; - - } - ; - break; - - case Definicao.IXOR: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - op1 = op1 ^ op2; - - sp--; - - } - ; - break; - - // operaçőes de desvio condicional - - case Definicao.IFEQ: { - - op1 = (Integer) pilha[sp]; - - if (op1 == 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFNE: { - - op1 = (Integer) pilha[sp]; - - if (op1 != 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFLT: { - - op1 = (Integer) pilha[sp]; - - if (op1 > 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFGE: { - - op1 = (Integer) pilha[sp]; - - if (op1 >= 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFGT: { - - op1 = (Integer) pilha[sp]; - - if (op1 > 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFLE: { - - op1 = (Integer) pilha[sp]; - - if (op1 <= 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPEQ: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 == op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPNE: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 != op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPLT: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 < op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPGE: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 >= op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPGT: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 > op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPLE: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 <= op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - // desvio incondicional - case Definicao.GOTO: { - - op1 = obterOperandoInteiro(); - - ip = op1; - - desvio = true; - - } - ; - break; - - //manipulaçăo de objetos - - case Definicao.NEW: { - - op1 = obterOperandoInteiro(); - - SimboloClasse simboloClasse = assembler.getConstantPool().get(op1); - - Objeto objeto = new Objeto(simboloClasse); - - heap.add(objeto); - - pilha[++sp] = new Referencia(heap.indexOf(objeto)); - - } - - ; - break; - - case Definicao.INVOKESPECIAL: { - - sp--; - - ip += 4; - - } - - ; - break; - - case Definicao.GETFIELD: { - - referencia = (Referencia)pilha[sp]; - - Objeto objeto = heap.get(referencia.getEndereco()); - - op1 = obterOperandoInteiro(); - - pilha[sp] = null; - - pilha[sp] = objeto.getMemoriaLocal()[op1]; - - } - - ; - break; - - case Definicao.PUTFIELD: { - - referencia = (Referencia)pilha[sp - 1]; - - Objeto objeto = heap.get(referencia.getEndereco()); - - op1 = obterOperandoInteiro(); - - objeto.getMemoriaLocal()[op1] = pilha[sp--]; - - } - - ; - break; - - } - - if (!desvio) - - ip++; - - // Para testes - exibirTela(); - - } - - } - - protected void desviar() { - - pilha[sp] = 1; - - int op = obterOperandoInteiro(); - - ip = op; - - } - - protected int obterOperandoInteiro() { - - int op = BytecodeAssembler.obterInteiro(global.codigo, ip + 1); - - ip += 4; - - return op; - - } - - protected short valorEmByte(short a) { - - return (short) (128 + (128 + a)); - - } - - // Usado somente para testes - protected void exibirTela() { - - int i; - - System.out.println("IP: " + ip); - - System.out.println("SP: " + sp); - - System.out.print("Memória do código: "); - - for (i = 0; i < global.codigo.length; i++) - - System.out.print(global.codigo[i] + " "); - - System.out.print("\n"); - - System.out.print("Memória global das variáveis: "); - - for (i = 0; i < global.memoriaGlobal.length; i++) - - System.out.print(global.memoriaGlobal[i] + " "); - - System.out.print("\n"); - - System.out.print("Pilha: "); - - for (i = 0; i < pilha.length; i++) - - System.out.print(pilha[i] + " "); - - System.out.print("\n\n"); - - System.out - .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); - - Scanner in = new Scanner(System.in); - - in.next(); - - } - -} +package br.ufpb.iged.interpretador.principal; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +import org.antlr.runtime.ANTLRFileStream; +import org.antlr.runtime.ANTLRStringStream; +import org.antlr.runtime.CharStream; +import org.antlr.runtime.CommonTokenStream; +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.RuleReturnScope; +import org.antlr.runtime.Token; +import org.antlr.runtime.TokenStream; +import org.antlr.runtime.tree.CommonTree; +import org.antlr.runtime.tree.CommonTreeNodeStream; +import org.antlr.runtime.tree.TreeAdaptor; +import org.antlr.runtime.tree.CommonTreeAdaptor; + +import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; +import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; +import br.ufpb.iged.interpretador.parser.AssemblerLexer; +import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; +import br.ufpb.iged.interpretador.excecoes.LabelException; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesErrorNode; +import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; +import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +import br.ufpb.iged.interpretador.parser.Def; +import br.ufpb.iged.interpretador.parser.Ref; + +public class Interpretador { + + public static final int TAMANHO_INICIAL_PILHA = 100; + + private static final String DIRETORIO_FONTE = "./classes"; + + public int sp = -1; + + public int ip = 0; + + private static int tamanhoCodigo; + + public Object[] pilha = new Object[TAMANHO_INICIAL_PILHA]; + + public static TabelaSimbolos tabelaSimbolos; + + static EscopoGlobal global; + + private static StringBuffer entrada; + + public List heap = new ArrayList(); + + private static BytecodeAssembler assembler; + + public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { + + public Object create(Token token) { + return new BytecodesAST(token); + } + + public Object dupNode(Object t) { + if ( t==null ) { + return null; + } + return create(((BytecodesAST)t).token); + } + + public Object errorNode(TokenStream input, Token start, Token stop, + RecognitionException e) + { + BytecodesErrorNode t = new BytecodesErrorNode(input, start, stop, e); + return t; + } + + }; + + public static void main(String[] args) { + + try { + + carregar(); + + Interpretador interpretador = new Interpretador(); + + interpretador.cpu(); + + } catch (IOException ioe) { + + System.out.println(ioe.getMessage()); + + } catch (RecognitionException re) { + + System.out.println(re.getMessage()); + + } catch (LabelException le) { + + System.out.println(le.getMessage()); + + } catch (AcessoIndevidoMemoriaException aime) { + + System.out.println(aime.getMessage()); + + } + + + } + + public static void carregar() + throws IOException, RecognitionException, LabelException, + AcessoIndevidoMemoriaException { + + entrada = new StringBuffer(); + + File file = new File(DIRETORIO_FONTE); + + String[] arquivos = file.list(); + + int i; + + for (i = 0; i < arquivos.length; i++){ + + if (arquivos[i].endsWith(".class")) { + + ANTLRFileStream input = + new ANTLRFileStream(DIRETORIO_FONTE+"/"+arquivos[i]); + + entrada.append(input.toString()); + + } + + } + + + tabelaSimbolos = new TabelaSimbolos(); + + assembler = carregarClasses(); + + global = tabelaSimbolos.global; + global.codigo = assembler.obterCodigoMaquina(); + tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); + global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; + + //Para testes + Simbolo classe = tabelaSimbolos.global.resolver("LTeste"); + System.out.println("Classe adicionada:" + classe.nome); + + + } + + public static BytecodeAssembler carregarClasses() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + + BytecodeAssembler parser = null; + + CharStream input = new ANTLRStringStream(entrada.toString()); + + AssemblerLexer lexer = new AssemblerLexer(input); + CommonTokenStream tokens = new CommonTokenStream(lexer); + parser = new BytecodeAssembler(tokens, Definicao.instrucoes); + parser.setTreeAdaptor(bytecodesAdaptor); + RuleReturnScope r = parser.programa(); + CommonTree tree = (CommonTree)r.getTree(); + + CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); + nos.setTokenStream(tokens); + Def def = new Def(nos, tabelaSimbolos); + def.downup(tree); + nos.reset(); + Ref ref = new Ref(nos, tabelaSimbolos, parser); + ref.downup(tree); + + return parser; + + } + + protected void cpu() { + + int op1, op2; + + short opcode; + + boolean desvio; + + Referencia referencia; + + while (ip < tamanhoCodigo) { + + desvio = false; + + opcode = global.codigo[ip]; + + if (opcode < 0) + + opcode = valorEmByte(opcode); + + switch (opcode) { + + // operaçőes de pilha + + case Definicao.NOP: + ; + break; + + case Definicao.POP: + sp-- ; + break; + + case Definicao.POP2: + sp -= 2 ; + break; + + case Definicao.DUP: { + + Referencia ref = (Referencia)pilha[sp]; + + sp++; + + pilha[sp] = ref; + + } + ; + break; + + // operaçőes aritméticas + + case Definicao.INEG: { + + op1 = (Integer) pilha[sp]; + + pilha[sp] = 0 - op1; + + }; + break; + + case Definicao.IADD: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 + op2; + + } + ; + break; + + case Definicao.ISUB: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 - op2; + + } + ; + break; + + case Definicao.IMUL: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 * op2; + + } + ; + break; + + case Definicao.IDIV: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 / op2; + + } + ; + break; + + case Definicao.IREM: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 % op2; + + } + ; + break; + + case Definicao.IINC: { + + op1 = (Integer) pilha[sp]; + + pilha[sp] = ++op1; + + } + ; + break; + + // operaçőes de empilhamento de constantes + + case Definicao.ICONST0: { + + sp++; + + pilha[sp] = 0; + + } + ; + break; + + case Definicao.ICONST1: { + + sp++; + + pilha[sp] = 1; + + } + ; + break; + + case Definicao.ICONST2: { + + sp++; + + pilha[sp] = 2; + + } + ; + break; + + case Definicao.ICONST3: { + + sp++; + + pilha[sp] = 3; + + } + ; + break; + + case Definicao.ICONST4: { + + sp++; + + pilha[sp] = 4; + + } + ; + break; + + case Definicao.ICONST5: { + + sp++; + + pilha[sp] = 5; + + } + ; + break; + + case Definicao.ICONSTM1: { + + sp++; + + pilha[sp] = -1; + + } + ; + break; + + case Definicao.ACONSTNULL: { + + sp++; + + pilha[sp] = new Referencia(null); + + } + ; + break; + + case Definicao.LDC: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilha[sp] = op1; + + } + ; + break; + + // operaçőes de load + + case Definicao.ILOAD0: { + + sp++; + + pilha[sp] = global.memoriaGlobal[0]; + + } + ; + break; + + case Definicao.ILOAD1: { + + sp++; + + pilha[sp] = global.memoriaGlobal[1]; + + } + ; + break; + + case Definicao.ILOAD2: { + + sp++; + + pilha[sp] = global.memoriaGlobal[2]; + + } + ; + break; + + case Definicao.ILOAD3: { + + sp++; + + pilha[sp] = global.memoriaGlobal[3]; + + } + ; + break; + + case Definicao.ILOAD: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilha[sp] = global.memoriaGlobal[op1]; + + } + ; + break; + + case Definicao.ALOAD0: { + + sp++; + + pilha[sp] = global.memoriaGlobal[0]; + + } + ; + break; + + case Definicao.ALOAD1: { + + sp++; + + pilha[sp] = global.memoriaGlobal[1]; + + } + ; + break; + + case Definicao.ALOAD2: { + + sp++; + + pilha[sp] = global.memoriaGlobal[2]; + + } + ; + break; + + case Definicao.ALOAD3: { + + sp++; + + pilha[sp] = global.memoriaGlobal[3]; + + } + ; + break; + + case Definicao.ALOAD: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilha[sp] = global.memoriaGlobal[op1]; + + } + ; + break; + + + // operaçőes de store + + case Definicao.ISTORE0: { + + global.memoriaGlobal[0] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE1: { + + global.memoriaGlobal[1] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE2: { + + global.memoriaGlobal[2] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE3: { + + global.memoriaGlobal[3] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE: { + + op1 = obterOperandoInteiro(); + + global.memoriaGlobal[op1] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE0: { + + global.memoriaGlobal[0] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE1: { + + global.memoriaGlobal[1] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE2: { + + global.memoriaGlobal[2] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE3: { + + global.memoriaGlobal[3] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE: { + + op1 = obterOperandoInteiro(); + + global.memoriaGlobal[op1] = pilha[sp]; + + sp--; + + } + ; + break; + + // operaçőes lógicas + + case Definicao.IAND: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + op1 = op1 & op2; + + sp--; + + } + ; + break; + + case Definicao.IOR: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + op1 = op1 | op2; + + sp--; + + } + ; + break; + + case Definicao.IXOR: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + op1 = op1 ^ op2; + + sp--; + + } + ; + break; + + // operaçőes de desvio condicional + + case Definicao.IFEQ: { + + op1 = (Integer) pilha[sp]; + + if (op1 == 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFNE: { + + op1 = (Integer) pilha[sp]; + + if (op1 != 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFLT: { + + op1 = (Integer) pilha[sp]; + + if (op1 > 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFGE: { + + op1 = (Integer) pilha[sp]; + + if (op1 >= 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFGT: { + + op1 = (Integer) pilha[sp]; + + if (op1 > 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFLE: { + + op1 = (Integer) pilha[sp]; + + if (op1 <= 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPEQ: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 == op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPNE: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 != op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPLT: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 < op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPGE: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 >= op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPGT: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 > op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPLE: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 <= op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + // desvio incondicional + case Definicao.GOTO: { + + op1 = obterOperandoInteiro(); + + ip = op1; + + desvio = true; + + } + ; + break; + + //manipulaçăo de objetos + + case Definicao.NEW: { + + op1 = obterOperandoInteiro(); + + SimboloClasse simboloClasse = assembler.getConstantPool().get(op1); + + Objeto objeto = new Objeto(simboloClasse); + + heap.add(objeto); + + pilha[++sp] = new Referencia(heap.indexOf(objeto)); + + } + + ; + break; + + case Definicao.INVOKESPECIAL: { + + sp--; + + ip += 4; + + } + + ; + break; + + case Definicao.GETFIELD: { + + referencia = (Referencia)pilha[sp]; + + Objeto objeto = heap.get(referencia.getEndereco()); + + op1 = obterOperandoInteiro(); + + pilha[sp] = null; + + pilha[sp] = objeto.getMemoriaLocal()[op1]; + + } + + ; + break; + + case Definicao.PUTFIELD: { + + referencia = (Referencia)pilha[sp - 1]; + + Objeto objeto = heap.get(referencia.getEndereco()); + + op1 = obterOperandoInteiro(); + + objeto.getMemoriaLocal()[op1] = pilha[sp--]; + + } + + ; + break; + + } + + if (!desvio) + + ip++; + + // Para testes + exibirTela(); + + } + + } + + protected void desviar() { + + pilha[sp] = 1; + + int op = obterOperandoInteiro(); + + ip = op; + + } + + protected int obterOperandoInteiro() { + + int op = BytecodeAssembler.obterInteiro(global.codigo, ip + 1); + + ip += 4; + + return op; + + } + + protected short valorEmByte(short a) { + + return (short) (128 + (128 + a)); + + } + + // Usado somente para testes + protected void exibirTela() { + + int i; + + System.out.println("IP: " + ip); + + System.out.println("SP: " + sp); + + System.out.print("Memória do código: "); + + for (i = 0; i < global.codigo.length; i++) + + System.out.print(global.codigo[i] + " "); + + System.out.print("\n"); + + System.out.print("Memória global das variáveis: "); + + for (i = 0; i < global.memoriaGlobal.length; i++) + + System.out.print(global.memoriaGlobal[i] + " "); + + System.out.print("\n"); + + System.out.print("Pilha: "); + + for (i = 0; i < pilha.length; i++) + + System.out.print(pilha[i] + " "); + + System.out.print("\n\n"); + + System.out + .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); + + Scanner in = new Scanner(System.in); + + in.next(); + + //testetesteteste + + } + +} From 4322eabd0d11b3faa25e25fbd04d61a010f5eabc Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Thu, 30 Aug 2012 19:33:36 -0300 Subject: [PATCH 49/79] commmit --- .../principal/Interpretador.class | Bin 14051 -> 14051 bytes .../principal/Interpretador.java | 2235 ++++++++--------- 2 files changed, 1117 insertions(+), 1118 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 98e3db5dcf142b32ef51c557cd1662985dabd929..f47a85477e087de414d007534b19fc8c33b40b1e 100644 GIT binary patch delta 13 UcmaEy`#5()qZwoL heap = new ArrayList(); - - private static BytecodeAssembler assembler; - - public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { - - public Object create(Token token) { - return new BytecodesAST(token); - } - - public Object dupNode(Object t) { - if ( t==null ) { - return null; - } - return create(((BytecodesAST)t).token); - } - - public Object errorNode(TokenStream input, Token start, Token stop, - RecognitionException e) - { - BytecodesErrorNode t = new BytecodesErrorNode(input, start, stop, e); - return t; - } - - }; - - public static void main(String[] args) { - - try { - - carregar(); - - Interpretador interpretador = new Interpretador(); - - interpretador.cpu(); - - } catch (IOException ioe) { - - System.out.println(ioe.getMessage()); - - } catch (RecognitionException re) { - - System.out.println(re.getMessage()); - - } catch (LabelException le) { - - System.out.println(le.getMessage()); - - } catch (AcessoIndevidoMemoriaException aime) { - - System.out.println(aime.getMessage()); - - } - - - } - - public static void carregar() - throws IOException, RecognitionException, LabelException, - AcessoIndevidoMemoriaException { - - entrada = new StringBuffer(); - - File file = new File(DIRETORIO_FONTE); - - String[] arquivos = file.list(); - - int i; - - for (i = 0; i < arquivos.length; i++){ - - if (arquivos[i].endsWith(".class")) { - - ANTLRFileStream input = - new ANTLRFileStream(DIRETORIO_FONTE+"/"+arquivos[i]); - - entrada.append(input.toString()); - - } - - } - - - tabelaSimbolos = new TabelaSimbolos(); - - assembler = carregarClasses(); - - global = tabelaSimbolos.global; - global.codigo = assembler.obterCodigoMaquina(); - tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); - global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; - - //Para testes - Simbolo classe = tabelaSimbolos.global.resolver("LTeste"); - System.out.println("Classe adicionada:" + classe.nome); - - - } - - public static BytecodeAssembler carregarClasses() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { - - BytecodeAssembler parser = null; - - CharStream input = new ANTLRStringStream(entrada.toString()); - - AssemblerLexer lexer = new AssemblerLexer(input); - CommonTokenStream tokens = new CommonTokenStream(lexer); - parser = new BytecodeAssembler(tokens, Definicao.instrucoes); - parser.setTreeAdaptor(bytecodesAdaptor); - RuleReturnScope r = parser.programa(); - CommonTree tree = (CommonTree)r.getTree(); - - CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); - nos.setTokenStream(tokens); - Def def = new Def(nos, tabelaSimbolos); - def.downup(tree); - nos.reset(); - Ref ref = new Ref(nos, tabelaSimbolos, parser); - ref.downup(tree); - - return parser; - - } - - protected void cpu() { - - int op1, op2; - - short opcode; - - boolean desvio; - - Referencia referencia; - - while (ip < tamanhoCodigo) { - - desvio = false; - - opcode = global.codigo[ip]; - - if (opcode < 0) - - opcode = valorEmByte(opcode); - - switch (opcode) { - - // operaçőes de pilha - - case Definicao.NOP: - ; - break; - - case Definicao.POP: - sp-- ; - break; - - case Definicao.POP2: - sp -= 2 ; - break; - - case Definicao.DUP: { - - Referencia ref = (Referencia)pilha[sp]; - - sp++; - - pilha[sp] = ref; - - } - ; - break; - - // operaçőes aritméticas - - case Definicao.INEG: { - - op1 = (Integer) pilha[sp]; - - pilha[sp] = 0 - op1; - - }; - break; - - case Definicao.IADD: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 + op2; - - } - ; - break; - - case Definicao.ISUB: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 - op2; - - } - ; - break; - - case Definicao.IMUL: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 * op2; - - } - ; - break; - - case Definicao.IDIV: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 / op2; - - } - ; - break; - - case Definicao.IREM: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - pilha[sp] = op1 % op2; - - } - ; - break; - - case Definicao.IINC: { - - op1 = (Integer) pilha[sp]; - - pilha[sp] = ++op1; - - } - ; - break; - - // operaçőes de empilhamento de constantes - - case Definicao.ICONST0: { - - sp++; - - pilha[sp] = 0; - - } - ; - break; - - case Definicao.ICONST1: { - - sp++; - - pilha[sp] = 1; - - } - ; - break; - - case Definicao.ICONST2: { - - sp++; - - pilha[sp] = 2; - - } - ; - break; - - case Definicao.ICONST3: { - - sp++; - - pilha[sp] = 3; - - } - ; - break; - - case Definicao.ICONST4: { - - sp++; - - pilha[sp] = 4; - - } - ; - break; - - case Definicao.ICONST5: { - - sp++; - - pilha[sp] = 5; - - } - ; - break; - - case Definicao.ICONSTM1: { - - sp++; - - pilha[sp] = -1; - - } - ; - break; - - case Definicao.ACONSTNULL: { - - sp++; - - pilha[sp] = new Referencia(null); - - } - ; - break; - - case Definicao.LDC: { - - sp++; - - op1 = obterOperandoInteiro(); - - pilha[sp] = op1; - - } - ; - break; - - // operaçőes de load - - case Definicao.ILOAD0: { - - sp++; - - pilha[sp] = global.memoriaGlobal[0]; - - } - ; - break; - - case Definicao.ILOAD1: { - - sp++; - - pilha[sp] = global.memoriaGlobal[1]; - - } - ; - break; - - case Definicao.ILOAD2: { - - sp++; - - pilha[sp] = global.memoriaGlobal[2]; - - } - ; - break; - - case Definicao.ILOAD3: { - - sp++; - - pilha[sp] = global.memoriaGlobal[3]; - - } - ; - break; - - case Definicao.ILOAD: { - - sp++; - - op1 = obterOperandoInteiro(); - - pilha[sp] = global.memoriaGlobal[op1]; - - } - ; - break; - - case Definicao.ALOAD0: { - - sp++; - - pilha[sp] = global.memoriaGlobal[0]; - - } - ; - break; - - case Definicao.ALOAD1: { - - sp++; - - pilha[sp] = global.memoriaGlobal[1]; - - } - ; - break; - - case Definicao.ALOAD2: { - - sp++; - - pilha[sp] = global.memoriaGlobal[2]; - - } - ; - break; - - case Definicao.ALOAD3: { - - sp++; - - pilha[sp] = global.memoriaGlobal[3]; - - } - ; - break; - - case Definicao.ALOAD: { - - sp++; - - op1 = obterOperandoInteiro(); - - pilha[sp] = global.memoriaGlobal[op1]; - - } - ; - break; - - - // operaçőes de store - - case Definicao.ISTORE0: { - - global.memoriaGlobal[0] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE1: { - - global.memoriaGlobal[1] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE2: { - - global.memoriaGlobal[2] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE3: { - - global.memoriaGlobal[3] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ISTORE: { - - op1 = obterOperandoInteiro(); - - global.memoriaGlobal[op1] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE0: { - - global.memoriaGlobal[0] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE1: { - - global.memoriaGlobal[1] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE2: { - - global.memoriaGlobal[2] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE3: { - - global.memoriaGlobal[3] = pilha[sp]; - - sp--; - - } - ; - break; - - case Definicao.ASTORE: { - - op1 = obterOperandoInteiro(); - - global.memoriaGlobal[op1] = pilha[sp]; - - sp--; - - } - ; - break; - - // operaçőes lógicas - - case Definicao.IAND: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - op1 = op1 & op2; - - sp--; - - } - ; - break; - - case Definicao.IOR: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - op1 = op1 | op2; - - sp--; - - } - ; - break; - - case Definicao.IXOR: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - op1 = op1 ^ op2; - - sp--; - - } - ; - break; - - // operaçőes de desvio condicional - - case Definicao.IFEQ: { - - op1 = (Integer) pilha[sp]; - - if (op1 == 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFNE: { - - op1 = (Integer) pilha[sp]; - - if (op1 != 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFLT: { - - op1 = (Integer) pilha[sp]; - - if (op1 > 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFGE: { - - op1 = (Integer) pilha[sp]; - - if (op1 >= 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFGT: { - - op1 = (Integer) pilha[sp]; - - if (op1 > 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IFLE: { - - op1 = (Integer) pilha[sp]; - - if (op1 <= 0) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPEQ: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 == op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPNE: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 != op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPLT: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 < op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPGE: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 >= op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPGT: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 > op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - case Definicao.IF_ICMPLE: { - - op1 = (Integer) pilha[sp - 1]; - - op2 = (Integer) pilha[sp]; - - sp--; - - if (op1 <= op2) { - - desviar(); - - desvio = true; - - } else { - - pilha[sp] = 0; - - ip += 4; - - } - - } - ; - break; - - // desvio incondicional - case Definicao.GOTO: { - - op1 = obterOperandoInteiro(); - - ip = op1; - - desvio = true; - - } - ; - break; - - //manipulaçăo de objetos - - case Definicao.NEW: { - - op1 = obterOperandoInteiro(); - - SimboloClasse simboloClasse = assembler.getConstantPool().get(op1); - - Objeto objeto = new Objeto(simboloClasse); - - heap.add(objeto); - - pilha[++sp] = new Referencia(heap.indexOf(objeto)); - - } - - ; - break; - - case Definicao.INVOKESPECIAL: { - - sp--; - - ip += 4; - - } - - ; - break; - - case Definicao.GETFIELD: { - - referencia = (Referencia)pilha[sp]; - - Objeto objeto = heap.get(referencia.getEndereco()); - - op1 = obterOperandoInteiro(); - - pilha[sp] = null; - - pilha[sp] = objeto.getMemoriaLocal()[op1]; - - } - - ; - break; - - case Definicao.PUTFIELD: { - - referencia = (Referencia)pilha[sp - 1]; - - Objeto objeto = heap.get(referencia.getEndereco()); - - op1 = obterOperandoInteiro(); - - objeto.getMemoriaLocal()[op1] = pilha[sp--]; - - } - - ; - break; - - } - - if (!desvio) - - ip++; - - // Para testes - exibirTela(); - - } - - } - - protected void desviar() { - - pilha[sp] = 1; - - int op = obterOperandoInteiro(); - - ip = op; - - } - - protected int obterOperandoInteiro() { - - int op = BytecodeAssembler.obterInteiro(global.codigo, ip + 1); - - ip += 4; - - return op; - - } - - protected short valorEmByte(short a) { - - return (short) (128 + (128 + a)); - - } - - // Usado somente para testes - protected void exibirTela() { - - int i; - - System.out.println("IP: " + ip); - - System.out.println("SP: " + sp); - - System.out.print("Memória do código: "); - - for (i = 0; i < global.codigo.length; i++) - - System.out.print(global.codigo[i] + " "); - - System.out.print("\n"); - - System.out.print("Memória global das variáveis: "); - - for (i = 0; i < global.memoriaGlobal.length; i++) - - System.out.print(global.memoriaGlobal[i] + " "); - - System.out.print("\n"); - - System.out.print("Pilha: "); - - for (i = 0; i < pilha.length; i++) - - System.out.print(pilha[i] + " "); - - System.out.print("\n\n"); - - System.out - .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); - - Scanner in = new Scanner(System.in); - - in.next(); - - //testetesteteste - - } - -} +package br.ufpb.iged.interpretador.principal; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +import org.antlr.runtime.ANTLRFileStream; +import org.antlr.runtime.ANTLRStringStream; +import org.antlr.runtime.CharStream; +import org.antlr.runtime.CommonTokenStream; +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.RuleReturnScope; +import org.antlr.runtime.Token; +import org.antlr.runtime.TokenStream; +import org.antlr.runtime.tree.CommonTree; +import org.antlr.runtime.tree.CommonTreeNodeStream; +import org.antlr.runtime.tree.TreeAdaptor; +import org.antlr.runtime.tree.CommonTreeAdaptor; + +import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; +import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; +import br.ufpb.iged.interpretador.parser.AssemblerLexer; +import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; +import br.ufpb.iged.interpretador.excecoes.LabelException; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesErrorNode; +import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; +import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +import br.ufpb.iged.interpretador.parser.Def; +import br.ufpb.iged.interpretador.parser.Ref; + +public class Interpretador { + + public static final int TAMANHO_INICIAL_PILHA = 100; + + private static final String DIRETORIO_FONTE = "./classes"; + + public int sp = -1; + + public int ip = 0; + + private static int tamanhoCodigo; + + public Object[] pilha = new Object[TAMANHO_INICIAL_PILHA]; + + public static TabelaSimbolos tabelaSimbolos; + + static EscopoGlobal global; + + private static StringBuffer entrada; + + public List heap = new ArrayList(); + + private static BytecodeAssembler assembler; + + public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { + + public Object create(Token token) { + return new BytecodesAST(token); + } + + public Object dupNode(Object t) { + if ( t==null ) { + return null; + } + return create(((BytecodesAST)t).token); + } + + public Object errorNode(TokenStream input, Token start, Token stop, + RecognitionException e) + { + BytecodesErrorNode t = new BytecodesErrorNode(input, start, stop, e); + return t; + } + + }; + + public static void main(String[] args) { + + try { + + carregar(); + + Interpretador interpretador = new Interpretador(); + + interpretador.cpu(); + + } catch (IOException ioe) { + + System.out.println(ioe.getMessage()); + + } catch (RecognitionException re) { + + System.out.println(re.getMessage()); + + } catch (LabelException le) { + + System.out.println(le.getMessage()); + + } catch (AcessoIndevidoMemoriaException aime) { + + System.out.println(aime.getMessage()); + + } + + + } + + public static void carregar() + throws IOException, RecognitionException, LabelException, + AcessoIndevidoMemoriaException { + + entrada = new StringBuffer(); + + File file = new File(DIRETORIO_FONTE); + + String[] arquivos = file.list(); + + int i; + + for (i = 0; i < arquivos.length; i++){ + + if (arquivos[i].endsWith(".class")) { + + ANTLRFileStream input = + new ANTLRFileStream(DIRETORIO_FONTE+"/"+arquivos[i]); + + entrada.append(input.toString()); + + } + + } + + + tabelaSimbolos = new TabelaSimbolos(); + + assembler = carregarClasses(); + + global = tabelaSimbolos.global; + global.codigo = assembler.obterCodigoMaquina(); + tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); + global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; + + //Para testes + Simbolo classe = tabelaSimbolos.global.resolver("LTeste"); + System.out.println("Classe adicionada:" + classe.nome); + + + } + + public static BytecodeAssembler carregarClasses() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + + BytecodeAssembler parser = null; + + CharStream input = new ANTLRStringStream(entrada.toString()); + + AssemblerLexer lexer = new AssemblerLexer(input); + CommonTokenStream tokens = new CommonTokenStream(lexer); + parser = new BytecodeAssembler(tokens, Definicao.instrucoes); + parser.setTreeAdaptor(bytecodesAdaptor); + RuleReturnScope r = parser.programa(); + CommonTree tree = (CommonTree)r.getTree(); + + CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); + nos.setTokenStream(tokens); + Def def = new Def(nos, tabelaSimbolos); + def.downup(tree); + nos.reset(); + Ref ref = new Ref(nos, tabelaSimbolos, parser); + ref.downup(tree); + + return parser; + + } + + protected void cpu() { + + int op1, op2; + + short opcode; + + boolean desvio; + + Referencia referencia; + + while (ip < tamanhoCodigo) { + + desvio = false; + + opcode = global.codigo[ip]; + + if (opcode < 0) + + opcode = valorEmByte(opcode); + + switch (opcode) { + + // operaçőes de pilha + + case Definicao.NOP: + ; + break; + + case Definicao.POP: + sp-- ; + break; + + case Definicao.POP2: + sp -= 2 ; + break; + + case Definicao.DUP: { + + Referencia ref = (Referencia)pilha[sp]; + + sp++; + + pilha[sp] = ref; + + } + ; + break; + + // operaçőes aritméticas + + case Definicao.INEG: { + + op1 = (Integer) pilha[sp]; + + pilha[sp] = 0 - op1; + + }; + break; + + case Definicao.IADD: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 + op2; + + } + ; + break; + + case Definicao.ISUB: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 - op2; + + } + ; + break; + + case Definicao.IMUL: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 * op2; + + } + ; + break; + + case Definicao.IDIV: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 / op2; + + } + ; + break; + + case Definicao.IREM: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + pilha[sp] = op1 % op2; + + } + ; + break; + + case Definicao.IINC: { + + op1 = (Integer) pilha[sp]; + + pilha[sp] = ++op1; + + } + ; + break; + + // operaçőes de empilhamento de constantes + + case Definicao.ICONST0: { + + sp++; + + pilha[sp] = 0; + + } + ; + break; + + case Definicao.ICONST1: { + + sp++; + + pilha[sp] = 1; + + } + ; + break; + + case Definicao.ICONST2: { + + sp++; + + pilha[sp] = 2; + + } + ; + break; + + case Definicao.ICONST3: { + + sp++; + + pilha[sp] = 3; + + } + ; + break; + + case Definicao.ICONST4: { + + sp++; + + pilha[sp] = 4; + + } + ; + break; + + case Definicao.ICONST5: { + + sp++; + + pilha[sp] = 5; + + } + ; + break; + + case Definicao.ICONSTM1: { + + sp++; + + pilha[sp] = -1; + + } + ; + break; + + case Definicao.ACONSTNULL: { + + sp++; + + pilha[sp] = new Referencia(null); + + } + ; + break; + + case Definicao.LDC: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilha[sp] = op1; + + } + ; + break; + + // operaçőes de load + + case Definicao.ILOAD0: { + + sp++; + + pilha[sp] = global.memoriaGlobal[0]; + + } + ; + break; + + case Definicao.ILOAD1: { + + sp++; + + pilha[sp] = global.memoriaGlobal[1]; + + } + ; + break; + + case Definicao.ILOAD2: { + + sp++; + + pilha[sp] = global.memoriaGlobal[2]; + + } + ; + break; + + case Definicao.ILOAD3: { + + sp++; + + pilha[sp] = global.memoriaGlobal[3]; + + } + ; + break; + + case Definicao.ILOAD: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilha[sp] = global.memoriaGlobal[op1]; + + } + ; + break; + + case Definicao.ALOAD0: { + + sp++; + + pilha[sp] = global.memoriaGlobal[0]; + + } + ; + break; + + case Definicao.ALOAD1: { + + sp++; + + pilha[sp] = global.memoriaGlobal[1]; + + } + ; + break; + + case Definicao.ALOAD2: { + + sp++; + + pilha[sp] = global.memoriaGlobal[2]; + + } + ; + break; + + case Definicao.ALOAD3: { + + sp++; + + pilha[sp] = global.memoriaGlobal[3]; + + } + ; + break; + + case Definicao.ALOAD: { + + sp++; + + op1 = obterOperandoInteiro(); + + pilha[sp] = global.memoriaGlobal[op1]; + + } + ; + break; + + + // operaçőes de store + + case Definicao.ISTORE0: { + + global.memoriaGlobal[0] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE1: { + + global.memoriaGlobal[1] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE2: { + + global.memoriaGlobal[2] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE3: { + + global.memoriaGlobal[3] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ISTORE: { + + op1 = obterOperandoInteiro(); + + global.memoriaGlobal[op1] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE0: { + + global.memoriaGlobal[0] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE1: { + + global.memoriaGlobal[1] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE2: { + + global.memoriaGlobal[2] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE3: { + + global.memoriaGlobal[3] = pilha[sp]; + + sp--; + + } + ; + break; + + case Definicao.ASTORE: { + + op1 = obterOperandoInteiro(); + + global.memoriaGlobal[op1] = pilha[sp]; + + sp--; + + } + ; + break; + + // operaçőes lógicas + + case Definicao.IAND: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + op1 = op1 & op2; + + sp--; + + } + ; + break; + + case Definicao.IOR: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + op1 = op1 | op2; + + sp--; + + } + ; + break; + + case Definicao.IXOR: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + op1 = op1 ^ op2; + + sp--; + + } + ; + break; + + // operaçőes de desvio condicional + + case Definicao.IFEQ: { + + op1 = (Integer) pilha[sp]; + + if (op1 == 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFNE: { + + op1 = (Integer) pilha[sp]; + + if (op1 != 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFLT: { + + op1 = (Integer) pilha[sp]; + + if (op1 > 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFGE: { + + op1 = (Integer) pilha[sp]; + + if (op1 >= 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFGT: { + + op1 = (Integer) pilha[sp]; + + if (op1 > 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IFLE: { + + op1 = (Integer) pilha[sp]; + + if (op1 <= 0) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPEQ: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 == op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPNE: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 != op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPLT: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 < op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPGE: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 >= op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPGT: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 > op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + case Definicao.IF_ICMPLE: { + + op1 = (Integer) pilha[sp - 1]; + + op2 = (Integer) pilha[sp]; + + sp--; + + if (op1 <= op2) { + + desviar(); + + desvio = true; + + } else { + + pilha[sp] = 0; + + ip += 4; + + } + + } + ; + break; + + // desvio incondicional + case Definicao.GOTO: { + + op1 = obterOperandoInteiro(); + + ip = op1; + + desvio = true; + + } + ; + break; + + //manipulaçăo de objetos + + case Definicao.NEW: { + + op1 = obterOperandoInteiro(); + + SimboloClasse simboloClasse = assembler.getConstantPool().get(op1); + + Objeto objeto = new Objeto(simboloClasse); + + heap.add(objeto); + + pilha[++sp] = new Referencia(heap.indexOf(objeto)); + + } + + ; + break; + + case Definicao.INVOKESPECIAL: { + + sp--; + + ip += 4; + + } + + ; + break; + + case Definicao.GETFIELD: { + + referencia = (Referencia)pilha[sp]; + + Objeto objeto = heap.get(referencia.getEndereco()); + + op1 = obterOperandoInteiro(); + + pilha[sp] = null; + + pilha[sp] = objeto.getMemoriaLocal()[op1]; + + } + + ; + break; + + case Definicao.PUTFIELD: { + + referencia = (Referencia)pilha[sp - 1]; + + Objeto objeto = heap.get(referencia.getEndereco()); + + op1 = obterOperandoInteiro(); + + objeto.getMemoriaLocal()[op1] = pilha[sp--]; + + } + + ; + break; + + } + + if (!desvio) + + ip++; + + // Para testes + exibirTela(); + + } + + } + + protected void desviar() { + + pilha[sp] = 1; + + int op = obterOperandoInteiro(); + + ip = op; + + } + + protected int obterOperandoInteiro() { + + int op = BytecodeAssembler.obterInteiro(global.codigo, ip + 1); + + ip += 4; + + return op; + + } + + protected short valorEmByte(short a) { + + return (short) (128 + (128 + a)); + + } + + // Usado somente para testes + protected void exibirTela() { + + int i; + + System.out.println("IP: " + ip); + + System.out.println("SP: " + sp); + + System.out.print("Memória do código: "); + + for (i = 0; i < global.codigo.length; i++) + + System.out.print(global.codigo[i] + " "); + + System.out.print("\n"); + + System.out.print("Memória global das variáveis: "); + + for (i = 0; i < global.memoriaGlobal.length; i++) + + System.out.print(global.memoriaGlobal[i] + " "); + + System.out.print("\n"); + + System.out.print("Pilha: "); + + for (i = 0; i < pilha.length; i++) + + System.out.print(pilha[i] + " "); + + System.out.print("\n\n"); + + System.out + .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); + + Scanner in = new Scanner(System.in); + + in.next(); + + + } + +} From c90e5c4fa0f9c8e9a1891abc79270d9bcd7bf84b Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 3 Sep 2012 16:47:14 -0300 Subject: [PATCH 50/79] commit --- .../asm/BytecodeAssembler.class | Bin 6816 -> 6816 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4595 -> 4595 bytes .../iged/interpretador/gramaticas/Assembler.g | 449 +-- .../interpretador/parser/Assembler.tokens | 324 +- .../parser/AssemblerLexer$DFA6.class | Bin 1854 -> 1909 bytes .../interpretador/parser/AssemblerLexer.class | Bin 26558 -> 28872 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$comando_return.class | Bin 677 -> 677 bytes ...semblerParser$definicaoClasse_return.class | Bin 701 -> 701 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../AssemblerParser$instrucao_return.class | Bin 683 -> 683 bytes .../parser/AssemblerParser$label_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 692 -> 692 bytes .../AssemblerParser$operacao_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../AssemblerParser$programa_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../AssemblerParser$superClasse_return.class | Bin 689 -> 689 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 58260 -> 70287 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 13782 -> 14167 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 324 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1348 -> 1348 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 23470 -> 23846 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 324 +- classes/Classe.class | 21 + classes/Teste.class | 4 +- .../iged/interpretador/gramaticas/Assembler.g | 17 +- .../interpretador/parser/Assembler.tokens | 190 +- .../interpretador/parser/AssemblerLexer.java | 1655 +++++----- .../interpretador/parser/AssemblerParser.java | 2732 ++++++++++------- .../ufpb/iged/interpretador/parser/Def.java | 150 +- .../ufpb/iged/interpretador/parser/Def.tokens | 190 +- .../ufpb/iged/interpretador/parser/Ref.java | 258 +- .../ufpb/iged/interpretador/parser/Ref.tokens | 190 +- .../interpretador/principal/StackFrame.java | 17 + 44 files changed, 3904 insertions(+), 2941 deletions(-) create mode 100644 src/br/ufpb/iged/interpretador/principal/StackFrame.java diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 6ab468d93f1653623da725ad591d0e88d67d3a84..5fedc6cbe8dd493110387418dafe631786652411 100644 GIT binary patch delta 18 acmZ2ry1;b96=7CR1_lP6%{PUQvjG4)!v)9y delta 18 acmZ2ry1;b96=7Bm1_lQ1%{PUQvjG4)vjxTg diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index aae9cec6b3973435bd70447e088716182c2521c5..93618a0f865d7609c439377463ba20e841609728 100644 GIT binary patch delta 356 zcmeyY{8@R!9%f@^1_lOBMh0e2zYq|Un~{Ob&p*sD-pA9=!;z7J#V^#y2P7fP$iNgH z3}Q)ae$QObq1eD6$qnT99|zr?#(-Sg&6BO1sP^Sq?N(aw*-J9vmhcWV39i@k=YOtRj|lCkjNZ}h#FYr z0Z3#nL_{4d@(3g{4wWDOv~-(FTjW0*New ji0FVt-hf0FLqv4JBJV&VOCTb8V37|3oST>M`!fLmNaJ3? delta 356 zcmeyY{8@R!9%f@k24+vc5M~Aj1};VhEpb|99|zruFX4ng&6BO1Q}*Rq?N(aw*-J9vmhcWV39i@k=YOtRj|lCkjNZ}h#FYr z0Z3#nL_{4d@(3g{4wWDOv~-(FTjW0*New ji0FVt-hf0FLqv4JBJV&VOCTb8V37|39GjQ$`!fLmM!8 ^(LABEL $a); - -comando: ( manipulacaoObjetos - | aritmetica - | load - | loadint - | store - | storeint - | desvio - | logica - | pilha - | 'nop' - )? NEWLINE; - -definicaoClasse - : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + - -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) - | '.method' INIT '()' VOID NEWLINE - ; - -superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; - -membroClasse - : '.field' ID tipo -> ^(FIELD_DECL ID tipo) - ; - -manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) - | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) - | a = 'invokespecial' c = classe '/' d = chamadaMetodo - -> ^('invokespecial' $c $d) - | a = 'new'c = classe -> ^('new' $c) - ; - -tipo : INT | VOID | TIPO_REF; - -aritmetica : ( a = 'iadd' - | a = 'isub' - | a = 'imul' - | a = 'idiv' - | a = 'irem' - | a = 'iinc' - | a = 'ineg' - ) - -> ^(ARITMETICA $a) - ; - -load : ( a = 'iconst_m1' - | a = 'iconst_0' - | a = 'iconst_1' - | a = 'iconst_2' - | a = 'iconst_3' - | a = 'iconst_4' - | a = 'iconst_5' - | a = 'aconst_null' - | a = 'iload_0' - | a = 'iload_1' - | a = 'iload_2' - | a = 'iload_3' - | a = 'aload_0' - | a = 'aload_1' - | a = 'aload_2' - | a = 'aload_3' - ) - -> ^(LOAD $a) - ; - -loadint : ( a = 'iload' b = INTEIRO - | a = 'ldc' b = INTEIRO - | a = 'aload' b = INTEIRO - ) - -> ^(LOAD $a $b) - ; - -store : ( a = 'istore_0' - | a = 'istore_1' - | a = 'istore_2' - | a = 'istore_3' - | a = 'astore_0' - | a = 'astore_1' - | a = 'astore_2' - | a = 'astore_3' - ) - -> ^(STORE $a) - ; - -storeint : ( a = 'istore' b = INTEIRO - | a = 'astore' b = INTEIRO - ) - -> ^(STORE $a $b) - ; - -logica : ( a = 'iand' - | a = 'ior' - | a = 'ixor' - ) - -> ^(LOGICA $a) - ; - -desvio : ( a = 'ifeq' b = ID - | a = 'ifne' b = ID - | a = 'iflt' b = ID - | a = 'ifge' b = ID - | a = 'ifgt' b = ID - | a = 'ifle' b = ID - | a = 'if_icmpeq' b = ID - | a = 'if_icmpne' b = ID - | a = 'if_icmplt' b = ID - | a = 'if_icmpge' b = ID - | a = 'if_icmpgt' b = ID - | a = 'if_icmple' b = ID - | a = 'goto' b = ID - ) - -> ^(DESVIO $a $b) - ; - -pilha : ( a = 'pop' - | a = 'pop2' - | a = 'dup' - ) - -> ^(PILHA $a) - ; - -classe returns [List classe] - @init { - $classe = new ArrayList(); - } - : (cls += ID '/')* (cls += ID) {$classe = $cls;} - ; - -chamadaMetodo returns [String nome, String params, String tipoRetorno] - @init { - $nome = ""; - $params = ""; - $tipoRetorno = ""; - } - : n = INIT par = '()' tip = VOID { - $nome = $n.text; - $params = $par.text; - $tipoRetorno = $tip.text; - } - ; - -campo returns [List classe, String campo] - @init { - $classe = new ArrayList(); - $campo=""; - } - : (cls += ID '/')+ cmp = ID {$classe = $cls; $campo = $cmp.text;} - ; - -INIT : ''; - -INT : 'I'; - -VOID : 'V'; - -NULL : ('null' | 'NULL'); - -INTEIRO : '-'? '0'..'9'+ ; - -TIPO_REF: 'L' ID ('/' ID)*; - -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; - -//LETRA: ('a'..'z' | 'A'..'Z'); - -NEWLINE : '\n'; - +grammar Assembler; + +options { + output = AST; + ASTLabelType = BytecodesAST; +} + +tokens { + MEMBRO_CLASSE; + FIELD_DECL; + EXTENDS; + ARITMETICA; + LOAD; + STORE; + LOGICA; + DESVIO; + LABEL; + PILHA; + BODY; +} + +@header{ + package br.ufpb.iged.interpretador.parser; + + import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; + import br.ufpb.iged.interpretador.excecoes.LabelException; + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +} + +@lexer::header{ + package br.ufpb.iged.interpretador.parser; +} + +@members { + + public abstract void escreverOpcode(String nomeInstrucao); + public abstract void escreverOpcode(Token opc, Token op) throws LabelException; + public abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; + public abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; + public abstract void definirLabel(Token id) throws LabelException; + +} + +programa : instrucao* + ; + +instrucao : operacao + | definicaoClasse ('.end class')? + ; + +operacao : (label comando | comando); + +label : a = ID ':' -> ^(LABEL $a); + +comando: ( manipulacaoObjetos + | aritmetica + | load + | loadint + | store + | storeint + | desvio + | logica + | pilha + | 'nop' + )? NEWLINE; + +definicaoClasse + : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) + ; + +superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; + +membroClasse + : '.field' ID tipo -> ^(FIELD_DECL ID tipo) + | '.method' INIT '()' VOID NEWLINE operacao* 'return' NEWLINE '.end method' + -> ^('.method' INIT ^(BODY operacao*)) + | '.method' MAIN '()' VOID NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^('.method' MAIN ^(BODY operacao*) $ret) + | '.method' ID '(' (tipos += tipo)* ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^('.method' ID $tipos ^(BODY operacao*) $ret) + ; + + +retorno : 'areturn' | 'ireturn' | 'return'; + +manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) + | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) + | a = 'invokespecial' c = classe '/' d = chamadaMetodo + -> ^('invokespecial' $c $d) + | a = 'new'c = classe -> ^('new' $c) + ; + +tipo : INT | VOID | TIPO_REF; + +aritmetica : ( a = 'iadd' + | a = 'isub' + | a = 'imul' + | a = 'idiv' + | a = 'irem' + | a = 'iinc' + | a = 'ineg' + ) + -> ^(ARITMETICA $a) + ; + +load : ( a = 'iconst_m1' + | a = 'iconst_0' + | a = 'iconst_1' + | a = 'iconst_2' + | a = 'iconst_3' + | a = 'iconst_4' + | a = 'iconst_5' + | a = 'aconst_null' + | a = 'iload_0' + | a = 'iload_1' + | a = 'iload_2' + | a = 'iload_3' + | a = 'aload_0' + | a = 'aload_1' + | a = 'aload_2' + | a = 'aload_3' + ) + -> ^(LOAD $a) + ; + +loadint : ( a = 'iload' b = INTEIRO + | a = 'ldc' b = INTEIRO + | a = 'aload' b = INTEIRO + ) + -> ^(LOAD $a $b) + ; + +store : ( a = 'istore_0' + | a = 'istore_1' + | a = 'istore_2' + | a = 'istore_3' + | a = 'astore_0' + | a = 'astore_1' + | a = 'astore_2' + | a = 'astore_3' + ) + -> ^(STORE $a) + ; + +storeint : ( a = 'istore' b = INTEIRO + | a = 'astore' b = INTEIRO + ) + -> ^(STORE $a $b) + ; + +logica : ( a = 'iand' + | a = 'ior' + | a = 'ixor' + ) + -> ^(LOGICA $a) + ; + +desvio : ( a = 'ifeq' b = ID + | a = 'ifne' b = ID + | a = 'iflt' b = ID + | a = 'ifge' b = ID + | a = 'ifgt' b = ID + | a = 'ifle' b = ID + | a = 'if_icmpeq' b = ID + | a = 'if_icmpne' b = ID + | a = 'if_icmplt' b = ID + | a = 'if_icmpge' b = ID + | a = 'if_icmpgt' b = ID + | a = 'if_icmple' b = ID + | a = 'goto' b = ID + ) + -> ^(DESVIO $a $b) + ; + +pilha : ( a = 'pop' + | a = 'pop2' + | a = 'dup' + ) + -> ^(PILHA $a) + ; + +classe returns [List classe] + @init { + $classe = new ArrayList(); + } + : (cls += ID '/')* (cls += ID) {$classe = $cls;} + ; + +chamadaMetodo returns [String nome, String params, String tipoRetorno] + @init { + $nome = ""; + $params = ""; + $tipoRetorno = ""; + } + : n = INIT par = '()' tip = VOID { + $nome = $n.text; + $params = $par.text; + $tipoRetorno = $tip.text; + } + ; + +campo returns [List classe, String campo] + @init { + $classe = new ArrayList(); + $campo=""; + } + : (cls += ID '/')+ cmp = ID {$classe = $cls; $campo = $cmp.text;} + ; + +INIT : ''; + +MAIN : 'main'; + +INT : 'I'; + +VOID : 'V'; + +NULL : ('null' | 'NULL'); + +INTEIRO : '-'? '0'..'9'+ ; + +TIPO_REF: 'L' ID ('/' ID)*; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +//LETRA: ('a'..'z' | 'A'..'Z'); + +NEWLINE : '\n'; + WS : (' ' | '\t' | '\r') {$channel=HIDDEN;} ; \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens index d514209..7779d72 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,155 +1,169 @@ -T__23=23 -T__24=24 -T__25=25 -T__26=26 -T__27=27 -T__28=28 -T__29=29 -T__30=30 -T__31=31 -T__32=32 -T__33=33 -T__34=34 -T__35=35 -T__36=36 -T__37=37 -T__38=38 -T__39=39 -T__40=40 -T__41=41 -T__42=42 -T__43=43 -T__44=44 -T__45=45 -T__46=46 -T__47=47 -T__48=48 -T__49=49 -T__50=50 -T__51=51 -T__52=52 -T__53=53 -T__54=54 -T__55=55 -T__56=56 -T__57=57 -T__58=58 -T__59=59 -T__60=60 -T__61=61 -T__62=62 -T__63=63 -T__64=64 -T__65=65 -T__66=66 -T__67=67 -T__68=68 -T__69=69 -T__70=70 -T__71=71 -T__72=72 -T__73=73 -T__74=74 -T__75=75 -T__76=76 -T__77=77 -T__78=78 -T__79=79 -T__80=80 -T__81=81 -T__82=82 -T__83=83 -T__84=84 -T__85=85 -T__86=86 -T__87=87 -T__88=88 -T__89=89 -T__90=90 -ARITMETICA=4 -DESVIO=5 -EXTENDS=6 -FIELD_DECL=7 -ID=8 -INIT=9 -INT=10 -INTEIRO=11 -LABEL=12 -LOAD=13 -LOGICA=14 -MEMBRO_CLASSE=15 -NEWLINE=16 -NULL=17 -PILHA=18 -STORE=19 -TIPO_REF=20 -VOID=21 -WS=22 -'()'=23 -'.class'=24 -'.end class'=25 -'.field'=26 -'.method'=27 -'.super'=28 -'/'=29 -':'=30 -'aconst_null'=31 -'aload'=32 -'aload_0'=33 -'aload_1'=34 -'aload_2'=35 -'aload_3'=36 -'astore'=37 -'astore_0'=38 -'astore_1'=39 -'astore_2'=40 -'astore_3'=41 -'dup'=42 -'getfield'=43 -'goto'=44 -'iadd'=45 -'iand'=46 -'iconst_0'=47 -'iconst_1'=48 -'iconst_2'=49 -'iconst_3'=50 -'iconst_4'=51 -'iconst_5'=52 -'iconst_m1'=53 -'idiv'=54 -'if_icmpeq'=55 -'if_icmpge'=56 -'if_icmpgt'=57 -'if_icmple'=58 -'if_icmplt'=59 -'if_icmpne'=60 -'ifeq'=61 -'ifge'=62 -'ifgt'=63 -'ifle'=64 -'iflt'=65 -'ifne'=66 -'iinc'=67 -'iload'=68 -'iload_0'=69 -'iload_1'=70 -'iload_2'=71 -'iload_3'=72 -'imul'=73 -'ineg'=74 -'invokespecial'=75 -'ior'=76 -'irem'=77 -'istore'=78 -'istore_0'=79 -'istore_1'=80 -'istore_2'=81 -'istore_3'=82 -'isub'=83 -'ixor'=84 -'ldc'=85 -'new'=86 -'nop'=87 -'pop'=88 -'pop2'=89 -'putfield'=90 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 +T__77=77 +T__78=78 +T__79=79 +T__80=80 +T__81=81 +T__82=82 +T__83=83 +T__84=84 +T__85=85 +T__86=86 +T__87=87 +T__88=88 +T__89=89 +T__90=90 +T__91=91 +T__92=92 +T__93=93 +T__94=94 +T__95=95 +T__96=96 +T__97=97 +T__98=98 +ARITMETICA=4 +BODY=5 +DESVIO=6 +EXTENDS=7 +FIELD_DECL=8 +ID=9 +INIT=10 +INT=11 +INTEIRO=12 +LABEL=13 +LOAD=14 +LOGICA=15 +MAIN=16 +MEMBRO_CLASSE=17 +NEWLINE=18 +NULL=19 +PILHA=20 +STORE=21 +TIPO_REF=22 +VOID=23 +WS=24 +'('=25 +'()'=26 +')'=27 +'.class'=28 +'.end class'=29 +'.end method'=30 +'.field'=31 +'.method'=32 +'.super'=33 +'/'=34 +':'=35 +'aconst_null'=36 +'aload'=37 +'aload_0'=38 +'aload_1'=39 +'aload_2'=40 +'aload_3'=41 +'areturn'=42 +'astore'=43 +'astore_0'=44 +'astore_1'=45 +'astore_2'=46 +'astore_3'=47 +'dup'=48 +'getfield'=49 +'goto'=50 +'iadd'=51 +'iand'=52 +'iconst_0'=53 +'iconst_1'=54 +'iconst_2'=55 +'iconst_3'=56 +'iconst_4'=57 +'iconst_5'=58 +'iconst_m1'=59 +'idiv'=60 +'if_icmpeq'=61 +'if_icmpge'=62 +'if_icmpgt'=63 +'if_icmple'=64 +'if_icmplt'=65 +'if_icmpne'=66 +'ifeq'=67 +'ifge'=68 +'ifgt'=69 +'ifle'=70 +'iflt'=71 +'ifne'=72 +'iinc'=73 +'iload'=74 +'iload_0'=75 +'iload_1'=76 +'iload_2'=77 +'iload_3'=78 +'imul'=79 +'ineg'=80 +'invokespecial'=81 +'ior'=82 +'irem'=83 +'ireturn'=84 +'istore'=85 +'istore_0'=86 +'istore_1'=87 +'istore_2'=88 +'istore_3'=89 +'isub'=90 +'ixor'=91 +'ldc'=92 +'new'=93 +'nop'=94 +'pop'=95 +'pop2'=96 +'putfield'=97 +'return'=98 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class index 545ff51d0cc7431b575dc7e75250ba32899916d4..cb84be0b6ad18d30baebc142c9cc948e2b1fa178 100644 GIT binary patch delta 163 zcmdnT_myu$IkUiOLn}iog^>L0)VyK^D+P_s)0qXCyhGySEe#cF6hO2Qls1OaCQ#ZG zN}EAxb0}>Aq&@vSLx7a8qo?2GHLTyYc$P76@+@cI<5|HV!n2Y=nr9V*63=P|O`bIj f20UvS%z4%^*zv4qaOK%B`7E0=6VIl}LhL#KCWS3q delta 108 zcmey$w~uc_IkQ5Ep_QSPLP&mgYF@E|m4b#sNPN7Ju|f@)Hc_bA+|De>#Nz4a88Z1X z>vt{g#SEO>OBndLmokWOFJqAAUe2Jzy@ElLdnJPb_bLW+?$r!-+-n$Ixz|o+VRvTY KUO(BBT?YV}m>m58 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index 0e3de91ff8e9d632c7322727dd429008d7db6aa4..a83fdf0f130fd26e80be964d43911a30696edd6e 100644 GIT binary patch literal 28872 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index 6f3e6858271696b86e8fd34772e9e5a81240b56c..5af0e0e96f9d32a79e2d216d18b164594b61bb0d 100644 GIT binary patch delta 21 dcmZ3-x{h^&GZPcXs>!ZQ)=V60CO0wZ002h@1|9$a delta 21 dcmZ3-x{h^&GZPcrvdOMY)=X?GCO0wZ002gu1`+@O diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class index 30f1b9d3bc2ee7e466c01df7f2194c3217fad990..ae5583f0a5b686b862815194d2af7f8bc6220b3e 100644 GIT binary patch delta 21 ccmaFC`hs;sEfbRf)8u+4YbF7<$$OY|08AnV0ssI2 delta 21 dcmaFC`hs;sEfW*(zsdDX)=Yd%llL&`003932K4{{ diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class index 15c1214c38bb352918be5f968f746b57e2d6529a..3cab35563e3d46c19df2db32c148d5cfaf2fca29 100644 GIT binary patch delta 21 dcmZo-Yhv3lor#Hm<>Z-6)=d2CCSPOH0RT!<2Gall delta 21 dcmZo-Yhv3lor#He>ExMA)=a#sCSPOH0RTzq2FCyZ diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class index 8d33250ae371c74f97ba42d808907e7453f24521..89880dd511cf0c7a7279ef824fa75ba0f33ebbb4 100644 GIT binary patch delta 21 ccmX@cdW>~LG!qlQ=Hyr=YbJi3$+MVr07Z8NqW}N^ delta 21 ccmX@cdW>~LG!qlA>f~4^YbIWe$+MVr07VT2mjD0& diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class index 8796b1821826b32f15df89d53e0ab97ab6021ea4..686b4b530490540572e43e2d137322c77a971f66 100644 GIT binary patch delta 19 acmZ3=x|DT;H4~%uWE&F+ diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class index c2bda782d8879a1fa3ea942d0a04fdff4f8c51b2..25874a52b8522cab0012a621ae09f05ba174f1df 100644 GIT binary patch delta 21 ccmZ3)x`=gyITI7F^JGgVYbIXT$z@DB06kI#9smFU delta 21 ccmZ3)x`=gyITI7N{bWlfYbI{T$z@DB06gdg5&!@I diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$instrucao_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$instrucao_return.class index e64918f090e293b8631761e7d455d5960682a72d..404dfa678954771e60ff668fd4ffd718cc335cfa 100644 GIT binary patch delta 19 bcmZ3@x|(%^BNOAh$xci*j2|Y~GwA>TLwW{> delta 19 bcmZ3@x|(%^BNOAZ$xci*j4vkFGwA>TLiz@G diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class index 3959690fcdfb16146f5d19661ddc626da16eb69a..0ce1cf9045ac7eaae5523a0fc24b10320a2aaba9 100644 GIT binary patch delta 19 bcmbQwI-hleDHG$x$!1J8jF%@DGwA>TKEehO delta 19 bcmbQwI-hleDHG$#$!1J8jHf3TGwA>TK0*co diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index c4b9862f6fe7f5a0afa2d2c49a3ce5dbb24c95b2..1b974e9014db8e4b353cdabe879038514899f656 100644 GIT binary patch delta 21 ccmbQkI)`e5>)=XRnCs#7*002fL1|I+b delta 21 dcmZ3=x|DT;6%!N3?#VVx)=V6GCs#7*002e01`_}P diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class index 14dbad083b7f5408d6d499c3df4eabbb2470e71e..8c10c555301a8c74d634599940420ad159e8467a 100644 GIT binary patch delta 21 dcmZ3)x`=gyITI7lj>(ox)=WIRCYLek002b<1_l5C delta 21 dcmZ3)x`=gyITI7tmdTb()=XU6CYLek002aq1^NI0 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class index b04f4ba4e54f125af7dec9443f805e9985922548..48a3b0c16cdc5309db0f24622300e17332a3740c 100644 GIT binary patch delta 21 ccmX@cdW>~LG!qlM?&Me|YbJL6$+MVr07V`Jng9R* delta 21 ccmX@cdW>~LG!ql6=Hyr=YbI9h$+MVr07SF}jsO4v diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class index a6401ba232d342b4e5a29051501d117b0688a8a2..68bdad27f12c5e9671fa53bd629caeae1fce693d 100644 GIT binary patch delta 19 acmdnOx`lOv7ZYRCWN#)L#+Jz)OgaEQ=mp#W delta 19 bcmdnOx`lOv7Zc;*$=*yhj7KMTFzEmQLih$= diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class index 8eafbbd9161a66377ae1cc71bee2a7cc303ba752..52ea9b81a5bc8d57f6a4cb70f6c305fd4d0d27f0 100644 GIT binary patch delta 19 acmZ3%x`K6s9TQ{PWP2tX#*E1|OgaEMKm}+3 delta 19 acmZ3%x`K6s9TQ{RWP2tX#)Qc=OgaELzy(+U diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index 31fc6366157272f25ae5c9b4fb861a8e98823225..d6a28b4843b221530dc707430aad8c2842f3774a 100644 GIT binary patch delta 21 dcmbQwI-hle2@@0Fyvb%v)=Yd0CKog5002Uv1;+pY delta 21 dcmbQwI-hle2@?~~tjT6f)=WHeCKog5002Ta1-k$M diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class index e22370ae939990beeb8c2a7e2d1ff69753164fd7..86471e79df4f016bd31a085d78047637f09a4c72 100644 GIT binary patch delta 19 bcmZ3%x`K6s9TVf+$@WY(jPobgFzEmQJ+KAV delta 19 bcmZ3%x`K6s9TVf!$@WY(jMFFAFzEmQJun5v diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class index 3891da281ea16be68a9617ff3e5fb13df3a811be..993e1741bbb53a7d01961bde5ef2c6e1ff5f51c7 100644 GIT binary patch delta 21 ccmbQwI-hle2@?}{%w#hrYbNfv$;C`M06qoBZWDh1A#;nP$OgaEOjs=+j diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class index 7833f9f7b8693a72d5e0ce5877284a6b2ef8e29c..93d6b3c2616ab64e1795120b870ac9c1d28eff80 100644 GIT binary patch delta 21 ccmbQkI)`SSXkYbLhz$puV006lR9HUIzs diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class index 99051701baca33a97a54e7c71841ccd147d0f7ef..68487810ee771a4155bf5be422893306b11e7428 100644 GIT binary patch literal 70287 zcmd>ncYGDa`uEK4%!kXH_%PMM@SJn<5y?lA)()mj&Yp43O zO&BFvHMNTdS5((6sU2LqqPnhXY2{!UN=dk`=8($jDHTgAms1j%U3zfEVHJayR8%h- zJiV^As(R5-O3d-)6DXl2l%$WXsa{?OK{G3stf({_@E;|7#@x9%`6jfCDxyFT?G#Zc zi1vyo5<~|@6bquGByxucqLU)B1<_d%IfCe-h+IK*RYaa3x+%ifpt~Y`4SFcT*Py2& zd<}Xj!q=d;B=UR>`Y6KJpsyl)4f-j<*Py>5d<_OD!q;G+B76-7DZz6P*JKbo(>WJUNI?4<}_gHlEK8k8x**I}% zV45O)4W=u?*I4FmaRLiLNXe9v83GT(hm=h5 z(KJW^I=*C@FVKZ1rK87;_Y|3uYY@|Cluz?xWm4kID4AM5 zciQ*~LP#5=nprN@Z;OKL>lZQ$qAM0wEUT-jrKCq`swb_ht*jh81Aj)#Sm;ZgCzO|# zmhU^a3f{7I#e#|&U~`w%)-0;6SXz;tjV|7<2|;73>ZVuLX~}DrRn}Ih)NxVSdGH;* zR0azx52~uJLX@#fD&Y4;Hi?M&@DWiJF{d~w4343_3R_Y!zjBEP4)V(`LKYoW=z^N1 z71ay<5+uS=g5M2?L&{X?OU4P&ejYhPkZZut%}?;Nkza2WAGuX6Td_oxyL|q^m31}C zMLeZNPA)uRP`eeiRdq`%>ri|>Mm}^4O1-3}Vxb;Z2v6G~C^f<`fa<|TaFFd(@N%@b zU!N-HT%mhVW(Ag2-4@~q=*-W5TqBbH8ldv zC`g}EkQxjN4blrgml^>k9#nzW*o|~7M)P%3g$VpXilAa>8YoiiTV7)sT2=2cAHAxF zq~@Sib!t@=p>Ys-Kl;gI72npQ<(B##GZS``Ub7_1YD5~4&M6c5n`B(3KCykrElevmlN z?;VLSG3*C(hb9x}LZx6rpRd|YtO#<32%GF2C z5HSl2LW0@7SeGCKwH1UE`uV6d+1Xl1qcqt$Xx?}lUxOfxm|FxPjnjy^eh^aNw|tOB zbmt(XahgJyZV*!78%2;t*n1GtC=Dtu5mM-PI+Z3zueZi&#Ck1|R-l(BM_5J>(m0JU z*dV09x3VCgLM^0m8sRYGX?!~i(g;@(gfvQ%E9@@_DbU*|S4?b!kj81mj5G)-@J&+X zlbff7G)^OS2;yn{eioz=16>f(IE|PK1|j)+UFYeo&?t@XjDt>C?AL+6%FW5sJ9@ES zp(;Sk7=sjfzU9b({2?ioCg&76`Gs25$mv5oL@TCLEC?w=F}o;d7A&b2=(CEP0%7+- zca|%KqzJjFkU&PTR!EKliwa7k6c7`>oPt6vK@a9dKM)1?$a08If5mS^Pqe0L4M_fT1|=Ddr)Qd!Y%>lLhS8H z4)%2x*DOS&i~J-9RaGt#)FmiO??LgvOZ`B96_3DmBAdZLt`JBJ$dy7~#R73?F}Hff zk|khWjqSYN6=I+Sag7k?6LW`v{8xg^2KnyK75*py z>Q?NGD$18!uhByEW{noIw`jBweg_(<_rev+fZi#B7FE^-Rd5#?t@omux*CMtBk-z< zg`zC?O1xU&_lq=DvfQFz4{Ef?{$Y(4**~h$BKyZRIuG=d8l4aNX-d)p`AdbsXZ_3< zRviZXc|Y)=xm636E~`8gj2AV=qDnAc(iwGNysR;nh#0Tx3=!jXjZrOPyy@q7ke|WZ z68B}lt8kI%eTn-LKUBEj|3~7!oKJkbs(JzVp9 zgZLr?`!Wn+UscM!3~bS(fqhD7XJBJKPD4Ed`|xoZ`Wa!3hJuFcXS969eBdp7e5Fvp z@PsZ)7NRnYRsyZAJRE3iAFY8k8f^r+%ty0CI-o*+J0XABioi&X4nkX{dx%h@lS??U zY@RH4{H4bXgJUn=Z1|#~A#8Ludbvh#qYtuz3-di5?=yRH--MQ)kU##T=Fz|QUvC?$R zMYK^ac|it_amkB8o=V09m+X{*lU(wW#3s9Bm&8h4^0LIHxa1XyO?Anu5}W3d*CaN> zC9g|trc2(C*nTc~Q)2tOkzaLMOV#91!+0)euv3>Xhin}kV-SgT#~rHpl< zOTLoWMK1YT34_+YuuEO?jSO7pl5c~Ys0_T)CEv-wt6lQF#IAA44-)&AOMdioZ-Au) zx#O@~IVVo$o%me|uSbtLwzOG6TS-lbuQz39?3 ziM`}fS7I-_G+kn^y0nGFUUz9rsijiN#zxOk%@aI$UBS zTslHxqg*;tVq;u7N@C+&I$B~ATslT#lUzDhVv}7uPGY4l9WSvdE}bB;sVd)$)yz%JH@5*C3c!i7f9?3moAjpSuU-V*f}meh+x{) zvb3tYa>|OO^DAp-RNz(*C9O(p7E~;miTyu8E2fJH;<(Bsm5VCs#66ylefrLB;(%G+ z`N07*t6N-!Xt||-`8p92ck9!H=o#V`5pE1sRxBObccyJ#j04@&qw;B$3u+csR~=DV zJAH9QZRNu0b2o4|OnSsj9~81jnIGq|#Ln z6VtrRHm|~IW~%o7LI2pArAuq7wd4M=`|iUvimfZb4pq)jYLZA_E)B`n&kB(8oU+aO~lQGr4_Xk zs+LrWyJD2IMlLCF9TN+m*<)jK_Q6fG<#T3KRV=ERGqI{}PRYda~JPm(^8a(P*1nD9QPqK2nLO3u-Et4=xo~DB=mx0ij^kLD0T- z^opgG)pa#xl}l^TV<#@DnP0I4XGeQhPV^qE`NsU2Y)3DsT)w=fqLJnuLXiKYYd&RSjVpR` zExbl_j|P)wK5IU2o6o^3re>eqhmQ^hW<_+Enl^C ze$A3P;rR#4J*?$}$E>P@5n|(R^z<2`I$n0oS4=FRjndKZ^eAhI@T;%8<{Ks!&EaJ$ zmM@-Avt&ul;bNR(+1sx9j)^sOD1NPok_pYSow$I&c!bY<-!-o_{}sXr z@S$sdB(9IKxd$y@7B)XN|7)9AoBv)n*n^QKXXKinifXr&pA=2@xodu5Vny#@>tyWW zswE43hnsL`syQ^rqBvN1!alxs&2NN#Ff72A33=bS=J)0g@RYSHmQ+rySzb4_wnlVK z+@BTxxCuF_EFpNeYyM>ZEXHSCC!=Ke?{(2XGKHZ+v0q*DH?skXiSb3a`Y|;tsuyDJ zAZ7^@n^3F?dyxHNj{&}&FzPacnb@SMtz1@9TQ|P8R$Q0s-;{kd_9xh%|Z12I%7)SKcDA7?j}f#x{&JXkc5_a3XN zX{Az)0Q($pt=OuiWbE%X{vJ#}**^<$H8pi}hoIlby9Lge#x+BBJbloAVWt&J>L3j_ zII~3-MlEc%sp@R9^q7BO`nTYavWjK?Bv$nKwITd@(q_>nN0lixGyOU5=p}XWQN>~H zv1|^rEY=YdN7jjwJl(3*9rluvCK@YYMbh}XxU4Jd2B#2QYijN&8Ke&?D$IJoo3WnF z8vc@miC)s%Wqla#rngMG2S-V1vpjQ>n1tH>h1vtq34doq+JhxFEmLSe$Yp~Wtc5SF zs9UgD=={5F(^Sg^BUEbtu~`mIr&5Pvzhep)kms^|R)BtiNu)nZAJ|m(vLEXcT;>0T zeSR(e>_+wDZZ91C+$B|*)>bUZgI@_63raMn`v%E_7Qk^%Qa$EUGPxOjH%UrDe(R(% z%#{O==-9{#9XnTaY=*<5J#_7+`XrVNLI5fO0&?aK5%#|}gg;M;_Mhak5;hrO{*_>i z@XfMWKXFiwFe??7imUx2{<@{=l7xQcE}P2s#u%io?!sF(OGA}Bq2qL+;|xkh{dFB1 z%Mw-jwfF-gw0!k(zB#HHW}z1yjpnFq&^^X9Lt0}cHF-F(750D*0(;04_E0M9p;UPK z3f$&O?XLdJd0OS+xZqtm4O1#@Ja*UuXj&)cGF?i>h1on-DIEVnloU7BlauG*Lp7hF z28X^g9R@$7Waj1znFqV<5Qah6!~`*EiJ6!Qq6E7ghVxWgs#76S9xAlK#HGpoi$9@_ zre8cKo7GV=_>Ze;`il7?2b2rjFb+FROvg}rUF4J^%$Bo5g%4aMeBcpc%3Gr47Sx8u zQVNJPN4e~1b_}Kw^D#49S~(4~3QCIfp;kpsP2PkX6%}=y%Z?ZGa;Lg-Wu2Id35)m| z@0r0Q(s6!X8#vY?Sb2qVOsyIPC}s#w3@IdU+=IMq1tV{kHOkZpC3grV@1pqO6x z?^%6&RFY5idtJXZG3HUt#dI{hpVNWlVFX#=3KXuyD|g#Ueh1u^ZLGLoN?)3v4+x4I`Z!wG02 zf=0v%sooUgb(e|FkgUr{h)(LrIYWXKm?(Bqr_RYqX5=L^3Ic{&YpFhtdQyxW43-gv z>l%pz4Y}siYC!HXpk}elP~dM{EvT+jdk+BM77DIeDUMcpHDP0^tqtEL*Kj$aQ^P6! z2&cr+SS_Rn3f>cTxL7<&UT&_4wp;vZ!bYG-I7lT*mt3QTs!CcWA_W{(;vgVVOS!pW z^xU-}{DF3(!a_9-2GE;S=Mb;^Ml)@j;EC6gdvxD?w#D9J^~u zlDH`E@bY+QPQJsjVHSAh0*6meP=yZP2R$J3_v;;pQtVDT1rG7DpcB|4^fdpkJ{iuk#T*Q~!-#kA;)HnN%g-bqbsp!6m!r5UVD~2MGO4pb zda^SwR<1iFOitlRaqup_uy1q;X?%N#6%3te(hOCsVE&BvVWp5{;YG<21C5d*;ziXa z1>i+hrJXd=J;cflVhQc=zNSnQXqT6t%m@a#WGw=9llg(xs7JhUCZ$Ij8*`J~pl$pQ)y#t$ux#E~bETAo%$m8Hm&WNBo<~~IM34Z{xSdduN`Wxqd zSM}3^DbfxRp*}-6C@}oI`-B*!Fy&ZeK8ZU=e5cD_5>sm&npH2yjW^ur;V--V z6^?sI>HcjCaR&f5I#ywWe}9|fb)F_JSe8{S_YZ|}F|<-&9K6Qg6a&Otl*F1EAk=Yi z6J4~?ssXxwjZ$IiFW!g``%syUxpXp$_yPF}IYac4iI{G8G|7{3|f3L0=b%Eh0zIq_$ zAwRl&H~$Gm^J6x5Cro~V0;YiX*@lMsFJhMPYqNI3bV;I)b~_e<8To~oAA)2td$LT| zVipHq7Pz@vj52k6?qu1}+j5$<#n?!cP%-RUX_gBMZdBzsf^XK6yOEHD!YzctEwTRl z>uc_&Bsx|`P}d7XRtr)2tpmn_5UK|&lQp6vG#dQHR}Sd>=56-q&5c2j;(WF_J5Y^k zU&z5R&7@|mT$`#Ch?C8380WQAd z5S$qX79BWD)i1?m3*oODX{h`xqy~qNXodhq6$I#lFqSWHxO2@X#hsTWa6k?8wQw5;L z#Hm6ob=L`lS|L;|%a3y%x1NqFsVG;(cy^49W|$4WdLFM2V&* zaxZeMX>lqa<-@QVl(x{ZX2z*}#N01IA#DEyRp3~25>&op9T=x_5r*ZWl9`JfMBAuk zK4gmKkyIXP5LXZa3blm6P*M4)Pq7S>G4t~r3l|F%Rfzns6bq;VQApJ1hDP;?W((>> zd|@oW3pJ}0BU->0v-3Ev%_zitHsFiZOB~l^iZ9p%eDNWWIIgvem?Q^$f1#kvT70-6 z;EVU#{kFqy?)9SWt`}{0a=fI)IgWKII*hCn^_2|AIz1kt5Y=>MoXRZ}65z_t!4yNL znJ+l7I%|GX#}!|_2qsQSu%;J!X`rK60{A)>h+|0TxJl@^HlAr7+UBwZ1%+@Pty(G% zHncuL!A@|ttip;wZAegvd2ND%)oe^q#UfL*_a?o){WYGdQ-AFj;99$i6-!VK@kM|* zuEi0bkBRfq#(r4~!|V=G);mO5x5PEcgN@!1r;74L1n6}~BfYeCFA{4bG1){OVt$C( zWtcrI1V1bU-yauMjE?bOoGL=IKOCp>b3}Ax^RS*xv1WGS<3vFb#J4y6EQ`ZzhsbG% z$m!X*v;tK0^9c%#@M3~O*L^8Lp%GqAP-s}pQiCptu8Ya3q6%OFZ^o%Yl;!O>Re-X* zo1jpE@5iY^gnbyN3Xm=_Nz5N2R7a_I=%p^u8m>TVQ1P9Vpau%G1{Gh74ETjw=Pb}W zp;nV(j0oZvXbma8TN3AM@x^|DsO=oI>r|5Abt{t`8VFgu<>rR+@r*1ll zSRGuuqljhU8f?YV<$~4OwYvybnph@HlRJZHEZgqp+TG2Y;lIRt2so?|IiX|}?%zae z{6zvts#f|sU1iub?p?n?ZPtf~Gt#s`W0KWy@rR96RI{zT(s zq?{NdiauF{phi<6H76GHZTXovxfl@zQs1Br7;T!q(2A6ejzzICm3(U*D(JT!(M;Mg zG;(Tuj0}N|4o2}R&>m0O#ZkWgozg(pmcjBoUOZPn9>p>~>DE59KwAGpkbw+LB*oWg z0}?lnyRT_OT=tDGm3FxI7T@AWMqnCj`RHJJ_FW2Zg&?_|hFwlo<^h(gHH2Mh8 zM{4v@ppVw*V?ZCP(Z_*4UZYO{eWFI61o~u+J_Yot8hsk*(>3}G&}VA&S)k9>=yO1y ztI_9yK3}6(gT6qcF9f|tqb~w|u|{74daXuZ3i>jQUI+SejlKf(dX2sk^i>*tHRuf* zeGTYqHTqwmH){01L0_lQ*Mq)6qi+O#lSbbR`WB7874#;Jt_OXaMsEgvyGCyTy;Y;{ z0KHA4?*zSFqwfNJw?^LsdWS~e3;I5dz8~}h8vP*XhcxJqxdijURU?WfhWk5 zK72~Srxkog!DkhGPQm9Dd_ln%72K)dOA78%@MQ&GQSem-UsLdP1>aEcO$Fal@NEU( zQSe;_-&62?1wT;mLj^xl5Z|ov%lEN@pD6fW1@UDXKm0QVKUeSz1;14AD+Rw+@EZlc zRq#6nzgO@F1%Fg&fd?FiXLxg6$M+uV4oSJ1W>o z!OjYHQLw9m-4yJuU=Ia*D%eZG-U{OLEq?j>D%elK{tDu2Eq?ew1qUfOSivC*W-FMZ zV6K9B3g#82Trz~!j|XTKp(g-DBJ@On))9IVKxTxV4A3S* zPXTBfp{D|5Md)b&(Fi>qpk0KX3D7=5&j#oaq2~g0jL`D|Iz{LO0G%Ur4M3L&y%?Zt zgsuhX7NM5`bdS)>0eVE}dVro0dKEyg2;BhCJ3_Ao=o6tE0s2PhbpZV$^agU|@u90vHsbw*d@}(AxoqMCew4>Gj{(FY^a+5W5&9Isun2tyV0eT+2QVT+UjP^xp*sOaMd&Vo(GmIz zz?cYq4Pb19z5y^ULf--yAEEC6Oo-6;047H02LO{I^do?h2>lpfa)kaDV6O=M44^bZ zzW^wU(60cdMCdmF4;LVpIB9-+Si%!tqifPEqc1(+EzOn`kO z1_#(LV%Pw)B1Q;c|A>(WFgs$T1I&pSEddUQ7#RQuMvMr++=!70FfU@X1*nJ^QGodo zqy6;TjE>ul&a?PkX|v4MM%SscSZkyE)U8I(+l;;!aZQ&|&JStY5gy;50asjTu;*50YC>8Y%JQd#?I zELEUc8f&&J&;c4tm2s}ds*tf3Xe<@0Qe!QWv8ptdigk#_S}J4JXskmeYq`c!s;$r|fa$vRzQDecb`EM>Q6`&M?YjC=l`0xn1u zvPNTFER(O*SW4~7G}h%Z)_RSl)V@k%DYZ9fET#6ff~C~n=&OC5lz79Q0&Yqba*M`N zYH!k5O6}V;mTIQkHP%*{?>3FKU9#>@W$n;ds(tU%SgLRj2v$>tduUGqkE9BDOk=6S zJ)yBw;hxf1s&LO}ET!Xf8cQX7L1U?eJ2jR{xJzTHgs*5UmGCu<^@gmww=|YA@pm+q zlJ%a(QnEhKSSr>>sjQDvS^rICeU{4lB9--3D(jn6)_19_A5vMnQ&~T!vVKivHKedi zn#wX$Sv-|xr?Nt+th7{CdMc}BDk~$E6-i}fCRk=$-zLmxf@R32HQOgxL9C7mRuHRm zf)&K-nqUR7x~H;wrm}jcvihd7`lqr6rm_a7va(ZIxd~RFeSU%!XkVCM1+j_~tRU9V zRMzlR*2q-WXpJR%nmJZuspc53u~e*y8cW40(O4?hUK&fqD$`ghR=LJfvG&$jD%Nz3 zrDE-)u~e*mHI|AsOJk{6vo)5Ab%4fFvF2(l6{|vHsaOj%mWoxWu~e)@8cW5h(pW0i zAsS1?TB@;BtQw7_VjZfnRIKG1OT}7|$~ruiwJMc$q{fn-+&o%isT_~hSSrWkHI|$R zm?vs1IT0{V)>taxsTxb=c)G??Ii9JpRKl}2VYO+P=i<*X*tjI5HI7>{jm@OBvDG`y zc-A}Kc+We*_})9w40$J+-Mo{{eD4%@jnD|vx;6)*9w=5xFayvDnRpXOc5uk!xIH+viTBi_IHtKN0| zGw*tfcsE!P??$Vacat^JyV=^$yTv-hyVW|z+hm>Z)mztiw^>`g&DP`I?baLK7VArI zt8IFB*d4rWcD{F~J;~c{&-U)JtG&DJLN(sYp%c7ULTkKNL;v<(3vKsa4?XR@5qigaGxV+Z zR@nC54!85(2@mw%4Uh8P3s3jn4&zv2IS zpN4<)K1<8+K2Pi6eUVn^eVI1d`zq}K@9VT>-ZyC{df%p94Cb z@VI$5F>e(SgsI|OP%w}5lej9v1?Gj|QGAwljY>Qod&fdxdcXeL&5LGjH80s}UK+P| z93_gt6NpPr^aZt%kxeNG$;5{nMgHPTuS(>8IGhy6ldbyoAF$P2-*3BlCFEXxySX7D zw}l_$WGHzWjvi0(Wp|OO;<8&Q*^nf@EQp+`xzYT$%4Gy-p_|pOelUXl*)fezK6k)T-7w~p)wwiZnoNYcQh-1Mfw)wHPH;Q#T$uRGN z*%)z2_lO-f!$ZU1T$%RVZr+QwyT7zQYUTm9&3wopx0_GUGCD<6)i(1PO71mxmhl3n zBJ46q0ng-KXgwJU&}u!&1L&}x3oR0V*~Sixsd; zc0GzlhT#!)E1p*U>W#iz%-8yDG2arozc*{M`2kyayZM1oWx&8K=6|-CpP6K1L!Ga! zp|t%%3cCMh^G7^S;Q4Bs`3u8=QgMv+i?S_@^h1OP1jhWNf)Y^$ zltQCy8*{jl*8f(h*ACyy|IEAxpBxrl??4=n6Y?({(QG7b$n_+P+=v*PacF%f>4&4C z0vrdeAoq}!(h7Vrgr9^gCj z4!$%0F6~Y}_6=ha#vnA1GAf65WG+jGCRsF{wJ?81-)KkESWD)iSM?)ju?%R#kn?e@ z6)+B&c`U+O6UH*3YiAPrjr6w7du?;4ZGQYK$)+?t-H7ZaeGjwEd-7o?_;zTrotPKE zO46Xld)v*AXKiI|8rcbJE9`{E7>#invv`3mY7j;wY{bcQgpK3@z(xiF_{QN#<8Y*L zIG%4DjxY`nQD7V)R$y-=JwbH1l7t|0Bgxv%vSvkCJIfUEx3UhgP&Bk7)AlWhpz5Uk z2xpOnXK%zxST2kTmII?=ozeU$Rwb;UyEH4ZIyqssOxP>Nn@GsFuzr3*UJycXQ0{PM z*z0(uu<=l4$k%X$(ofpBi0XB$H*&YIf%md(zncx*#&Uhzjafp40a42rtXnxNOtNxT zB%=1;%!=@|#Zwr!a=TyDj$1h}-O5>8p@6b-J8tEWBCNbSen;nqxRr0gr3!+dS#az@*NoUc~^dLG4@2!lbb#y8{flj9v&>8dwx-Y$n?niG!jJxUn z^c`B^_nwn*AqHj}?>(=f_jrEqc_Q9>9%IGk)95`N>BB6>hNAa$p%1WOY&d#PcX}@y zfnH{zgeS9+r~@12T*XEKb8xtBve9e|emK1onaRe26GB-gvvI(}^d{BwY`^DCCFu=h z3JKxT9Xg)qez;)9df2Q#a2yko^mOjFju!n&rcjFh*uMdt*lsemkRZCM`1WOTS2g|% zU2#2#Uc8<4Kvx~#xT{V`bX8$DnqwCx7Z|UdX?r1bJ62$AB;_Fdu4~J#Ys;={%dTt7 zu4~J#Yx`Z7i)2A>wd1|ji8?znEzuXwS6xALRpFHuqjwg{PByVgm(TX{djg^r%V<;f z)QP95PCNi{hX!%?&~IhjM%`6YpMDzo-@OUcef4uL)ZBvJ%~E zrr*7~&^dH&yn9_rdZD>+PlYZcZRm11_7!mHhr=9K!4Qup1L?_R2t9=iqo3Cv&eDuJaQgA7hP*LSwq*Ld#xq6(M!o4bRBt!UV-j)C3%%zMc$?x$Y=Cg@(cYp zy4Q`=LPv4wEi_6u(LQuLI@vvRBHcmf;wPvo=mR)^dl0`e_7Gh|pY*%XL6{uEoZ?;R zTy&wKeiu46-i3~4`!X>d>`0Gbv)KNA7do8H2FA${@*|sr4q;)G|CEXQK{i>fI*vmt zR41|gPBMt3HHa%t!tBvEL?wC9J)||dNb5E~lWDt2A2nKu?@}gr0do-Ya-s8~ z+gT~Pz=4gsz}!R^z-YCd&6_2fIKt*{Wea0=f?gzO$Dbp3p?YJaa@0|K;1*UT+1=}n z(UKiwQAdm+Rs9Ft&Xy*GR1e(Bmc>Hb*>aW3ivACiFzjgQM$GQEvcqFxk$b!!>O?F} zP~!0qDYvnerkILE)3&iAeN0A(rbR2pl`%^N5en$4EUy>#CE3%yaOjgog$m#S~axHBj^#&vN;#Z~~G%T{y zu*ojq?-(KSm61k%H8QASWKz$_qFs$BEyhn-4K+H_(MBh_m(iKl7`?Qy;Lx}sSHY0? z^9^}c+>rNWC#tbv20ICu7z_4hCu0NlyVH!)L__>-`I*qlUv6jNb;^yt86?npU)!Gk!oC!WqpPYkq}9uL4H2Krn)L7JwZh$G_ul}Ds$N+-b=kH}x-EATz(DZ)e? zAxFd?jYsJ2>(2_jjbtdccQ%rIOZ**di@$vx@wdC@vpRS_FVpjxEj(=B`2t*TZJexDl>=C)0M^r^hje3J;qo|PcSZ{CmYw((~TSHS;i)Mo^cz!z_^26Y}`pNHSVTY z828hcjfd%5#v}9t<1zZR@q|H*rwwL2Z=@M77#YS+qm!}A7-+m|3^Cp`3XQjn;l?}0 zWaB+!mhqu6$N0opVEospGCng7GrllRHoi7aGrl*@HGVMG7`u(Djh~H8#&5=E(=fK1 zrg5Liji*i9c*6`EZ<{TQkIa_FXJ&@+lNm8XW*gHr+W~8DM$L|9FSE0mZ+0__fQ>YJ zo8!&C<}|avSz!(`7n(Wd3Nz0q|_PiVo zSvq@xy(mUQ{4T>z_7Vn(Ud(2@*vl9V`!dE}VHoYn07lts>~)NWgU#RA8|+QEr5y8T z_7-~^8wvU5kL(@xE^$eb`5k+Yy^mGeQ1ff{0mjM}WQ6$z`w&=5Qf}6;k08x6e^BG6 z=Z~LfkgNtek7W4c=k&zT#@5(uoy|7b?0TDRve_Lr+hMbZZT6IigJl*rPsM*0{xggF z$Ny`9je37oSbXrrhy7Cq&wWrY?eLSB!?v^j7(D;ec<}uAPYs@lS>z{TD%vtZ`%_gf zL4PX3GZK@`&$qHKW33YOSAvd6ztN%II3SqHW+bMvnBmS1+)32)r?PQBvp@y#Xv-+J zJF0j=YtjGJ4o_xgrq|Wq>1dtVT8u?g@Q8s(JQ;9;mC^}*ljPu|ktn?T4_nwz@rKXMEH)6cye|F*V%yBN{_rY}jd=*kGMAEeW;N+(){rjdGSb~Vl=L!dNnf*$3@{Ie?^y}2vkLy^2zZ(! z;bV>>dznX*+2%3i5c60ZnjD85PA2QjQ^?ik>14Bc2H9?&O`bB(Aurh=vcF!mYbXD0p{&=p1F~lC(C^K+4AXqy$S^-JGR+T-cIHP$2jIQTkBtH5Cq_14f%&-sZ)r?1zc!|u-y0R? z4@RZ=qj8wI+gJ(w1oLO(4D%Obwb@`?ZT@Clk6-G&g)!qUW*d*PbmJ+OVZ4TWiJ!7e zld&w*Vo}p&?aVf;y%}TO#5jRHxlY251>=O7hjC)K7$?jg!8l=d<89 z;90;hPMA?11%`3LY{T0D!#H6^czfPKj1#8EJMvEcIFZgf!|RK2BFwvpRTJ9H=3Rk_ zaf0z~z{EH~d3RtfFeCVi_h6@CoS1FAgkeys9DJ^)x2eUg}bARmN_{NIyZ z{;IC6kwLcltGXiGvH07v0js;#e@E^3V2iK7CJ(m8*Dx+|Ix%lM`w=c~NTb1)XEz#bb|86)%_Xk^zRl)i-*7SciY*}x z_~{OhEu($VKl|XNC$&ewRlp7cXGQm8F5HYbESnTKD>{J}!3l}I z%CTH*{EID~Q9OojEVg)t^P#{jY)TE}!BxrzbI65iV<&{S%H+mQnD%S5v9nlg z?3|g*4SO*&G zNMoI7tTT;up|P$s){Vxx(^wB0>q%q1XskDl^`Wu8G}e#C`qS6|8XHJsgJ^6pjSZo( zY#PgV`2}E*U2e+=X&Gtz)g-$xJj%fj*Pp>F>)h$*?4RaeAohN+!$UJ;;yw~qkWbvWS4s5cvTu69qBKCWI(vyI9UZ)(Xsx5MFzC1H%?apc67YIs*nL~ z>y0y2fD;`dmOtts0h>AJtAJ2+lvtx+ktNC-m_%7-nLI`>lV@>d@+_`Qp2d~Pv$!&O z7FQx^Rw^}!f1DIpcK*8BZ(4u4Y77aF< zWBz%%Xj8lawjyp1Q{t(oY*dS@DbbR^1O(<>iiHrMTnLp#r)Ucy-8guStQr`{dR5SL z7zeiWR1J9b##JhyMRZuSMLYn;u|Wm2gmJWt2f#S4RRJE118c!VE#II5GEmD{JO1Ow zA@+-fU5H04*>4JLqjR!tbPjCeSVX%;cIo-C4vnKtjCR<<57JlJn^XZ>p#ZJoC4-sV zrUD``lL!JDn+dOqc6gYiMLTTfhs52$@3;uxC;}sBL`aK}Mx>d6Fp=n#=&&Y@s9c1K zr;!nr$Bn2wFrxC`GomTc^0*NptJ1*Sgx~?n!2D8gG~30E>ULEvtzlGHFe^)dW8J0# zGNWUnnel*Vy>Yh+XcHY5ZG(VR|B<#H7qH5_He&yz%xmlKpD5=rJ*oY71irc(wA6gV zq-eJ-di6A8qgRxA9to?7OkyR9TGn^~QZlskYGx(Y8X{dgFmW zbeCk&UF0wz6T>4uq!MSrX0nm3QZZw=)h3GBXWW93SsT?4y63eg_> z({}%aDnk@yh{l@>cK?(LXa~D*hk(Cn_whc#50AFr%2!EqZ@MS=W-WVyX3N4Hqvc5h zWO;OoZmxm6*i;c)JdJwB)OgRB8uW~*zt=O$qf-+-qdd81$X?^uOQU7ZQOWyG6+#g# zZz}MN#B)@9-)VBc=;Zjm6EJ<>iH}6GV3{*HvF}tNmO1p6G$V}%%N%wy?T;FYF1AUWt&MI+d>X!TgegZ4stZxhI@W@k`vi>atgbPoX+khXR&+8xoihn&F&>@ z*nQ*@c0aj{JwUEt4`QkH5V?juOg6Gd$o1?|aua)u+{zxu((4I=!zi+iJw@(fPm>+& z8S)H!mb}HDBVVxRvFv(*wq!5T&TJ?4D)PYjcNYFO+GBgDQkT=uQel6`NqV!Ms*>_?*~ z``PHv4PzLm#t6=g(cCuX@igO5{K&}RyrpqE_l)y+#JHHZHZJFFjO%%pv6*)@w()Mp zPTs?Km-jWkXAZ|wZww!9j_0Gzefb#k zKtA4F#wVDE^AhuPKG{5vmzh`dDdu&2Z*x1JX5P>DGaur!%;)%Q7UFZTpq$6L@P({5 zuVe%HA{OISY#hg;me;XadDu`~J6Y&AcXUCd8oxA8OBz5HDEG(V3$ z&(CMO_-ghF@b~zI>|?%$eGd2yzm!vc8BQqH;co5aye;sq{7T+~U&ZqPhw*FpX#Oug zgSj+gQ*3tZP>s0=wwU&Qn zUCF<->iKupHr`;}gImL|Th#i|LN!~C9kD`oTPtjLu+r>K!24L~_8@#$Ef=uJir5pZ z*7js8)85}|W6uG8kQKG7takP)z~ils_9<3p`vR+*y}{~X-(vN%H(LYktyZ@En3ZEc zYvtSTS_SsUR|)0l*6sjPKGts>1B;``dX8mVOFU#)+%#Kta4|jwYM|Rn&wnn z)14!&eVt>hxz2gkJm+F-fpdkm(7DDs$k}8qcD7pwJ5O1MI4@dSV17TIzS4Rqe3SKP_-^a*@MG4q z;is*a!mnGegg>)hP2<)ZX}0xdTDtXCT3hSww4v5VVk^Y_7N1hWMnJF?l9mt4?Su(l zR$9+sD4x84EwfeoSzB|`?hHYKMfep_reYQbYLyX=s*f zfM12pqVDAA@V)$MU_Hoj;k)?;U_Hr+;XC;?zfgwEj)0V|>P zq3Qf#;*iPop3p=tK9{tY(NkS7EXDl-c|*6<*h!Z9`}d{Bml$`&t*kQhA#wtL6e&v0 z=g49FF<@ovHgcnkhjH*M8IR+~{rr9YDg0e>JbzrI;GdHf{0Wi5dY!z?pM)-@){huH z#m%oWJ3`j^X{Xo|RN8X9NU(}OCDJ+>WGNTDsLa_#PU6q_y!XgT{;c4IUL-$Bd7&@K zn^ImFpAX{CLGqMvN9ZTCFAvXClBcHGY7=s@IDPPrBEuT!6Qoq^x64z8#JNNK0HRq4 zUvBe7HlOR?TkfF{zEtdU{v-bqCm`wyT>LJahKR!vbv}}ZkuuZB?9@Q2{|Ac89Ag{) zB{q)#@3%15iwqn4nbiGEj{24K3*K7k)qr8{|9(9%hh2<+|65J36&X$c8(ATb6oI$= zkqp%Apw(^yJE;AiumkHJ$GYc#%MP?6qwU2Bc-jB;p$(RfQ+n%l{7ba;|3s;|Uh3p- z-++1M|9xkVSL`PLilb<1w94L1TK-J-2?o5({~<>g+Tw(^B#i(6ezS9wH(uobEk_r6 z(FwhnXzTwGN2itAZ|;l9-v0yRnq0l1!1zZ9ZidDF7hJk{nRoL4?bZ#h=!qZLO}>~! zf5bkbg|oKw?R*i=44-d&G3f<$F-aWc1ZPa*^j6${z?Ue*VZOQu;q_Zj#MxXx&RCDT z3<+}nm1K}0w{iTC43G^2#Gm+k^}%V=d*cQiU^dOP`` z=@20d2TX_Hc>&Mc@q;GbPuvSpuS)`JbkOvI$U(hoj}0{SK?z6^_vt#4=gH3Cph@Znor;(!pPq5R;*|tY6vopvQ zHeR#0+mXBN_GG8siR`jFlQ--xcjP8vBNq)3Yz$M5jp0kg#xVIV*cc|? z@OQ9fiaT=TOa3l4n;5wa7h&Jy?_*&A2hay4}b5XTH>zNN8+xPo1i}ybb5mRub^8b=+6Y5 zc#VR8A!xitq3-c>|22ukYZUw&aW^aR8U_DO(2+!Z|1MW+yC73Eu)Mn^?q-d~BQ8v3 z2gpiQS5>W$~*Vf7D5@A%f-{K{Y-_80hxRlW*9>yD@*pE$%^34_vLjUl62wV_q>V1f|`r$KP zOK7dr`kM*AZ8Sr&1}f@}ok0zxs~Xt#Cu-o8pavShS%?}4{eP(e+#LFwHDK7X2KKHu zUJGiVrK*9q{L)!Q(z~0{4BT3?@TQG=1*coR@s7HefG?E=7x&(ii9<;*bK?CSdy56V z{fm2l&NwVDY767Q316$Yal}o>ibO3DYHhaA738Zl{;M(im=GTz!|3&4|IJpL_z0HSPh2NbBN(toBiM)92$q=`!G7~c zu>1K*IO0>EL^8VJLtn%$z$Y9E@%}@MWZA<=J9{`ruo0w-J&JU<$Bsa*S$I$!dFVafqiD=4!UQrkX=hV3evZXZHDyP9^jm(uR`GTO_oqm%5Fbe6q}&b5!C2iZr{CHAp& zm3=%t(LRx$VV^|LvrnOy+o#cu_WATido_L3zJPvcuc6=Amm1W*%;5GqBWz!8xWL=k z>y2LaRYrlm!5Cv-XH2wjG$z}(8nf+9MuolESZv>JRNGsPBkgU*$@X^REc-5FwSAAV z-oDqk&VJ0e*?!!3+i-4{>6OI z;pStGWq#n;%yb;q)d{mfPD?h-@z^LQgN=7uv5COfgvk<;9n1%3bgO4%rt1b0f5npd*S>o5Qy7P5bJF7jW5xw|YtAo{198dF$tWG$t z#ql)1!0HSP$J4lCAwJ)L<7s}jC0{EV!;iMQveSr5rtzg#H(=>xK0m^?k+!8Mnd1N&oXo;7JGRW1uqa|J@YDMaKy443*gxt@5^^YZ6lZV*-mVB+KyE=Gm zLmwr_`iFRJ@R^GWs~=LdHSlx0{vlqL@puqw{3i%C%^=kLfLt!qGLsx@^%rUJt6&w@ z0AN{ouR=c?%^NHiPt_}E2q`xl=?L#Q@-Ji(ff2wMYn;kfxxVryD)oLRD*{U@j zci<%By8c5|t4R&2cJ)7EwQ#oPV+nQtiK^8^{S{pAyVou+e6MHR#W8F5!l}zPW^(^1~BLdvRm_AKP5A z1}9C;ts!!1ZVkb-d=Q?&@u~UmZ7x~9Mk$+1kg|u(C8w4+&T`VmIgDgED@i-&2-49x zj`VX*B>B$CWWI9>Im9`YEOSmHM+2VVoI%cZ&L)>R=a4I$3(1Yn#pG`160*~|jO=pO zkvE*n$w$r=G|jnokDE)ECT}iT*}>+Lg>QoV+07+?N|Lg@Xe zfxD56fn!O8_`@oluCN$Yt&jSW`1r^ViAB@wLrEm&!l7W<+V zBUtGctQ4iikI{;sfIXj@1S{vH#m~`-8SDwuW_qN>FVTuFS74iKnbb`+sKp2WV2QdN zTD!>E;7A!fytBbi2$Rc6oHiCGl)16rAxIc=Wd>MwuD0vDoc%YFW0|)vDgNz3@oxvw zZ-Ul77JsXb%%2M_bBwYrbFGQ|Mup;U#g@6&&KLj5VvTq$vdrNs?1+p`oOhXe0php462BcQg(9{};|Em!FjWj*=27Q#;OrNH<&=;wm2cKle5-Epblv8edKsRj=ke2eK0mKl;urMed7WN`-_)z~ zTY4@2R6mJ#>GgQGehMGZ8*;JUR;c=!B2RB88tP|>HhL$~Mei(n=v~A`dRK7?#zXY( zVzk~6eK0`XI4Mzf^43FB1p#AwGopg^|P`k!33O!!q42 zAxwN3S*GHP$TAh5`qrgN^~DzLEZB+(YAsf29Wc_Ut5~F+jZu;Yh&ftEj8ZgIOx4c8 zNT-{{7_AdV22B>jwayrsG@bv@y5K5{D~I-@E%J~lFAEFWq9Kw)x3$Z=-Q#SB)V3fCA+4cExQJuBfDCjE4!-lSI<(1ZmbUD7z=-c_X5fAKM(o-u0Z<- zn*9CbXR`%u4=zFGJ zt=~n@=#yxrj+$Be6#7`7N_+KbbV#4hwmyRk^#{0`J_~AmHZRrZ@N)f8Ua3FEtM&Q3 zR)3P$>kE0K{w#0OpXV+5Vt!kHk+jH-%e)KDrICn|+TZKbMFUukGGP?{T!lom!arL)mo>1ni7&NEI|E;G(h1{>{_ zVMa$~jB$=K-sq}KGg5y#&X{o?;$4& zYBQodi3*@R?@P*)NJf+=k%%ZyLPV5D{Ye`MVgkyeexY5B5h#!Pwl)eQP#(C#ufYhE zM@?(jVg$;gKB`@Z5h#y3L%SX$6AtdN+TSstyC}3Zp6r;&FZ<@O&GcK zv3jO98Y7SPs*SXpF)Blc)DyH@Fe;0)Fv@CUFe-;{w$N_Hs61CwrfUBn)c6vOB4<2G z69rY8^VOoTm`??DSXj)bqPi#BQO=iBtzrgO_Ib&?qm!w_GOXai49}8fC;fkUzf-q> za>YM=?iF}o{)?9iXqnnPr8dvdvj54m!ey3uR-dumA3AmZ^S2w5x%tR>E#wp~syT)E}*m+RVg#8wvTd3N~kP3NPjqR)MuD&-6{~=deeT3XleQ*NablZVl8~ zr?i5)0D)@q)pPK$l~yVT566||!GeOd{%NH!+LBd_9$QeHLq1d1md3%B6VnO`7zD54 z(}Va`Q0OIRi`0yhGN0$<0#z2U&ydz5ThWsuU3n~4bgr)a3o{y(Ipqx^(cN39nvpT9 zC*|nQsU>yiq)>NGg5Dg5HZ|6rW*u3tCN!%t$}y|QW$8|o+YfKq(kA(4^&n9sdPlmG zzL)gYKo+5~k@AgARM9}Lsj-C$jjdGGc$=yl+o-Ye4z)AhMb7GW8f1J-mm8nZJ;vuW z)7VL~jIU_6v76=^-_kr|FFj%WKue8%$i@5#S(v}l`^G`qWBiUx%RiZoVosR~n`V-a zGgEwmX>t?O;+CezZOroA-OS@&W<|cjEZ|{gZ60OT;qhi&zR#@3X|n;ZG8^+|vk7lC zoAMWCGyW3e@6A*BPqT$^%vPe3d8Vjhb`bT=b3_}nljv=B6@ATa;zF~#_?y{7Ofvgq znaEQjeIX`5Uwk0-g}5%#7vh>oUx<;KtOSWNYhswMIS{-RgSBb!{GrU6=%-BwS|_QU z=&a4aC`Co0rFJ()It>zawRWNeR&ScJ)yPvREX-nThSk95)T91&a2$0(aAFJATVx^x*@=OSzhrz z{LcXJv2R5TFtgQ1*#(5`P6TR?_QElaKC3P&iKAL)e9C12JnY$e(9u@@I>r{MiJr zCXGY?p;|C1F{>)yLKcvhiGkcHa8~8n637ptNgS8&OTM48(d2u(2~8Tpi_kWr?F`_x zcUn0yLfydhqR?3ClU8a)E1}~vG?x0NmDKXaX{BMb5*mM@v2=1;X&kNi>P4!A1+hv96#(26CEchCA_d_4 zLJ#jom8U<K8_>6{G#AEO+=pDDk5p&!-G0R93W@MnuZL~#W8+(P;*%*!ZcUQYSul_;n% zm@1h=sn8ro_08eb+8jY$&5<;~yqboZqv&Sy8k%fgOS8?<^oV&g?Kf|w-^{Ue&>T;P z%-fmFJ6SO&v1U$X-JH&rc@MkheO%Ujfb-1`l z%My25ws_ET#B7Y`Tb@{Il@)8PisE(aII-QTBEGh&iejs}!d49>X`QH)v1%$!t@^(5 zSdBYo07sGXP)>&O_(&=brAnkcl)^}PD3u~(Lou|c0QSk&TY0qH6+Q?E0_C2Pw`*Be5_)Ys4tdOF(_UX#M@3@p}qtavp849yl@1n zzC;3lmLe%h)tAb3J<-gNq8U*0W@eu0_3|rY8uO_pCUr5vC0V##HpXqAfEzvm4g&mrK8!2M?F#(sk3yY0;Kk`rWd`773ioV&K&N4KBSbg3@E+ z(m7E2UvTMVIncViB(yFIp>-Kx^#!!$F|-oMsnBXqRjsqAy48UiTW3={t0NUz-Kn?LgD$bo zr7Nu>8gBKX>#W{1+PZ)yTj$eMt3S=K2GT-n5UsQ>rM1=-^sesofL@m$`Tz%{Mgxw$owi>y2OB5NuSv!?OY)^r|c&EWAEPqpshIo5r=$hx0b zSP%1R>rsBodYnJCp5WiCC;5Q&6c<}h3*A~M>RXGmxbn#n+=*I%yH9+sTp@xxkr%<8 zC>wKSH|EM##FY^olC@UAmHE4fEAvO1th%C8Z@x-f2|zRG624G-1tT*)pU~o(F;{LL zbLFC#D-VmfG9L&*&hSBQ6B)%cJmktRg&}eQd2Tr#6EnVJKg3SkkONDvmxQGa^2q^58_-sxy&l6-s*WtN8^RJs zIk2=E+aku7%D~bFAC|f@xKa#DuSy4ywFa>CDqv|HU}*zjX(M3i4XSUwNv*9-)YaNX zJ*;;CKkv~PYX^*IQ9~stx#71L^kJw$XiEXKwEsMh~-S%D(6|I^fo!qGNs>@ z^DI;PJvq;q(n0O=jH^!DA=k6w%OA>lR($zmInRnOe=6r$@#W9uJS)DuQ_i#E%e&+} zE57XKfP1H{3@*m6#(Ee(UUv(rlFXiJb3CjUe@ z*Hr0Ratr?%Y-yiXx<^~Ge8$+)v(%P1gDq#Jm7-`%7MsSFUZu9&A8hH6R{BI+f_%N` zjh$a=%Voiq)@h|*w8f7>2M^;_29(;;C|El)tqhE|WS!@MEf<&ELdC(BwrOQhv?a&} zi{98}rM7GewzNqrS43O<0CfDut}M0Xfne?Qv@$r_l5-lDGPKl|(EWc#S{WW~@jXQG ztBfqQC3OEcN-LwHEq-i1-g0e;EmHIE$skf_vLG@Z-a`^{feNL$z@CT;{8h#tKE`>T zR*tWWxj^acJ=BWMcz@)bN!jzP>^*Hy4mbFwBsY*}OG$2k#%kE0~b`Pp(pG%eOA}X|dQB}J)Rk!<4W4kZ4 zv(Kj@`vMwd_oGpEe;Q{Gpu6o0X`Vfh7TXumTKi(!W?w=(?LqXjeJLyUU{2aYc(gs7 z$JirztbGlSx3A-g_6>ZOeG^ZyZ{g|ot$dF?j%V8Aq5miH!}gv0h&`Dfx2J*&%;1Ig zJ-o=C$&2j=_(l66UT#0kEA2;kjXjTFv!CGC?FIa%{WNc}pW(Od=fD*f@h&^fyX_Z6 zJ$t!mZLbjR>{moDdzI*KuN4FB4Pu1-y134MQ%tlsiK+HK#SHr$G0%QiJZZl#R@ghl ztMQU1??ip`2+K zE9W_+^mA0@LMNpRcXZ`i$5L*0Y-Ng5Mw#y9DUUk&$^xfAS?*L));Py2uQ?|u?>g0$ z51pFIUZ<9_->Iwo=A5jioKsZCX{=Utny9s$Q`I_7E48K5T5ao`p%yu9)eD@n)B(;p z>M*C1dX3Xno#1p+Cp+h=)12PwBTgT6zH@=P%;~4Db_T2KoFVFa&QNu?Gc2JxBNAnt zYZFzR>k`$S>l00!zbBeue1>ylqK7j&aglRNVu*8FVx%)MF~+$oG0mBjSl~=eJmpMF zJm*YLEO%xkK5-t9Jd7(L5eZx&;$eyR!NWe2JS_2g#KRKnBOaDm8<~VCkr^IDoLCu| zgo$UgZ+#xtE-_pC4kLt5kmt4+BZN1TDX_A5r^a5~$^+HV+@ zM~vbs6u^{6YVC@{?eB$VXTG{SG&?IK)X?m#n5Yt(odt=fLQd#ss3GuPt(ZrLf%jEM zGCQ-~Ylj^}G0O}!|FlOLc1P5`U8Agjepn|+Dfus6B(`VO-6?fY@oZGjWosCM01=s=@I8Gddzv7Ry*5itMeYc=X^*XIG@tD&S&(a z^Cj(fc5}kn!=`h9J?9`-bAIR6&LQsP3hwJF+}~AssGH#77~kL~`3_g-dtH}j!QHUH z&F5uq1>Wjb;%#na-r*j{JKaK&bZZ>ZApTMU@n0FlNd=JS8^lQ!Bi|rSCNT01Viaom z9~s2{xwV1AEeb3Is8+%tKHPOjF^G?J`H>Cc!|aGaL{qgyNf1$r0B1@9F=jA1`-Du79Jl)ghlC0?y9);D+$TPeX=8~-XuvYU=$MRzY zxJm=vnq{&t$X1+H^%vVZF*5TRyDW>%bl77Ik00pJvV@^;Y2-o>%oCMEu zLRuLU!i0R1xXh4WWdnDq;0^6nXnt|4_(lKm-@Ituf&@OF9N9NZ$i5~mZ%KIbAonRW z^O$5m={qY!!kdwOJd2e5hCH4pMueAMl#y?@F{Rull;EHrH1a=)W+>fZQX9v)$Kv&xjpG3w}`HA&!bUpZ@SU#LpQq@(=_)odepswo^vm! zw0kAJ;tr-w?hxAU4yUi(k+k0(LBG1ASh&}7!X3*M+}rp>cO2JpCvanTBDZz#;Lh$; z?&;pm1Ks<0ggcWby0iFB_d%ZKJ_HAxS ztspy%=Oyjnz7?LEbQ1SL-m9ZjgzMk8Qj=#TJ&cm5_VXGFFG+dtN-rhLqSv9q3Q+-E z`r=2Ckt~mq$#>?sz3}-JQyWytfD|F?K9htm56#4XqC=>p&ShI3pi^7^Mje7P|1?vx zN{Lzrh?;?4YxD}ufvDx>idue2QR5b=y5-bLOOh3Wu5!@HL%^~W7G`TbBdv`4>+g5) z<*t-g#vjX zi48f-JXRTkAsLrhjeOjbcmRzpnIP;K`$I>lW_&E547mrc~! z-9r7{t#qaPPa5oQqwC%6bcg#s&2-V8V=+)rqO`#EiMchN5QD>~qQ z&9?g;S9bStJ@*H0@BYjk-2L3e{e^qGzw(XlAzuV8556n02wVdZDD*|((pUs8NuC&r zz`$h9Pz3rXYhffs;C$2(leccw8hJ6 zUG)wlUED&?sI&TkbTyFQx0ntp%?#W+D!)r%Sli08q+;{6Sa8N;Gds_giVa!}G4C*j z4Nn99Qb8*p>y$f=AV|I@tyiE2icHH=WLkj+VaZiwcO5}^bHq`ejcy?EN{h}$muV6H z+2}H#^fm)$qt}k#*W}^hAMjHsFGKn3cWnsCzemuy^2)R zE1=q5C93BYQgiQkYU9KYe1KJC({V8Azkk^q8q)_XqwlW9`#PA z=e#zQ_S(`bUOU?4wWsag*|gg`hko@s(!adUta{x!>7C1-cODmdMO?+}#V2@u_(ZQS zpXBx9)4T!P!RyZ*y@7n5cL@*iF6SG)EBP+(DxT*J<;T5Y{IoZmmv|$1hj+a%_>anz zCjKxM{B02Y0$=dg#)7{l8D?hlE6GNo;IHttpcMR*o&15mHR+mzz72YbV5gIg%mPlHfxa&Kw&+)(Ka+H25BheP zcR}AC{XFz%p??Z}2lVUFpN;-r^d0g1_;aB^maf)7-wFL@^quiMtI>DC`W5KA;_>Iv WcSHXY`tIoeg}w*Y2cqvu`u_o%KxJkC literal 58260 zcmce92YeLO_Wy0OGrJj^p zQL%Td&o0l3y*>5WG5_zmQ#TuZn&@l3?Y7BNzuj{`V=OmPZ8E`G_M+Nh zE0?ZVG^}D-`I2E3)%E4ID{9N@%a+vC4qH)HTUTB?Y+PMkdDWuI^4eJ%H<{urv!-_0 zu(Im<%GzPIE34}(s>+8sshq{?YYr)|o>5j+UdLHt!L)WxJVu$nJ$t~NS2Ef5Yo{_ z3JK}tB1MFBc99W;ba9Z};e>Q`k!(V`xkwHn-Caae(8EPE1wCCvQ_#yrGzGm~L{rem zMKlF{T|`sR&q4Au1^rz_Q!v0qGz9})L{l)xMKlG2T|`qb#6>g(LtR8uFw8|X1;brL zQ;_W-`I>?p7ts{tx`?JA&qXu^`7WX;!u&0Y?3ifglO~Eu5(G*N~5lz7i7ts{VbdVxV!7LZi6zuIH znu6IbqA4hK5lz7y7ts{#<06`Zxh|q9nCBvzf_+^?Q!w8_MraE5gVc_jT{36-q&X!M z#*qv_#3K_YmCh}hNtnTzIceWHlV(gTB{YKUlS?K|o49b|qzTg~#^g+tOeDzSOqI+i znL}_Cl3p@HgE7k!dr>>Ef->?zEXxTq@#F5Ys13A3uBM z!U@yHm6lGTT3e&48I$HsE199ubd;X4&oo_A8&o^1WZG2Sg|+3eKqbbp^6as4Rm$6TwE}WZ#K6@j&q`Yobg&s1mbROP?ms(k~EScuqd}v0m;T08?%flVY zEkuVpxKtGthUm>55$cZ1{h{Q%Y^ZW?ta9=wr3t&_<%UMnc~4Dq5Z%4q#zRe{WJ6Q^ zy^&i9whj0(B`e%tz~gqRM={UVl9FKsKo;KN~rExQ&v+ zYG%yxvoYv?ExFC+z^Hn)kUnWHPtKnj*Zdsx%wwCJBC4n^7~T8=u%y?Jr^r(BV7NV& z&nckP@Mz{2VVJ#ShtlL^FlJYGKv{{I{{!E)iA$I(OHffx^eimw7n%ZVz4p_s}%!_@6 z+)Tz?yjHKaoDuq^q;#_|7tA=s8@1&y981ckLmfJ*xS2{xRJ}@zoHw0PY0+@B{AWlk z(niXAvAV;7x-BZi8}Rg1k$&r;#1R-#FR`#m;)v{!rpwnlDJVH24}9X6)B+kxEWjJ^ z5(}Cp5*vDQQrM*0?BUs<$TK_nnj$g`*~3SmJuf~_SE=K(vr(HLucgk3&jIm%ynby? zJeeFXKHo8GRDU*^8$UjqUbB;*?2I3u_dldE~diO&nsldCzGD#6 zKc29k*?D9&J*(>ag5G#I>7k-Uep5Or554@OqNMJY{~6`lF&n=wN%7;6gp% z+Tv&D)0_4Ziu8!P3G}M{1U=+#0_hh&K~v!*6buIqUP7*;+R5d}F315_`U#=N3rO#I z33;K$3kpKy=7kzBASLMeLWMyaGzNvapx9IGp^?|r=?r;z`(EK(EgeBx0f_&@!i6Bo zb6WCTRv@n@yNJ}9mr|INl8=siDMc>3Ib{k#ikDKLJLq^=*&}i=yk3fDY03A>9+8XD z@=^+PJ6@UmP)c%{e7s)2jOI44OxOuaE>jeuxXruhZ0Zv-7EF2DWRe)v#Jv=~jfF2Q`xj>Jiw#&3G2X-{p zZCp%Ob!-Tyx{eRwRM`n3oN7A>L)~x5$`t@lp`>Ny^B5S|RV&I5MZ{I1h-Kx7_(wRR9ue1uA}T4zb>RrgaYHDgnsVHvTU@FexW$2W z-M6_g6>4x`UE`fDOz~SBSl4rxhAXNUBmN#@h6RxT1_QJVo!iqNWz$Gdgc=c@^MiiJ>Yy zhI(GV0gY*LUJT(x&p$&r5%fw3CyHLvHP@|N1o#aNAFf+`iyE(7LcRYNfz{=Q0enY; zHN<}J5x7EwA5b}fRR4!m|B96^S4J7ODL0}F%91QO$) z@ULzDZ~hG`hpy48$>_ge&jE9(((i1xjoqtrqky2OA8mG@8ztPRUu||jyO$Dwv)Ohe zQZo=ahA1Iy_JB?l%4QEbP{d{rxpj<1y_79xvxl8T+h&h=ZMt=&+w4&%v8~M>bD(xM zd)$HA+w2Jk%Cy;&4%E?RPdQL$n?3D7U2XP^19i9A4hQOKvu7Qsx6PjOnq^=o(A3{% z&pU|&ZT5nj*v=(*sLft<5{KLDB{xyIiFr2rr;}J+K(B7% zV4HpHBv#t&69=lc*{2S)!e*a2P_4~Acc6Nkec?c>Z1$xC9d5I)9Owv}eeFO;+3epA zbhORBaiC*u_N@aQZ?o?l=meYn$AM0=+4l}~ip_p-pwn#jqXV5`v!5L3Oq>1eKxfbd$|32fD@PQ3txs<}n9quz8vT-Dz{%fwtJZl>^;n^SA@u zWAoMybg#|R9q4|Ww{f5cY~I#^92YSusT^;BRn|E`dw`|_sf&OLl9uD-5&3ih~ zdp7UoKp)t=w*!4>^F9vrvCaEB(5E)<=Rlv^yuSl|Y4ZUN1hqHNfxfZ%AP4%+=7SyR zdz%k&pdW2M)Pa7s`7j6i)#k$;=r@~ZYe+Ji=QxnCd9DK~o98)D#OC=9WZAsHfnqi< zbRgU2MGh3V`3MI}w|TJxwYB+32Wn^YQ4ZAJ=A#`b)8=CstYzzI71iZ4R#q)4uboqd zO>EBEPODj5Ryh~TO@zCVHhh_h<(1{j%Iay`x=a573!2%rakjXzYoqFyS0G#Nw70|rH&gW-+BC-od3jmY$N_Ur*#o;Isryf}%NN%ytFAbrytZ_CS#9}}(t6Mvlig)6 zvQ}ebjLSZNWM9tq`fsf?LqxOHgB)1fifY(ZtcEvJDolEeN!iDg*t71RO1<7an^03# zRZ|_>LyO6QvKO?2gzdPS!P_x#AfO&EYCtn>HBTXD@w)Q*P@NdO=DM#52xZe|a;Ac>hJU`_s9N{ps9BlVrX1NPA^<`}=1% zhAzV(mDeqogtsZGgOjrA+3W>|%G>ASmro?o1-2dEWOz!DO+6-Ivll{}=EIHehdt=B`$p{Ix zElcGb?2%8yPv`z6%?XFY0#VdI*Ov3-zK#&rLSbb6F2khB{p9|pTmXfb+I&-Kv*iKu zK+Kq{E5HHCqC-2!i|a9-2XQv?55}l&b=9Jp%6d}z!QmIRAxlCeKA6v1qZu#Vz%F3F<$V4>LGk05mz+5VJuq_XfAUEo7 z({nbtMZDuz;4u%W%W7K=lf$D>{wr*Gs6KeHaB1C&n5>g4O^KoZBQf|LCT-e~EmzU7 zo34taS9Z89SIZ+H5SZXkSYAy6*_Nls zQ$ZM+7Si(LYgSe-f!jb1!jxtRYla^jx%k}#hfhwo;h zJDk{jokaazw!B-Chg?-wzZeE-T5}u|yqo6UoM)j@<;RqmE_FyX#ab{)1>A4T?eYQ0 z1)NCjpbu%Tc}I@JzO8E!h(C{_pS2kNI?Y@QD=XmEmR06KuXryjr)A>n75Cl%who$% zV=iZVwm^29)DqO+u1OyjI);Y?8%;s5b4jojHY$Ecw40Mjnp>g*3<4_1SvZ{dACi5G z)H?n}TfQX!i8Ou04i>&eJgW&chto{OqJm0ywK z|C+NA%}H`oAADp;XSl{;z+6jyh zA*YN={zBCJ`a4S(e}bA2eSS-({Ef3=|9zNBS1zI!&@ZgOSc;K5hSBTpxD+wDTmAwa zs3dftQsnZMgj(}PBNXKlKxHDfGL;24Vi7#Es`AYVl^&C{ubd-ubdG4y)Wo98BQ zsaLvWB4}}IA`)ECbH}p(M8!$tkE$K#D?28462I@%`cHMTRcD1;9BosN#BnyWMXDyX zCSU8QZqPcaJNWUhYn|V%7HU%Uv{f(F8w?Q~d7~LcOI8(v8UnKW650J=M*lk5Db*3V z18g-=VMR~T9wZ#G77B+bUbZT$&V*RkD_v9JhEtVjhu5 z#-U{-f)uwdqO#CdMG7Y!u(XMDUoAD<&PJ=deiTz9iNaAWGTh;sh`uql+Cz=iLJa!! zFt%)!OIIB9ePm3HCn|B0qXo-XO)4WoC)sMUngaFU9P9y;w}=~^(!t9vAtLwWY>&VG zvXiPJ5~tZ}x|%`mg+BY=QWD*p1OD5dMI>Uat_36}RYfG0+G>v42kfX1A+?kpb>UzP z=MjNe*=d0v8Lo+xJv_9XdnZ^`I|WdW6C zG!+5Yaf|zM5Sn-9$K+;mmp03}mRbo%%yF*Wtd_#Ewd?-pB<1VL`Ze>a=B2S#9O&NrzVit9UVWhB^xq zCv`S12w_%|TBgKb@}-H_X1Nx_qRz9``RW2N>+-U?8JI<2zSe)hew1>NtuFQ_7jrNt zqR2~Zbt#8~VAPglIowp2b2dD+rSNQ_IZ7{cn3I?*nXT#8gDROwHv~KdPbX%57@EU} zA*D@AL)0R4+?8$&Hcf*?h|n=sn&EhL(0TDzA$Fl-_>)_pNJ3S3jDTI%@av>A>r+}# zbGVM6>L$t{XSg?uqoHe}7;X%ZY-%&B#P5cS6@XbIu%6LcOB+ff9WZ9dMMWcj?YjPX}7Gh_bDvpH!Zvi(fIX z6rCk+GR(NA;*3!1Ad?s44uF>s8nmLAI*q71ji`GyprpW3uOpk**>ty!wBDPxdQ0uZ z&{0H7CvN(pobQFcOd#vsI(Pz~MS)OFehzVy5>}4S|=k{1c{c;7DZ9>T2O67Z6ju+A>Qe5OQ%FmX-^%-j8;TQv&fUWuKK0?tiZ5=N$DB0!R1cPwrnbOJHa94w$F<^s9dH0xjYRSQ zG?93^i|SdW5#%Pg(q9Bk;KB5n1P`XWq23y&$I-T1#+6Ij93rciM4@BEP}o~5#ar+| zjDQC&j;Xgvk+xdSO$gx(+9zaN@%lVH?E;dfH0w#?u}#cKlakAonv3 zd_|?1vv<=g>hz`|&J31^oJV7nu?L(-1N9d-w+G;E7dB%-le|jMdK3{1$K8N`NSB&o zI&?=`R@K1}4{WBI=IO$^QC}K@zEHXb)@9sTOF^M!O!KiqU|45y)AI5yW0sE<mlc(0hQv3fAw2lU{)5F5~KKrfyypn7m&D4uSg8gNyz zhsV?q>d_GD5xs23tH>K+8A}7K$TG04>-83C2m4qadW)kCZdxvSTOD8pma!th(7)OM zL*MHIEZZ_x`B*-%!+or9xMk469*4609LvCfxL6@_9_?fKXyI5ND@4xYeJp=CbrRz_ zBs`vUUDz8Ry3Fgr1>yM6IFtSN@{kMQ!=bUI+ogUy%^X~rqdT7-Om|Z~m_8lh!E~$L zgXvDC2h;6S52kOb=y#VLQ+f36^61^I_j_7^w{@wH&MNKqPL1>7`kMx{qx7vV4y1}Vwgx5NfXdFp2-t0G82p+=W3HL4L z;Vs@CV0hnm_*fC>-yC2_+Ztdfcejt_qRwpr1|N7Nz3-9X_f2XF)IJ{-zV#>$JQFPP}Q=F+M%`Z}Ka`jk&eA>PL`K9*ZZ89>+gB)Y-_3x3n}fsZ0M zheO+|Y8F*IizQ4UYCS>O&8<6p3-$>9}W#VT|f2W^Fkv-7lFO_{E+a| z?Q<`_ARHfJ9=fsW=Ls=V0T@Y-c0o+dqtTv+(T=41y~xY4B5i%FsK|=63$PKC9X*^E z?jhZi_gbRM#y*VR>Xr)0EA2(T*IYBw6^@5K7`d{(qH@@{+S;1#&%K=6a|l!C4G2zK_8&TV^J-TP6iP$o&v9?70uTv>;H zRigYt4JLU*_=tcr7qXD%g1Rf{9!Z6sZ94$!a)6we(T=*%PR_+oB;Sq{MDSi!HMX}g zbqVcbmpX^YDAx!(QcSrbIQCRlRYy^y?8s<}N+XADHa>V#TV0bTw?+1_BV#4n*XK^L zI7Ka?XZp@8N~23CfSRg3(h=!_NYP*nlMj$6h(rqr=$KjtL&e^pQXQ^IFw!}79vZk ztIORlC*kF^N!cMlmawypijrJOcTPd`73bqK&SZ`{X z62hlk@R~x~4rnQP+W-|NErjFf_wVki(AG`(J5L_1t(%6>snSr%Ou1(d~1Tt$O;0~Ra>JS~LVz*~jzIPlgX zJRNwO5Z)GeB80aCo)N;^1Md*RGl6G?@Q%Pbh49Y6yM*wrz`KR;?!bG5@SebXh49|M z`-Jem!25;p{=f%>@PWVwh48_^hlKE z0eoEuKNI*_A^dFM=Y;Tcfu9$`&j)@%2)_{cMIroR;Oj&9CBQEY;g{UlYQw1->bSUkCj95Pk#j8$fW^E$*u zc^%@Kybd3CLtK&9I4;QR5ZB{%h|BRh#MO8m;$plGaV=hlxD>BL+=SO5?!oI2m)~`W ztM59*eRmz=w!02-#a)NE*RDfcX4fHZu=sOu2- z({+g3={m&SbRFVmx(;zKU5B`puEUSq5Es!kj%(;T#3ghc;tIMBaRFV2xPGofTt3$! zuAb`<7teKwYv($|rE?wP%DE14;arEfZmvUIHrFApn(Gi3&2@-t<~qbBa~=NThPYs^ z@!f9tn;YV4ImOe(avkDYxejruT!*+)u0z}-*CB3^>kxOyb!fUF?vHC6x5sseyW={< z&2b&#-nb5NYg~u8GpkzlYb%?v+I_%_zxEHSRE^gS>4RIq}$KyV@4sjb?hqw!_L)-+{A?|_e5Vyc}h&$jq z?B|BK|E+P{{?;Mxe(Ml7zjcUv-#WytZyn;!w+?aRTZg#stwY@Q)*kv1+b%=Z3 zI>aq+9pa9+4spXxy$qGljK+)MJ;C=y&?dp>BWRo8`yogq z_yPp&5`2FI83}#>g7yi1Ac77Fz7RoXf|nu4O7O)9Iwp8If=&s(3_<4vuRzcx!4E;u zHNmS8bW89W1l<$-Py{^^ybeLn1Ye1uSArjgpm&0=M$jk0k3`Tn!Pg+@m*B@B=%3)n zAsCS0YY_}g@DmXXO7N2r3{LP<5e!N2(-90!@O21=CHPqgh9~$r2(lCWJOnujegT5q z1iuJDUV^Vjke}d}A}C1k%MlbN_yz<;3BD1*hy=eHL2-g#gJ5KWZ$dCC!LLU!I>B#5 zFebroMzBYM--=*tg5Qo{T!P<$V0?maMld14w<4IB;CCaKl;GPCOiu9o5KKw%?FgnO z_=5;a68vEVdnWj!2=+?w#}Q0R@Fx*WPw=M^%t-JZ2xcbua|mW7_zMX3PVkoy%ueu^ z5tJtQs|e;K`0EJvN$@uj%uVo}2<9dD+X(he@OKf+Pw@8XD3 zni_R`YSbO6QJYhvwx&kiof@?*HR`?~%A}L3lc`Zp z2T`7+?Fgd0>Yoduyj(8?QC_Z>f+#Q7%R!Wv>(wC2%k_E?<>h)ai1Kpn45GYTZwFCc zu6KhdFW37)l$UE)5as3iD2VcMeG)`@xjqY`yj))dQC_aEf+#Q7zk?_**SA5Gm+L=4 zl$Yy=Aj-@2QxN6l`Xz|+a_tVHyj+bbQIe-d$v>-}2 zCR4TwML8x@whp4af^C8*uf;?t%55 zC~w75ThjCdh_toSs3oY);dUZ%&_%3kpkWI_BySrR`1#Lrb@lSZBs}SR3QdT6e~uvmTE>Z@m$J!TKWpVwA;SiYDU!jP{Mc932sVB|0ts zYII@zwP*lva{vMb^^ zZoGDL3s1tj7ggA5;Gk`?`~0o4=T_O<=SOTqP~s8HW=HCZ+B=!0QxS^MH+`smRN2?9 za$jt0(AGxVfrAEbl>-KDlLJxj;LUPKP;Xr4SOX%D#kR%Ky6)~yDZlQvZr!MfK01Sz zxy+V1ZYyJe6K#=!gOX}?C|-+Al@me~NBmkNdYKOt%Uqe~*5!}jz&quTrXzTguBOQd z%6wVi79L972O+9~f7G<>DWS5;C4tLAS=6*_LXK!!_SDp}ip!C56#bzjgrm`gG1M-? zJrFZajt|95&@o<~2zX+G&NV41*B-2moGhmx)vIYLt#0t2@nWzi#oKI?d*aGj| zGhN*+X9~7i?!%|^88lRP%lVu=AQw(I3Y43nOt1nY!$`L_u)YY=H?VF9GB>bH1f4dp zHVC?HWUUbFcQuQs0+pd|Kra|}SJ0sQBnCF{Z@0+ufm>t+wNy3#PFbUtY?d|D?BF3= zWbNJZFv&JGo}wueE@ej&He~SK@@PSHZI;IqKIl$)Jf3~<9C^1qNnzo6M6nu}rMAe^ z1|q|Bg3i=M38SnOI+bRj*XJ5;ZG&zDi5>CH(AVWud~}Y)>_BXzF?I!(k~gsS>?)SY z{(&4fVRNg24a5?30hXN)Vq35oat}KkA7?!VpJhFPJ&48nhf(4&lz5)qhOd@Bh|iS1 zj!%!iiEoX*3+OZU20jt_u4aO%wAjSkxC~_RsJu{K1WGd5Px4}UBIKYW`$4Xkmq3CB zvcn}U+$*$PDK7(Lpw2vbxx9iYxdF6xVdihFpDFh=mrrin$P_h}9-jt~ihvm(0UBwl{7DK9@n zS;3qS;n|4iL7$h+fmx={%Yc%2c_Y#4^0FE5@ze*xC`_YVCq=vv$W9SbO2?s(sP394^=ld_i>%K9sr$pGaMf&z~NSkD(rcPoAy; z*Pf4$mTttSNw334NpHbNNVnmmqfg<}qC0p`aCIN{F7L}e;{Dlod?1&62#@fgye%Kj zvv@Y|%yR)1@^O3wSgMH6;v@O~d@8(qtcA|H{DLPomt8|7p2amYw7ew};*vJ^oNtK^dy z0~7r$lTQJ%*b$KSr{y#F>v9n`SMESe6rX6_Q$7nQ#xHQ?%hd8Uli7`I28)`EL%g(* zZ8PO9rrZpeWB80#M!WV!yD@}3@e>==2uU@Y%}f<&iNtq~no6YD0a9^RfFHR{-U5ky zE?FX<4FqGt6`gBBu%>n^-OoEup3(p{ABlgOWUHG<|8bvaIbH5n}gq zTyFQIarwXo!5ukzp?Tf?vSxNqUq#KlAyPnO3*v5 z1ib_4c^=Q(z63=EW<`7n0+b{{&xa%kg6dg=ceDg`$1&*%z64#u`r?&fW1BB$?fD_# zzAF5o&>C>uq2RUEYzSY&hV!G@D1I!Pz>i}kd@VbWpTL&zQ&>GenXTfdvDJJXJDZ=w zF5>61%lP^1dVV3>$}eX3^Y!czekpr_U(Vj)SF-o{KiH@I8um5c#CG%Rxy|q39q~o? zL3}Iziorejn+4k-Gxzd+_5D> zKugI2xeJiNhO@Wihv4}L8^xZN9|1DiDpxk}R}x$~h-f(&%%Y8Sra`kd*dNB`6;tlS ze-eUrkbz&=?4MYF&+OnULrs}n4n<2gC_Z$Xd<9JYaWa#C5->T;&Nlh!e0sqN`T17) zWw9CH|0djWG_lnnqOK;+vfxO3>qK{L5NS?yvC1;ZNPIg8F6$3LB|i??Dt|7HZj-y+ zRvHIA#$w>2A2z`u+X~wkqt<;%3nRs8gwdn7cJ5X}l1Gu1cDFJ#Hc)CdEJwzKmLbT%} zMFt-y+Vj0c2VNt(hLruGJ{wnnjo;I3Jl|*Id8(DG?B}RBAX4^wtJYBQr0i#?bgk@j z`54tkwFMhb;6qgckcD#?t5rKdQJh#f0RCxv2+ad*wCaEoY54xL<4i?0ldof{5q?}u zGdb8BOb%s_{{Zm+Q|CWZs1^TBxu40$H$r3nw*p4E0IF(a7rPdv`9^$Gfp1|ol_IkX zq^J#M3VpW8o%6S<%p@sNSxHjFi%ni^@!}}>nHQ(=Vto6$6)%qS;?~4sK6|I96{HjM zI9`zUd+-@-{8eK-`+-r&Swx#UB-nep0EWk$^yHun28H*=gTHWqPk;ycy>j7@@=)Ht z@=%%P=%IK#x_xSw@aAZwcuGedI`0U;pqn1ns0z|Iv5^M-=11svm`T3_Ec)%0uA@4q z>$r?`9T`uLQkt0_D@e~s*Tcv7*Qg7sk#saG!m|X=*?4F>`eP*F4<29xn(<0J7vp&Z zcCod#i>l-A*hSUVv7!7di^_HLrXgCdRTHF`ng%iL6LWVI##rYPn6 ziurtjSilbyOL&=B%9n`4`7&_?KUf^YtHg19g*ctpiFJIHIENo0&f{yuRs1;d4}OBU zo}VIa(B>7iD6Xs1_fIHR4lotoTx#EWQ%!#J|NQ z;#+aO_+H#3einC#U&P&Fw|Go6ikGDjugQpbTbg2*jEZk$n&dJrm23+rA=}6d*;RIs zLu5xe98jU`CP&L2_-1e~IbZgb`{M)jRdTRALJpEg$)Wh_Z=t+Ij*!>MB6$N=ceco} zn4(OOFUyH|6I0|@aw@)XS0Wqbo~oDJTU)^`tSu>Z&kCw8u!0|u6@=w;mjzUsTHshg zWvTrgE2s>0fI5(@pb~1KIta$0uWVFhY7wm90Qsw0td_tE4wgTuaUi#zaQOsZUmRn?P&n&snCJFFdjT&<$?PQL4@4&SPdDDE8KM-tw}DCkN;?XF97 z%jlM#spocGH(@QVo4d9G1P$r6m2}IW&UMe~zCEKWnITz%A2LETpKFg`uA{6n8$>_P zZ|)TM&2Xm&cseYrqxPG9<%V3e;!$j5Wo2Rd_N`ISJw#uRj2`Ko^}0#-jP8yB#0h4n zZEC+AlO5SO=aZk7T9t zC@h1mVe{qDtU?~cR?B1Asq#3sULMb`hu*(Qp2Y5wr?BnvRQ9MmojoJZU@ywE+57S= zwo9JNKBlj_%k@~&zJzy>m-7Mg3O-zJEB7d_-o(ObSFhRF9sv3ysIlJAQ>tmdmqwV$e03)E3+e|4o=OkM-O4fkqb)qJnv5_k=dYp>xn-)lHUUFmuaC#sFE z*Kj<_?5n+oW7O4vU>#BKKLEjNP^;B7fZ#Q#Rq9$m@ETN|+5`w*gIb}k0|c)Dp2GEj z;5C508`O>DHGp$(Qa6*=pq8jxwAU~W-pH+h(%D3Hpt=oE8#V>~xE&CdUDdv-0Z@WX zM_=y%)Q-(UpYH^e!AjLkwHZ)*HdjrRj3i_F3jz5+d~b|^ZkzO zR0Yo)ah=$D6;=0OzTX*K{FB-Ss0(=ceswQ;))gGxpzZ_IjqP%myt-pS`rqn)#C7NU z@?B~>pdS1#exiB+P*1*%ova=N)QdmPj#Li;>J1-Rs)yAhtdCgAUe&7$y~J^Bt6p8` zEnZ*?)T5xZ4}2?UouMoFOJW@B(1^dh*Im0fw2o6FNg}<^1_-);Y9g+XzG5>{qLpuOn|L+FZb93n{dQIJ2@eKr-)>aPMrjCcP ze=OO}eLTs{4II)Z$RQ0@Sk+U6yDO}n8^m1hNNI&Bm>1SY|AIG!9 zH`0H!psF4Z8R=j_6^)URp1}L?{+^L$r?H+;#F!kZTGn2z#I)@&)=?eKx~L;qcXcGD zXGgJIwT4YlYuOxi0^3iW%qrC>tWKTF4p-+fd`gdPRF|+@)urqXbs2j^UCtf@{Jh%0 zUQt)FHxa(0u4bRB>)F4dU>ntKJYC(+`>Q+oK((0R9zW6c#P2j#e)KieMRdhXF98#P+x(H3zkx89rbYh4>W|{W&6F{SVRqSqrxB9 z#mTrV5{6)-K)pt@vzX)g zc5D!Pd%_V-nnvy83y0-QqZ-6KXG-!$leN997^YL|Uzn26tm55N0eaUHpfqA)PiCfv z5xw-~%mU~>iZ4L6FF>w?n}zkeU`Ha$&ceEzGYg>V29pQu3e>wv0`*=~fqIwnLy+FZ z^D>_Ie1S?En1#I;_b3LSB(L{n6!W}Z_~xG1`>qzKxxA9s_yTn;ZV)r|3K_y}>4{H{l<=! zsxR0L>U#*+5A1366MIel#y$jpeu{PAUkuK6t42=WFKcBe-WFj8!{q&pD9<%o^CH{; znryV^^YE#x8hjn=P@@w+%;?OIGrI6=jNV$<&V;|i_$FW2HbB^J*1~p{FKp}7`>wE^ zrao|m?PRq}eW-=)1oe>?w!Zv0^)Vom74Spd9gNAmOnm~ei?X@c^Y~QnU_6a}(q2Xy z{z~k0?QPiDlyrQIG`%KMPXhQTOCw9o*m~^n3^-yj5fSHq{Nn_*t?re%@3V!&?@CAbvrDXb1RLgtrQCz0491 z@NX%-b%6he@N{3k)DI-cI1}aW0IHt|ZyVsh5S|EdE%@!s0-B||%Q81&9)sEDI ztBDNd_uO0GFqEf>+WTpSk!3u_(z1*@4V?3Fc24zFyLmmO=hazQl#ga*`nt)9%*^T# z)|Y;WfF6kcN&>Ka|En|wLMCW+-Y?3QZ*|y&pNclF(j)s4P2JbI!)|XGjMYoM2$Caad+Sj{ci&Y6a8oV-c0ZQt6*Sl^1rf0k|2bQw9&bV zkv8bS9E`M~V4y!o*x5JI83VJh&F30vKuJdW^N^9oTAXX7Q44v!4;d#ICwoR(^kk<% zt>-Yy$Yt$~0+wkMv5v+F*2O4h-HlPKmobL*HO8_5#&|Z^n8bz|lUa^2g^f3+ve`xn zTV(9XYK^_v@y0ZEt}&fmWz1j=#!R#_n>}ijvLB7PFwpz5-;4#E8wYS@90WtXh{ud_ z80%#`9iO-BVN~#5_^@4He86rhK2$f~SjiXSqjXD+)x6R;lCL(_@U_M<{50cOel|Wc zce!x_-(;-gHyLO0CycZBhsHVlTjN5(jf;d~Tr6V7dSL@@Z(J(+8kdU#V}lrPTqC9! z*NHuio5TX+W>IF`CYBqwi)!NzaipznXBc;hbB%k%2IF3Fz455H#du6SWjroE zHl7s!F`kvucutze^U^k6ka577#!Irl@vG#owCGuM@}<7kOvsMOlZ~(BdgE((rSYxYWPB%YHolkl7(dEKB3wQh5pq`qdsPvodPE{>Xe3RI z!e0y;8)>B`MdE4-;JqX1sw~o09U5t;)K z##Kfa$3ZeS7+sBSy4g9FE~g8j0=t4aG$VDWt?a90fc2L<7|B> z1j|&$I-@TfsWkA~8lxZFCmS4BW%LKs3Ve5fF#u2;+&A4A2&gr9aI`T9P&znqh%p$> zRU7bQ7h?#Zw&2QE#!x^B_K@1Gov?Q7QT3294DDy|UhWc7d;SERPjbxK^AA~>F&t0_ z9ETaFU9?Q`l$R<#_EM$vQspjoxl>k2c8rltWmOO4%K?h1YkjohTg z1S8K~Od!`cJdvOoJMKHt8FqK_o*vu4dW6t+8`3sCN^UlaHnDcwj8XGB<=<+I!5Il-dy;EDuBmH2o+^V&J|0gV9vpsiuQC|}>3D_f znga^E=0+a1;9mbQ0@r-JcFnu67un06YwlcSic~WzQp4IuYFTEao^_0@VqGFfv4N3e zaJ2C_wkUEuJ0!A}t%#h!)*w7SauQn?Ih9=+IgMQrIh)-SIgi~JIiI~8xrn_QxtQ&Y ztY;rZF5zjBje6b7xysbabL+SPx9&r7>)3xhw~l>lOmNn{*w@BHIAjW6B9q1>Oau&E zkaAY64839nN3W4BVuofOXO)VM-ZC~Y-91%KfAp{^KN#fgkMSoGTuXHpS#r#3^2N-=*?sa001?HRUvEaz?1M~g~C%V0c{@f?Kb2t4QGxdqP? z&K!A2gQ)Z7$R^E^H?hl{l+p&V(o4|??>DjIos^OWahR79bIL4tQVJTxYA;2vmT!VM z(io*rZxBa%DG{eko|7`6L9Fpo3@4?dld@-nIL1p!qZFE(&+}h{bWZqVeXz+1e`B7v z*q{$_hINFmFr3rTB%)YOpXM*8xAxZ^^oh=_)^udv#UD%c-pqWS7XNkPLGg$u{#YuU3hy5u)r;H)@xKG& zzZv4c725RoBbSlkNp<;fb+;l+=zU_t;pv*EAkod6#0^O zjeNtWMZV_;M1J6lBfs#akw$(PBzuji__3zN&oQI?BC{30#B9TFG~4pq&G!6Gvm<}h z?8KioyYXkuUi@vdH{WIU=O3Gc`A_B$-e`^%${Zsy%soW5IZli*CyQz36fw)3Dh@JB z#3I0z=3e3`bGkUiEEVg_dE!!YKXH?}Ks;g|C>}Exif7DBc*_}N^pRhT|@DSq`- znD`DV>>yHM;sZ~GiTAvjsd!t@E)^Rho-^iSu4u5)V!N>)pa`2TZZ#GFGT8xG1K1ys z#j3ha^I1o^btrIoILO^Nk9R90u5OUeLQRm!9Yb7$U8%Wm`T8V77zn;p9Qzd>ehlH*uki5W2yd63-gLv_JLq@V zOB{S*xXsMyA`osVGuppqWE*{8u^04)$kBR3R$6V}W2#+_69~0XJ32ie|bc#gwE{iCsY4$mjZBJt2Yl0rNvT z+FJ3GoRnb=Vy&0r*h^mNqzrEmCweK4?c=kZl8kllr~N~u4gc{L0sgeB%Bo2Gw9JE)_W=1miwMT&jxX+m!h}0HZj*T z=+z)D_flMM!u1S#H;4^hiuORrGg#{jhU*ywdszPd)>_Xq_-_mKWWDwG9DUaybvLVh zvTG3RUad`X4Nhq48mx6)gSBuA7U4O;cMbk%(cV}Tat%U@_G`&Cz_E=Fu)pknu4U$x|qkXA?C4cw0RtxZXVALFxRpw6Eg$zM7GX6iCu1< z%x*SMVfUG*vK{7WY^QlT`@%ef?Kao(R_2+!i+KU>VO|I`zMgM2FXi``SMdAHEBOQF z)%;=e8vdAh9e>iifj?v3%%3xFEIHCtX~&6Rgp^W@#u0(q~sQ0}k}k}p|Hz-L+O)duTQb)&UW-DX{*?zgT}&so>2kF1;2C)UmCE9(~ZlXa`n#o9tH4^PM0 zNSIB}%&b*^zbpfoISA8(ui$YwXIT4NocR_s2t$T$;Fob6Dvjk5r? zW;@k*EalT;{1+<6I0sN0oYLrNoC~NeZ>8EA=K)H9vxRX!pmw~6Jjf9yU4oxr78jWc+9T4#r z*l;S%y*Npp7NdJ=NrecDeNdyVClIU2T2BuC+dATdmL7-4?!!ZhgaEv%Y7aSU<3@te-ize&LqY z$kU>dcaAFFGivg@sKrM{Z9XQN&Sys3@O`4~__AmQua5TNb=)=y3i*G@HK{&EX#a{xX`!e~T7~c(h1#jE)iAqT|Jo=p->FI$6w(mWX|$dx`_2 zdx_=IY2u7%X=sXkre`n2Nw617$XfGk!jMjD#{MKRKYjOzf!*iwGCL4Q9W4WIXNbh!<8`x0!Y!gAmP z8mBr_WZvMOf{XJV?kTv|VqaIQJE!1YW33vos^!c!^E|Ci%ZmDcpuioyozW>LXILY? zUgb<~|FD3g@@aeULi`UD@SiV=J;0!-*0R^R=k@-mVPB6HsS!=}Xk;&pavP|gLR>U~ z9=#!1kKULvDZYs`VrWu)3*n(j@oj{MG;9OmAq{&c;UNvXh49d%_%6ajlj3^_w=tum z3)mqQd=&Jgg{Lo`GCck8&}6JXo@zXFvTh}wnRsZSbe0R#y+6{?v+*oY1+6x*$p-z7 zjnHqgNxyk$jV6aWsvjnmz`7F&Aw}NGSLE@m`1Xueq{x59LwcO(qD5Ppz!Ggo;<*6N zt$3cq^S+~XXEumiJ+135Rl1X8Vi2J-0J^dt;aIbF?Tmyh* zil)n`_j(2(`AZU{fxR`=V)~|pb1a!YY41;#(*1Q*ogpioE@g%lKCZAk$B>PClNA1a zO%?vV)BqIyy?AcKbDyv9TMfkGthbH|C}|z_Mq)m99ko@kj(V?F_?L@cMWd(ic`-iz z#G+-)iY{X9qvb3!x{P&+#jtSVZ=)<(cfSQ8pTX}cJYvy5QoQ1aZ=0@r^TY;(pXGf4tP_{7F%O+@o=o2 zcp{c5UWs)QAH_P0##lGWW8I}0>ml33ddmFR0Bt-Tz=;{CBhPrqVK5#`$#~!jy?d=) zcJYh{uGY~fU9i3?W5)eZ_O!nGv#}izt*?G+JOGH+SKlxm1VrnrPZ6O;+ z=)%@_u2mT6nGx8Kz<`8d$C&7Q?HNN|r(e7Lt@WzspQylb?Zr$>%nU5cUn-47*PygE zE*HBi#s9r|-^A>p#x^xE>KfNoAGS@6hlzPS*~C2YJFfbZr1(RIM7!o8L-I7G<73Z7FG$NsOP`@Hy~pU%ds=!QAjlHZ+i_oSYX>~09dJiQlj;_DGV$!?sOT9DV!Nm8 zlHKnIooKk<&V3DRusKEgG>C`2BB3iD@TDJZQiK%e4qtH^f5DgD;i=L;1a85V2ApJ8)+gc>;KhuE$~@YM}FqMlH7C74M7r;UIUx)}) zT5PTSXlbcfEG<%9pTBLDSHYFl?nhBEmIV=ES6YkVQHYcRWu=SOQXfcdNdM=)@;wN! z+b%y&&N=tq`R@IaJ2U?|b7qEL+={S7U0 z571)wAT4nZ(NgyaJ?$Q*fr$8^H|gigADp^w}%Y`ZY= zMJ{&`9k{#5<0_Pmsu6`eQ55lHQOvVN7rqV7DWtEG)s#jBvJ^G7k?0mB7QGIUJx+{A!2~Mc&Gha zjDWoORr`=Hit4xq`)za%)#ahE$>Hu%f<3MZag>W(Kv9CdrclIW`y%FfZH~_mqeAN< z4sOFy0dUIi5_+ctPCwgq0Y2jH+1$MiAD#Phh?2I;eNpm6kj@ebi85U0u@D()WhB&g z*W-7Bg+2RFqg4$dayV6p9BBsu9rZ;;%xCs7Jx@YF@9KGyDg6gMPco%X=y{SUofZ#g zr^UnBY4LDDU~7_p*^iG)@-O@GaY_E=Q~G{M{^iqpp5$NtOwT)M&#UIG0I~(}YYPOF z-dQvp?G-dVzmT>J*R4idhqfN=CuonO!P|;*orDscfoJ(%^k4Bk$TNHo@@>Amc#7{W zo)9{V{X;c@2YE!`K^_u#kS`BB$o&Eja<9OH+%51R$AY*+EQn)gF&TStU%a6@uGs%> zdO>0>S~CuNXv5I%L0f}%07?ee8CRptMf+(0C#w?1FC*dWdv1fnNWAn`a2N?G{+BiBAtXpl`@JS$PO(W4JOG}$X z3QZPx#=|`%Ar|PIi3M6BEO5SvJ^W6}b;ZOO3SfK7W9LX<*iVDv*3UlP|+wy358F`5d+ z7%CQHsYHyUZel$35cO0c8fb*Lj_Sqrbeot!bHzmZu9!rRh#P37xRKV2$+T5Wp(b$? z9TijQLvb^kVmfDuJ9)mC$qU46UMS}9BJovTEWXA|#J#*!%;O)4`TWmf0Y5Ij1NDDD z|3o~%%f*AdS}Xw+Sjy|fGJZik!t2GO{Gxb*UlC97FT{^|i+Gw}7b|#&SjBIOHT;%% zmfsfZ02Q9&W8!%}4pX*Fyl7O3my8kO72`V5XiOIWVN4ZUjXC0Vv1LHyOcQIdI+w9LDuZGKH=o8OZ;=2EH5AIUs(h3sgqmHFl? zvcTLTi_O>N=gd8_tJy3sG2fRx%#UO*^OP*LvSpd&$$zrC$^KR^`30-59B5U_LDn!i z#HyE7)(vu)HAQ~W`m!8p-6N~52V{-)LpjD;CdXULWxcgVUTnn3^^A8!|d%548tN-nBCZZEwTu) z=%ts!bm-fwkws{)vs--_Hp2cFhcJRgX#c=rjNm=7=Q{>QF3q)PAskRIfPL4VjG#ch z0QQJI+OaWGw9+1eAVKYIUymR+og+Dyw%QjvSr~PoCWQNCW0Xfnt-m@s7C30%TrT?0aZB+ZK|X=y13~gz=5`H!&8$ zvyDNK<-_pEI%a=eX?Wj)#VH zh!iiDwfYtiCjnJ^53XRK2NoB1J%hF zX};V@3uGfLl$&Ug+)Rt*R$3yr(NejCo|fBbx%@9$C4WVm<=eDNHqk!0j}FLYIw9Yo zlk#`;k^DW|@)!&GF?W!kaCdo%tK?~}k!N_KY~{&{c(!7`8{_+w$qy=xjGvb;+baFgoH`&A(yRYgXY>ejA3{ADeO&u0%iogwmkd)O(&$hU``B8;*K_OMg@ zkFtk@q_~0P3;ha#R7SEY}Xd)Ld2{O7S(ujqpcuBx}*w` zi&N}jH0gmnu(6Oszs>NEhs*ui}RE`Lpte0ElPLj zL)t}vt5B~8m5H?V`2d=>(R9m;fUlVq0bhN?BG{^7o==_I6&p-YNeBMMB6~Z@@Y!?- z7p`-97&IaHl#+y*6N(8J|@14f`b{G910J>ek z_ZOq}zA)au7-X5ek5AFOKY$nU;t24f(p5RkUBtMn{#2kUs8C%_#p((wQCCtoHHdns z!PHY#(Ev4qhN@~BrfR5Gjiv@wOE;^rG+ouvTs5BNse1aRnnKIeEwn=2Mn6-xQbJ9m zO=>#rRCm%|HIv>|v*{x>i#}0zv!Uj)t-i&b)wlUlwSar6gqcQeh+F0ZH|B!Qj0!@3<8?p*G9mLf9muJg41}V z(>K_*!p}IR&LtXn@sFJ{f7?n=e#$AwC=1DcUU&NW{9a2hJ3971hi*npO@E94yvTJ1 zU?foYC4e}=s#gVNx6;sHu?a!<@w&D1d4D{WsD*|iIb-E%8d!OXMh5HGcAniagVjcY z)m*&Y^Be6>;GxS>S*;?S)sRW46m_>YI9~|5fk9WPU!2HGUmLuzISCVP^79q73a;&( zFmo^D~>My#c8qJm8d!6FrCZLyZ;O8)0mB(VwX(`d=K&}WmOC~0*~%q9=( zy@KlB!6pf?$p)~=OJI|i!6qBQCXHZ|SHUK~pgw9d^;cWyO7$ApWe1H?Z_;G-OPZl} z(oFRh-K*ZF2i0zRTs6^?YA>x;`{^asOxx4}+O7^#lR8Yt)Db$Zjt7g>}AF~*ORYzM*1w!hwGg$VU*1y!`tu^ z%sJW(-rhw>OwkE-RmT56U3*{X9cs0)DwkR*(QL&x)eCvejkW>qx;B-&s?Wk**q70! z&T0bg8kNFb<`ph>j_P+Q^lHm|?0*WiSg6=kzS4>fS`7M3Ycc%8N`tS&v?A*i>y(Sy zVI)7fW|_{VtreM*q{y5iM>9)`BFk@wc~jU?Cqj3vq(taC8@ZndU5At2?;;U;pZK{t z2cI}bfAu!in4(@wi<}KkO$L*XN@3nwJxi+jX!{=l=FI}*R-@I%I__LwigtQe z(_U``9rwOSpLo~Mr{0&?@i8-XtFBP2_96 z8@a)|iD!AY@;q-EFY)f+mEH_q?cK%Cc{6!~H;easL5bKEdNVaQ$Bf?u#z&D@=)SEn z<8N`sgp9w*85=Twqpt-u+oqh!Vpu(KIM1(bWDeLVRmDI&GifOmMV;`mdC4^(1yCVb_U){s#1& z(BFt2hKMtna?FG1r=Z_}{wCDkt42Q+^SS76M!y&REjV6|{#Nv;QtRA?z7GBE=C%>g7Nfp8=o2??;cB#;C!5{a8+39Fmkb+bXV zYFqEC)>~T@!3*&$0fLGsTC3Jpduk80YVD=A)T>&p%Kta>zMD*vMT`CC!@kda=bhu3 znP;9kc6siLM;;@h67hhW1kQFkV;{ z+~6iB)1+v;y)Y0-gyV(ru1F%(5iCr^gTcZEJeGvQ$jOwEh@KjZ)C4+$olNFB|0#h@ zfx>Vg(q34fh=(HWWlWCh+9gcvV;Z_R8tF`+#5I9%SI}_?e@w21=H}vA4yZWRhEfSf z*)UteI2-0j7;nQ|2@@fPoQ*BThOtV30Fx>{FL4gfQgF+jW1~Y6>8WdSD zOKDJSgVLbH2BpDF8aH0)LgLO724Vr9F8k}T<(qO#}N`qz_lm;i; zpfm{BpfqTK52&c~HLR#^@GY*8GYX!=Sy@}vD8nwMw5sa*HNIL&X-w|w6B?>(s_G@W zk#&i$+F#XNRlV3RV?0d4S0zK~D8yIeYmng#_z+)>3JyUD2v+;*RDlLG@mEw1na^nZyH?mR;#LzZx`ur(a$>5*A*Cr9}QuLG5#M13%U0*t^AifqEF)ENu5h5|~DWGO|(aGc3%is#4*`n9}h7OF|U z_f@5M4~IC}uEn@@eCB1tk=>jRU#-q&Mwhv zoYvXJCFr0r_S>0rWj)D$E}pHunmb#*N_KI{3@jAM4w+LVU-j$Uk`mPEDQ^vjBB2D_ zyCXLb&dRws+7@)vADJ=-?gu>dC#Ljr6cPxB+7@`|FPKv0)wOj9{tc71ysCC>4Z?4u zl=9Up5xUhw+dOo;hwk*yb`S0F(7hhI-$M_2Xs3sEd1#M^_Il`H5AE~Neh)qFp(i}_ zLl6DPL(h1ap;S(8j)xs6F()?c)c5u6ONDDwotv83k|^uB}}!OPCBSTK&4@EneuLImI_969q4fL9or6KIv2pyo(d zIE*OldE7aHa5NwbA18}b&^!Z(y-gB}fY{I^u^2e14@-d9y5KE#a$WHV5c?HRPM|Xp zjR!&4qh#2mO2*Elmu1n|kMy!E8@rHRmW9i`M^0N;3_;A(jGUz9fJ-oFIqlIz6k*s( zT23g?Cffp&lHrI9W8;vK6SCSZ8wS78%d&cG5_(xykF7y3%jzpMo(aY_p!fYOFc$wI z$?`j7fmriVd0S``!dT_;azk^dwIdch4G~z}dn4Lq?_f>ui%1{>OL=cZSf*H|N5~ZQ zT0}&qSgmT@pek5vg;m*DlcC9mcA06N6;>r;-IeiS8IP4#hE+KM6%IvO5#K6pBV^k~ zP>!zxHG=JZC>tE=L)n3+_Mz;*4pnGJmo&Jj3P*zN2%p9@Jg47$MkLlJS57DzN3ct! zjR!jrK3x^rYhPzb`wAuP>lx|dO^u~~-_}?vc%G`Lv#SN+3siWsQs5$~ zOSnyT#w9Ws37(GNWhxkz*7zM6jH%#vWj+LD`B%yElRgZ5jnvlGJ)M}ZGss10ZoUC7 z@oL3d<$xT=TeT&mAh_v-Wplftp+_$FUZg~gMMa(Za3)XR_IQH zeqn{S8}v&nw8NlZ(F@7)oigkF2K^dQ@(440_oL{m`IStk91PdX-*)4fsQmU`l=@LT3i!^&8<7+v*cgI)k6*pJO2DwG8y!FXfQ_ zimCp;tu2L8DXW26u*y&b_9t6CSh?OV(wdS%4*n&w;dq?D0OX~}mbx-5DHxXq?G&CR z2WH^9i*EHI-O_lVqazT<={+dV>`Wtb^9HB&@E@2~FP_)58rK1xO%0(yd$eh3DAD9w zT3yxD@6Mp9Gv3? z@=xVVdDEaD({t(kXa1|3vFn)sKNWBA-}o)~gZ6N=MQ*|8f0=cs+R|HF@TDqynbhwc zgMLCkh0C|M-f&^nn_GjiL|92`k0DvqE}&$z>$$M1dB9`mT)u8%pGi$K3|GC;fo}C zeF27Bq#Ghb3_;h$x;i&5iH5^btXmUOS)6@>QC1>`8e$l|hN;x=G=QdwOhb&2ZFV+q z=#0r4Ohb&6Nxg$N;PUk-LyQ(U^9_jyW6^k`Iv$V4nWm=FAl2BxcgRwXGQ>E6doFhz zer%JxXIqx4gud3N=$gY6kER5|3GCu2~K9Epe@CVk2((W~&j zt*5RC#O#H{lRS>erXFXA9NC{kw6ltg&oe~6jQ1q>nlf^lA*QRyl8IbGZWo9NL4SBc85P`E7^_lRmtW}N9Z2C_3mrC2Jb>y9rdDo9B~xYYb59?O<`H%9FY~h7f*Y(; zn5w@)mVq7i^i=g9wk)aFT0@+`uUL9D1UDz7Mkg9#os9D&qE_V@;v~`R7P$Q~RfqKN zDnpzs+wP9Z-U~<4QEH1JTBWN_vuq`CPK2WPhq+= zMO(k#8dG+p+4`vlkCYCz!iMM&5ezFv=4-5Wy1|#pE{qxCGy%Wn?zC>jnC5&LPcS|1b&K{>ui@xT-B)bS6ZVP;1eIOKRi)Ob4EH4)qO}0slpLK4i-(qZc^To&%n%@jP&u#^vDo8ZQ7Z)OZoNLgPyCVvVc7)fz7WFV%P%*r)Mw@bMb^!7DVb z0oQ8061+;|I&i(l4dB%puK};s_ylmH#wUW;Y1{-pN#ph4W{pn<2Q+R0w`$x54r;ss z+^+FPa7g1*z^7^)26t#20Y^2Cflt#o4(`-A0q)Xx6ZmwEH-pd6_)PFOG(HP_w#Mgx zzp3%Jz~9#RT=01spAWu3;|swTX?!vG5{)kfU#9Wp;O}UB1^BxfUkScSh_dkAU}S{3v+8#*cv?*Z2VV35}lw z|4`$nz(3OXY49@|KMSvq+Z#Md-jd)sR^GZQi91&%apS5a?pu|_ZL5;FYgG~#tV-fC zRY_c>DvA43C2@PIB<@a?#LcOaxHnZ2x28(s&J=PuwEF|Sh85*?eC53qs}uelFK4#y zr#BiM-Z$$To!&p!H@dukt#3^8zE$7o_P$f!=<)u&zA-b+`wu+b-h+60y#K^A-TN+{ z8Q%Bs9O8W+Ps95Go-_{z)B7o&BfbB@Gt2uK zo};{<<2l;<1)gKPhwvP0;-a%L^C*)A#5j|k5aUfwgP35l2V$bh84yRCY(Qk2JPcxz z$(az7P4+?@WAaFdDJGACIM(Db5XYH(6hw~6;~{cQo(Pd=ayCT1$&(?bnmh$!n#spO zOgA|fqQK;Qh(eR6LCi3@0HVm`84$%L7ekboJQHH3$)ympOr8T#YVtgY*(R4m%rSWZ z#9WgXLCiC`5~9rHDu{BEmq5%nc^Sk4lb1s*G}#Za$mAM`3X@ktRGM4|vDoAWh$@rU zKvbK20>l!NPlQ-%audWdlh;G|OgTWIS9;?RtWR%NN;(?Wo&XN2B>qYnAw7a#a9xK&DT9jSl zBZn*TQ7x_A-p2+<9T*(-tjJs~cypC`+IaPr}^QZ3P z=NtF(&-U^!`r448UY<_|U7!jYWhJ%?A{r|1k5LrMFG=hoeb|!AO}RUN>a@N5(!jzl z!an_CRamx_thX??U6}mI5AKpt74z@-_ja)bvKkcY?B;6+w(?S~mCoK)zRa%-%xm(i z1M^;%GVjf7`)usjgwoT@pSqV{&!4u3|Cm2*H~(o5zung~FS?Pib#T$uICNY?UbD06QvD} z!e?%NH*e_?p8Ou6ayRZ4!<}t=#Bi(7&%Z}=cOuDFD~VUe4o)&^=XQJ*m_M~gWaY~W z5g5Bu_1P@ifd-Y*xk{dgy^Carvdd40DFpJ8JUe zLrBSPX@qV*IE+S!DTBvNti-s%_PNlljoZB_3xA97kz+a@pK16M*`HOAW%vZ}DV2je zM-FRA8Xg7iFCSo6a)4J%vj%tv%21O8asob!@M*>8LJZ<<)*v36dJw-U$N3H`Np9*S zO)|+{R+6cylPGJs+e%W9I!S74kz=$Tzg;{o@R4-hdDmF8{o4fJifGG8AIa~_> zw!0~HW;rw6TWPh7aw!i~>dJDtw$fr5lV-)FWu;|~+DbEIl-r7OXSvh1(nJ~Kv0^+~ z9``mfvOJkBx0B1cV1jf;aeSn$%FhU^4eoBa>)t?h$jo zI-x4*Q|DH?p<9&i6P56!ReQw}cr{;-SYe7)J)(Z<)0BaTHQVtsR$z~4>=8}Vo~9ww zQ2yI{L|~t2Yqauika-6sm&tgq*f`HM)-`pHICbh+*B%j-v145ii%voLh~T&3SZng9 zCmkySaI6_HvGM#zOoa(ltYit*C|OIdEBOX}q~yo!l@dQO%T+QDKdF*jj$bNCS;wzQ zX-}ywxJn`}gRPaLRh9V7d=-^&HP!MmTE#v(iI1l?_EU^&XcO1cxx9)l;X1mG8!(Ml z({^4z-MFGKL?tf&u`*)K7Zp2`8}kRd!HDt^Q6@$r`NmU3=x3^Ir*SC6CnXj zuMqOe!2x~G6=xyjM6M-5UOTw35X}_lAe4q<{3Ic-9^6=JhKp|@c}mgk`S(I}hK8f2p!LdtV{vCp4|nUVHG}@<5*;n$S||e6sp{f~T7wIfD5FpYZ5l zp8%tTM-b-;g0rxk&5_Nc3scXdiw--Fdgst3jrz>Ne7USWXLWx6$2Fl`Qq zwjS|a@HK+grkXZ#Lp2^h>a?bflycfgSxZqRW7yU4%OiPz z-@XKcl{95je9t!J5#syGlwYM|#ZBU7OwY7_=GaMwW{%m)2pzpfsGFb`+h>4>aOJGM z5FUCK|D?rgu?{O1R+pEwIeh;<(B^QtVjUmW_pU*Y4YapjcUs!JG-x8co&ap+wM&ic=gBp3S-N;2&Ba6EEz+oFX5sfqjHc3sX_QX~* zW~gRNCn>FFOqBOR{1%$=4w~_Iym_CB_ya2C4{0HPsx@Je-Grh+O)!&9z)v5(stJK^ ze)21tfKA+yH$k{*tVpLRB7I l_k67;9E&F8pb5EXLIIjkh$hTH6H1Sy2`uhIdxg0F{{X*@@8SRe literal 13782 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 Tg)FF$cOojV*nue%;`9Fp^`DT7 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.tokens b/bin/br/ufpb/iged/interpretador/parser/Def.tokens index d514209..7779d72 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,155 +1,169 @@ -T__23=23 -T__24=24 -T__25=25 -T__26=26 -T__27=27 -T__28=28 -T__29=29 -T__30=30 -T__31=31 -T__32=32 -T__33=33 -T__34=34 -T__35=35 -T__36=36 -T__37=37 -T__38=38 -T__39=39 -T__40=40 -T__41=41 -T__42=42 -T__43=43 -T__44=44 -T__45=45 -T__46=46 -T__47=47 -T__48=48 -T__49=49 -T__50=50 -T__51=51 -T__52=52 -T__53=53 -T__54=54 -T__55=55 -T__56=56 -T__57=57 -T__58=58 -T__59=59 -T__60=60 -T__61=61 -T__62=62 -T__63=63 -T__64=64 -T__65=65 -T__66=66 -T__67=67 -T__68=68 -T__69=69 -T__70=70 -T__71=71 -T__72=72 -T__73=73 -T__74=74 -T__75=75 -T__76=76 -T__77=77 -T__78=78 -T__79=79 -T__80=80 -T__81=81 -T__82=82 -T__83=83 -T__84=84 -T__85=85 -T__86=86 -T__87=87 -T__88=88 -T__89=89 -T__90=90 -ARITMETICA=4 -DESVIO=5 -EXTENDS=6 -FIELD_DECL=7 -ID=8 -INIT=9 -INT=10 -INTEIRO=11 -LABEL=12 -LOAD=13 -LOGICA=14 -MEMBRO_CLASSE=15 -NEWLINE=16 -NULL=17 -PILHA=18 -STORE=19 -TIPO_REF=20 -VOID=21 -WS=22 -'()'=23 -'.class'=24 -'.end class'=25 -'.field'=26 -'.method'=27 -'.super'=28 -'/'=29 -':'=30 -'aconst_null'=31 -'aload'=32 -'aload_0'=33 -'aload_1'=34 -'aload_2'=35 -'aload_3'=36 -'astore'=37 -'astore_0'=38 -'astore_1'=39 -'astore_2'=40 -'astore_3'=41 -'dup'=42 -'getfield'=43 -'goto'=44 -'iadd'=45 -'iand'=46 -'iconst_0'=47 -'iconst_1'=48 -'iconst_2'=49 -'iconst_3'=50 -'iconst_4'=51 -'iconst_5'=52 -'iconst_m1'=53 -'idiv'=54 -'if_icmpeq'=55 -'if_icmpge'=56 -'if_icmpgt'=57 -'if_icmple'=58 -'if_icmplt'=59 -'if_icmpne'=60 -'ifeq'=61 -'ifge'=62 -'ifgt'=63 -'ifle'=64 -'iflt'=65 -'ifne'=66 -'iinc'=67 -'iload'=68 -'iload_0'=69 -'iload_1'=70 -'iload_2'=71 -'iload_3'=72 -'imul'=73 -'ineg'=74 -'invokespecial'=75 -'ior'=76 -'irem'=77 -'istore'=78 -'istore_0'=79 -'istore_1'=80 -'istore_2'=81 -'istore_3'=82 -'isub'=83 -'ixor'=84 -'ldc'=85 -'new'=86 -'nop'=87 -'pop'=88 -'pop2'=89 -'putfield'=90 +T__25=25 +T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +T__40=40 +T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__74=74 +T__75=75 +T__76=76 +T__77=77 +T__78=78 +T__79=79 +T__80=80 +T__81=81 +T__82=82 +T__83=83 +T__84=84 +T__85=85 +T__86=86 +T__87=87 +T__88=88 +T__89=89 +T__90=90 +T__91=91 +T__92=92 +T__93=93 +T__94=94 +T__95=95 +T__96=96 +T__97=97 +T__98=98 +ARITMETICA=4 +BODY=5 +DESVIO=6 +EXTENDS=7 +FIELD_DECL=8 +ID=9 +INIT=10 +INT=11 +INTEIRO=12 +LABEL=13 +LOAD=14 +LOGICA=15 +MAIN=16 +MEMBRO_CLASSE=17 +NEWLINE=18 +NULL=19 +PILHA=20 +STORE=21 +TIPO_REF=22 +VOID=23 +WS=24 +'('=25 +'()'=26 +')'=27 +'.class'=28 +'.end class'=29 +'.end method'=30 +'.field'=31 +'.method'=32 +'.super'=33 +'/'=34 +':'=35 +'aconst_null'=36 +'aload'=37 +'aload_0'=38 +'aload_1'=39 +'aload_2'=40 +'aload_3'=41 +'areturn'=42 +'astore'=43 +'astore_0'=44 +'astore_1'=45 +'astore_2'=46 +'astore_3'=47 +'dup'=48 +'getfield'=49 +'goto'=50 +'iadd'=51 +'iand'=52 +'iconst_0'=53 +'iconst_1'=54 +'iconst_2'=55 +'iconst_3'=56 +'iconst_4'=57 +'iconst_5'=58 +'iconst_m1'=59 +'idiv'=60 +'if_icmpeq'=61 +'if_icmpge'=62 +'if_icmpgt'=63 +'if_icmple'=64 +'if_icmplt'=65 +'if_icmpne'=66 +'ifeq'=67 +'ifge'=68 +'ifgt'=69 +'ifle'=70 +'iflt'=71 +'ifne'=72 +'iinc'=73 +'iload'=74 +'iload_0'=75 +'iload_1'=76 +'iload_2'=77 +'iload_3'=78 +'imul'=79 +'ineg'=80 +'invokespecial'=81 +'ior'=82 +'irem'=83 +'ireturn'=84 +'istore'=85 +'istore_0'=86 +'istore_1'=87 +'istore_2'=88 +'istore_3'=89 +'isub'=90 +'ixor'=91 +'ldc'=92 +'new'=93 +'nop'=94 +'pop'=95 +'pop2'=96 +'putfield'=97 +'return'=98 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index dc6345fb7715b9cace073a3f60674f94bb2ad1a9..04e8079c4d9a1c3be0af4ac4f8d107dabd8ae956 100644 GIT binary patch delta 59 zcmV-B0L1^q3d9Pqsst&l00{)G01gDM022hS02&0a03igi04M~q051fy05$})06he? R07L|~lhXu50l1SG1uWS251jx2 delta 59 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

Y4fZu8g2DNuMXbP6&-P1`(lJTn0pM$^CaYb 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 DVOH>F literal 23470 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 +.method () V + return +.end method .end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 656cfb6..471a777 100755 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -16,6 +16,7 @@ tokens { DESVIO; LABEL; PILHA; + BODY; } @header{ @@ -65,15 +66,23 @@ comando: ( manipulacaoObjetos definicaoClasse : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + - -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) - | '.method' INIT '()' VOID NEWLINE - ; + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) + ; superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) + | '.method' INIT '()' VOID NEWLINE operacao* 'return' NEWLINE '.end method' + -> ^('.method' INIT ^(BODY operacao*)) + | '.method' MAIN '()' VOID NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^('.method' MAIN ^(BODY operacao*) $ret) + | '.method' ID '(' (tipos += tipo)* ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^('.method' ID $tipos ^(BODY operacao*) $ret) ; + + +retorno : 'areturn' | 'ireturn' | 'return'; manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) @@ -201,6 +210,8 @@ campo returns [List classe, String campo] INIT : ''; +MAIN : 'main'; + INT : 'I'; VOID : 'V'; diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index 2da8f65..7779d72 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,5 +1,3 @@ -T__23=23 -T__24=24 T__25=25 T__26=26 T__27=27 @@ -66,90 +64,106 @@ T__87=87 T__88=88 T__89=89 T__90=90 +T__91=91 +T__92=92 +T__93=93 +T__94=94 +T__95=95 +T__96=96 +T__97=97 +T__98=98 ARITMETICA=4 -DESVIO=5 -EXTENDS=6 -FIELD_DECL=7 -ID=8 -INIT=9 -INT=10 -INTEIRO=11 -LABEL=12 -LOAD=13 -LOGICA=14 -MEMBRO_CLASSE=15 -NEWLINE=16 -NULL=17 -PILHA=18 -STORE=19 -TIPO_REF=20 -VOID=21 -WS=22 -'()'=23 -'.class'=24 -'.end class'=25 -'.field'=26 -'.method'=27 -'.super'=28 -'/'=29 -':'=30 -'aconst_null'=31 -'aload'=32 -'aload_0'=33 -'aload_1'=34 -'aload_2'=35 -'aload_3'=36 -'astore'=37 -'astore_0'=38 -'astore_1'=39 -'astore_2'=40 -'astore_3'=41 -'dup'=42 -'getfield'=43 -'goto'=44 -'iadd'=45 -'iand'=46 -'iconst_0'=47 -'iconst_1'=48 -'iconst_2'=49 -'iconst_3'=50 -'iconst_4'=51 -'iconst_5'=52 -'iconst_m1'=53 -'idiv'=54 -'if_icmpeq'=55 -'if_icmpge'=56 -'if_icmpgt'=57 -'if_icmple'=58 -'if_icmplt'=59 -'if_icmpne'=60 -'ifeq'=61 -'ifge'=62 -'ifgt'=63 -'ifle'=64 -'iflt'=65 -'ifne'=66 -'iinc'=67 -'iload'=68 -'iload_0'=69 -'iload_1'=70 -'iload_2'=71 -'iload_3'=72 -'imul'=73 -'ineg'=74 -'invokespecial'=75 -'ior'=76 -'irem'=77 -'istore'=78 -'istore_0'=79 -'istore_1'=80 -'istore_2'=81 -'istore_3'=82 -'isub'=83 -'ixor'=84 -'ldc'=85 -'new'=86 -'nop'=87 -'pop'=88 -'pop2'=89 -'putfield'=90 +BODY=5 +DESVIO=6 +EXTENDS=7 +FIELD_DECL=8 +ID=9 +INIT=10 +INT=11 +INTEIRO=12 +LABEL=13 +LOAD=14 +LOGICA=15 +MAIN=16 +MEMBRO_CLASSE=17 +NEWLINE=18 +NULL=19 +PILHA=20 +STORE=21 +TIPO_REF=22 +VOID=23 +WS=24 +'('=25 +'()'=26 +')'=27 +'.class'=28 +'.end class'=29 +'.end method'=30 +'.field'=31 +'.method'=32 +'.super'=33 +'/'=34 +':'=35 +'aconst_null'=36 +'aload'=37 +'aload_0'=38 +'aload_1'=39 +'aload_2'=40 +'aload_3'=41 +'areturn'=42 +'astore'=43 +'astore_0'=44 +'astore_1'=45 +'astore_2'=46 +'astore_3'=47 +'dup'=48 +'getfield'=49 +'goto'=50 +'iadd'=51 +'iand'=52 +'iconst_0'=53 +'iconst_1'=54 +'iconst_2'=55 +'iconst_3'=56 +'iconst_4'=57 +'iconst_5'=58 +'iconst_m1'=59 +'idiv'=60 +'if_icmpeq'=61 +'if_icmpge'=62 +'if_icmpgt'=63 +'if_icmple'=64 +'if_icmplt'=65 +'if_icmpne'=66 +'ifeq'=67 +'ifge'=68 +'ifgt'=69 +'ifle'=70 +'iflt'=71 +'ifne'=72 +'iinc'=73 +'iload'=74 +'iload_0'=75 +'iload_1'=76 +'iload_2'=77 +'iload_3'=78 +'imul'=79 +'ineg'=80 +'invokespecial'=81 +'ior'=82 +'irem'=83 +'ireturn'=84 +'istore'=85 +'istore_0'=86 +'istore_1'=87 +'istore_2'=88 +'istore_3'=89 +'isub'=90 +'ixor'=91 +'ldc'=92 +'new'=93 +'nop'=94 +'pop'=95 +'pop2'=96 +'putfield'=97 +'return'=98 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 2a8e54a..7555f51 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-15 00:36:58 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 16:44:56 package br.ufpb.iged.interpretador.parser; @@ -11,8 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__23=23; - public static final int T__24=24; public static final int T__25=25; public static final int T__26=26; public static final int T__27=27; @@ -79,25 +77,35 @@ public class AssemblerLexer extends Lexer { public static final int T__88=88; public static final int T__89=89; public static final int T__90=90; + public static final int T__91=91; + public static final int T__92=92; + public static final int T__93=93; + public static final int T__94=94; + public static final int T__95=95; + public static final int T__96=96; + public static final int T__97=97; + public static final int T__98=98; public static final int ARITMETICA=4; - public static final int DESVIO=5; - public static final int EXTENDS=6; - public static final int FIELD_DECL=7; - public static final int ID=8; - public static final int INIT=9; - public static final int INT=10; - public static final int INTEIRO=11; - public static final int LABEL=12; - public static final int LOAD=13; - public static final int LOGICA=14; - public static final int MEMBRO_CLASSE=15; - public static final int NEWLINE=16; - public static final int NULL=17; - public static final int PILHA=18; - public static final int STORE=19; - public static final int TIPO_REF=20; - public static final int VOID=21; - public static final int WS=22; + public static final int BODY=5; + public static final int DESVIO=6; + public static final int EXTENDS=7; + public static final int FIELD_DECL=8; + public static final int ID=9; + public static final int INIT=10; + public static final int INT=11; + public static final int INTEIRO=12; + public static final int LABEL=13; + public static final int LOAD=14; + public static final int LOGICA=15; + public static final int MAIN=16; + public static final int MEMBRO_CLASSE=17; + public static final int NEWLINE=18; + public static final int NULL=19; + public static final int PILHA=20; + public static final int STORE=21; + public static final int TIPO_REF=22; + public static final int VOID=23; + public static final int WS=24; // delegates // delegators @@ -112,65 +120,17 @@ public AssemblerLexer(CharStream input) { public AssemblerLexer(CharStream input, RecognizerSharedState state) { super(input,state); } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - - // $ANTLR start "T__23" - public final void mT__23() throws RecognitionException { - try { - int _type = T__23; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '()' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '()' - { - match("()"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__23" - - // $ANTLR start "T__24" - public final void mT__24() throws RecognitionException { - try { - int _type = T__24; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '.class' - { - match(".class"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__24" + public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } // $ANTLR start "T__25" public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( '.end class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' { - match(".end class"); - - + match('('); } @@ -188,10 +148,10 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.field' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.field' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' { - match(".field"); + match("()"); @@ -211,12 +171,10 @@ public final void mT__27() throws RecognitionException { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.method' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' { - match(".method"); - - + match(')'); } @@ -234,10 +192,10 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.super' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.super' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' { - match(".super"); + match(".class"); @@ -257,10 +215,12 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '/' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' { - match('/'); + match(".end class"); + + } @@ -278,10 +238,12 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( ':' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' { - match(':'); + match(".end method"); + + } @@ -299,10 +261,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' { - match("aconst_null"); + match(".field"); @@ -322,10 +284,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( 'aload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: 'aload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.method' { - match("aload"); + match(".method"); @@ -345,10 +307,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.super' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.super' { - match("aload_0"); + match(".super"); @@ -368,12 +330,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '/' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '/' { - match("aload_1"); - - + match('/'); } @@ -391,12 +351,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( ':' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ':' { - match("aload_2"); - - + match(':'); } @@ -414,10 +372,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aconst_null' { - match("aload_3"); + match("aconst_null"); @@ -437,10 +395,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'astore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'astore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload' { - match("astore"); + match("aload"); @@ -460,10 +418,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_0' { - match("astore_0"); + match("aload_0"); @@ -483,10 +441,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_1' { - match("astore_1"); + match("aload_1"); @@ -506,10 +464,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_2' { - match("astore_2"); + match("aload_2"); @@ -529,10 +487,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_3' { - match("astore_3"); + match("aload_3"); @@ -552,10 +510,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'dup' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'areturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'areturn' { - match("dup"); + match("areturn"); @@ -575,10 +533,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore' { - match("getfield"); + match("astore"); @@ -598,10 +556,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'goto' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'goto' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_0' { - match("goto"); + match("astore_0"); @@ -621,10 +579,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'iadd' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_1' { - match("iadd"); + match("astore_1"); @@ -644,10 +602,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'iand' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_2' { - match("iand"); + match("astore_2"); @@ -667,10 +625,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_3' { - match("iconst_0"); + match("astore_3"); @@ -690,10 +648,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'dup' { - match("iconst_1"); + match("dup"); @@ -713,10 +671,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'getfield' { - match("iconst_2"); + match("getfield"); @@ -736,10 +694,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'goto' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'goto' { - match("iconst_3"); + match("goto"); @@ -759,10 +717,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iadd' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iadd' { - match("iconst_4"); + match("iadd"); @@ -782,10 +740,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iand' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iand' { - match("iconst_5"); + match("iand"); @@ -805,10 +763,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_0' { - match("iconst_m1"); + match("iconst_0"); @@ -828,10 +786,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'idiv' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_1' { - match("idiv"); + match("iconst_1"); @@ -851,10 +809,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'if_icmpeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_2' { - match("if_icmpeq"); + match("iconst_2"); @@ -874,10 +832,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'if_icmpge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_3' { - match("if_icmpge"); + match("iconst_3"); @@ -897,10 +855,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'if_icmpgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_4' { - match("if_icmpgt"); + match("iconst_4"); @@ -920,10 +878,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'if_icmple' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_5' { - match("if_icmple"); + match("iconst_5"); @@ -943,10 +901,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmplt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_m1' { - match("if_icmplt"); + match("iconst_m1"); @@ -966,10 +924,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'idiv' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'idiv' { - match("if_icmpne"); + match("idiv"); @@ -989,10 +947,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'ifeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmpeq' { - match("ifeq"); + match("if_icmpeq"); @@ -1012,10 +970,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'ifge' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'ifge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpge' { - match("ifge"); + match("if_icmpge"); @@ -1035,10 +993,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'ifgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpgt' { - match("ifgt"); + match("if_icmpgt"); @@ -1058,10 +1016,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'ifle' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'ifle' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmple' { - match("ifle"); + match("if_icmple"); @@ -1081,10 +1039,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'iflt' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'iflt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmplt' { - match("iflt"); + match("if_icmplt"); @@ -1104,10 +1062,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifne' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmpne' { - match("ifne"); + match("if_icmpne"); @@ -1127,10 +1085,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'iinc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ifeq' { - match("iinc"); + match("ifeq"); @@ -1150,10 +1108,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'iload' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'iload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifge' { - match("iload"); + match("ifge"); @@ -1173,10 +1131,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifgt' { - match("iload_0"); + match("ifgt"); @@ -1196,10 +1154,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifle' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifle' { - match("iload_1"); + match("ifle"); @@ -1219,10 +1177,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iflt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iflt' { - match("iload_2"); + match("iflt"); @@ -1242,10 +1200,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifne' { - match("iload_3"); + match("ifne"); @@ -1265,10 +1223,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'imul' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iinc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iinc' { - match("imul"); + match("iinc"); @@ -1288,10 +1246,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'ineg' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload' { - match("ineg"); + match("iload"); @@ -1311,10 +1269,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload_0' { - match("invokespecial"); + match("iload_0"); @@ -1334,10 +1292,10 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'ior' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload_1' { - match("ior"); + match("iload_1"); @@ -1357,10 +1315,10 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'irem' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_2' { - match("irem"); + match("iload_2"); @@ -1380,10 +1338,10 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'istore' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'istore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_3' { - match("istore"); + match("iload_3"); @@ -1403,10 +1361,10 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'imul' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'imul' { - match("istore_0"); + match("imul"); @@ -1426,10 +1384,10 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'ineg' { - match("istore_1"); + match("ineg"); @@ -1449,10 +1407,10 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'invokespecial' { - match("istore_2"); + match("invokespecial"); @@ -1472,10 +1430,10 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ior' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ior' { - match("istore_3"); + match("ior"); @@ -1495,10 +1453,10 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'isub' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'irem' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'irem' { - match("isub"); + match("irem"); @@ -1518,10 +1476,10 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'ixor' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ireturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ireturn' { - match("ixor"); + match("ireturn"); @@ -1541,10 +1499,10 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ldc' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ldc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'istore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'istore' { - match("ldc"); + match("istore"); @@ -1564,10 +1522,10 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'new' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'new' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'istore_0' { - match("new"); + match("istore_0"); @@ -1587,10 +1545,10 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'nop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'istore_1' { - match("nop"); + match("istore_1"); @@ -1610,10 +1568,10 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'pop' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore_2' { - match("pop"); + match("istore_2"); @@ -1633,10 +1591,10 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'pop2' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_3' { - match("pop2"); + match("istore_3"); @@ -1656,10 +1614,10 @@ public final void mT__90() throws RecognitionException { try { int _type = T__90; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'isub' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'isub' { - match("putfield"); + match("isub"); @@ -1674,15 +1632,15 @@ public final void mT__90() throws RecognitionException { } // $ANTLR end "T__90" - // $ANTLR start "INIT" - public final void mINIT() throws RecognitionException { + // $ANTLR start "T__91" + public final void mT__91() throws RecognitionException { try { - int _type = INIT; + int _type = T__91; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:6: ( '' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'ixor' { - match(""); + match("ixor"); @@ -1695,17 +1653,19 @@ public final void mINIT() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "INIT" + // $ANTLR end "T__91" - // $ANTLR start "INT" - public final void mINT() throws RecognitionException { + // $ANTLR start "T__92" + public final void mT__92() throws RecognitionException { try { - int _type = INT; + int _type = T__92; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:5: ( 'I' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'ldc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'ldc' { - match('I'); + match("ldc"); + + } @@ -1716,17 +1676,19 @@ public final void mINT() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "INT" + // $ANTLR end "T__92" - // $ANTLR start "VOID" - public final void mVOID() throws RecognitionException { + // $ANTLR start "T__93" + public final void mT__93() throws RecognitionException { try { - int _type = VOID; + int _type = T__93; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:6: ( 'V' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'new' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'new' { - match('V'); + match("new"); + + } @@ -1737,54 +1699,41 @@ public final void mVOID() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "VOID" + // $ANTLR end "T__93" - // $ANTLR start "NULL" - public final void mNULL() throws RecognitionException { + // $ANTLR start "T__94" + public final void mT__94() throws RecognitionException { try { - int _type = NULL; + int _type = T__94; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'nop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'nop' { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: ( 'null' | 'NULL' ) - int alt1=2; - int LA1_0 = input.LA(1); + match("nop"); - if ( (LA1_0=='n') ) { - alt1=1; - } - else if ( (LA1_0=='N') ) { - alt1=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - throw nvae; } - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:9: 'null' - { - match("null"); - - - - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:18: 'NULL' - { - match("NULL"); - + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__94" - } - break; + // $ANTLR start "T__95" + public final void mT__95() throws RecognitionException { + try { + int _type = T__95; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: ( 'pop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:9: 'pop' + { + match("pop"); - } } @@ -1796,37 +1745,253 @@ else if ( (LA1_0=='N') ) { // do for sure before leaving } } - // $ANTLR end "NULL" + // $ANTLR end "T__95" - // $ANTLR start "INTEIRO" - public final void mINTEIRO() throws RecognitionException { + // $ANTLR start "T__96" + public final void mT__96() throws RecognitionException { try { - int _type = INTEIRO; + int _type = T__96; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: ( 'pop2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:9: 'pop2' { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:11: ( '-' )? - int alt2=2; - int LA2_0 = input.LA(1); + match("pop2"); - if ( (LA2_0=='-') ) { - alt2=1; - } - switch (alt2) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:11: '-' - { - match('-'); - } - break; } - - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:16: ( '0' .. '9' )+ - int cnt3=0; + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__96" + + // $ANTLR start "T__97" + public final void mT__97() throws RecognitionException { + try { + int _type = T__97; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:9: 'putfield' + { + match("putfield"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__97" + + // $ANTLR start "T__98" + public final void mT__98() throws RecognitionException { + try { + int _type = T__98; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: ( 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:9: 'return' + { + match("return"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__98" + + // $ANTLR start "INIT" + public final void mINIT() throws RecognitionException { + try { + int _type = INIT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:211:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:211:8: '' + { + match(""); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INIT" + + // $ANTLR start "MAIN" + public final void mMAIN() throws RecognitionException { + try { + int _type = MAIN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:7: ( 'main' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:10: 'main' + { + match("main"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "MAIN" + + // $ANTLR start "INT" + public final void mINT() throws RecognitionException { + try { + int _type = INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:215:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:215:7: 'I' + { + match('I'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INT" + + // $ANTLR start "VOID" + public final void mVOID() throws RecognitionException { + try { + int _type = VOID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:8: 'V' + { + match('V'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "VOID" + + // $ANTLR start "NULL" + public final void mNULL() throws RecognitionException { + try { + int _type = NULL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: ( 'null' | 'NULL' ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: ( 'null' | 'NULL' ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='n') ) { + alt1=1; + } + else if ( (LA1_0=='N') ) { + alt1=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + + } + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:9: 'null' + { + match("null"); + + + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:18: 'NULL' + { + match("NULL"); + + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NULL" + + // $ANTLR start "INTEIRO" + public final void mINTEIRO() throws RecognitionException { + try { + int _type = INTEIRO; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:11: ( '-' )? ( '0' .. '9' )+ + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:11: ( '-' )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0=='-') ) { + alt2=1; + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:11: '-' + { + match('-'); + + } + break; + + } + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:16: ( '0' .. '9' )+ + int cnt3=0; loop3: do { int alt3=2; @@ -1839,7 +2004,7 @@ public final void mINTEIRO() throws RecognitionException { switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { input.consume(); @@ -1880,15 +2045,15 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:11: 'L' ID ( '/' ID )* { match('L'); mID(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:18: ( '/' ID )* loop4: do { int alt4=2; @@ -1901,7 +2066,7 @@ public final void mTIPO_REF() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:19: '/' ID { match('/'); @@ -1933,8 +2098,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1946,7 +2111,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop5: do { int alt5=2; @@ -1959,7 +2124,7 @@ public final void mID() throws RecognitionException { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -1996,8 +2161,8 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:9: ( '\\n' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:9: ( '\\n' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:11: '\\n' { match('\n'); @@ -2017,8 +2182,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2044,620 +2209,676 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) - int alt6=77; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | INIT | MAIN | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) + int alt6=84; alt6 = dfa6.predict(input); switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__23 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__25 { - mT__23(); + mT__25(); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__24 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__26 { - mT__24(); + mT__26(); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__25 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__27 { - mT__25(); + mT__27(); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__26 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__28 { - mT__26(); + mT__28(); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__27 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__29 { - mT__27(); + mT__29(); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__28 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__30 { - mT__28(); + mT__30(); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__29 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__31 { - mT__29(); + mT__31(); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__30 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__32 { - mT__30(); + mT__32(); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__31 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__33 { - mT__31(); + mT__33(); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__32 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__34 { - mT__32(); + mT__34(); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__33 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__35 { - mT__33(); + mT__35(); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__34 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__36 { - mT__34(); + mT__36(); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__35 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__37 { - mT__35(); + mT__37(); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__36 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__38 { - mT__36(); + mT__38(); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__37 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__39 { - mT__37(); + mT__39(); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__38 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__40 { - mT__38(); + mT__40(); } break; case 17 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__39 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__41 { - mT__39(); + mT__41(); } break; case 18 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__40 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__42 { - mT__40(); + mT__42(); } break; case 19 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__41 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__43 { - mT__41(); + mT__43(); } break; case 20 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__42 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__44 { - mT__42(); + mT__44(); } break; case 21 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__43 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__45 { - mT__43(); + mT__45(); } break; case 22 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__44 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__46 { - mT__44(); + mT__46(); } break; case 23 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__45 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__47 { - mT__45(); + mT__47(); } break; case 24 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__46 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__48 { - mT__46(); + mT__48(); } break; case 25 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__47 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__49 { - mT__47(); + mT__49(); } break; case 26 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__48 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__50 { - mT__48(); + mT__50(); } break; case 27 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__49 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__51 { - mT__49(); + mT__51(); } break; case 28 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__50 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__52 { - mT__50(); + mT__52(); } break; case 29 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__51 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__53 { - mT__51(); + mT__53(); } break; case 30 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__52 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__54 { - mT__52(); + mT__54(); } break; case 31 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__53 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__55 { - mT__53(); + mT__55(); } break; case 32 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__54 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__56 { - mT__54(); + mT__56(); } break; case 33 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__55 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__57 { - mT__55(); + mT__57(); } break; case 34 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__56 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__58 { - mT__56(); + mT__58(); } break; case 35 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__57 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__59 { - mT__57(); + mT__59(); } break; case 36 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__58 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__60 { - mT__58(); + mT__60(); } break; case 37 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__59 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__61 { - mT__59(); + mT__61(); } break; case 38 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__60 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__62 { - mT__60(); + mT__62(); } break; case 39 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__61 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__63 { - mT__61(); + mT__63(); } break; case 40 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__62 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__64 { - mT__62(); + mT__64(); } break; case 41 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__63 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__65 { - mT__63(); + mT__65(); } break; case 42 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__64 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__66 { - mT__64(); + mT__66(); } break; case 43 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__65 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__67 { - mT__65(); + mT__67(); } break; case 44 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__66 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__68 { - mT__66(); + mT__68(); } break; case 45 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__67 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__69 { - mT__67(); + mT__69(); } break; case 46 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__68 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__70 { - mT__68(); + mT__70(); } break; case 47 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__69 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__71 { - mT__69(); + mT__71(); } break; case 48 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__70 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__72 { - mT__70(); + mT__72(); } break; case 49 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__71 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__73 { - mT__71(); + mT__73(); } break; case 50 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__72 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__74 { - mT__72(); + mT__74(); } break; case 51 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__73 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__75 { - mT__73(); + mT__75(); } break; case 52 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__74 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__76 { - mT__74(); + mT__76(); } break; case 53 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__75 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__77 { - mT__75(); + mT__77(); } break; case 54 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__76 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__78 { - mT__76(); + mT__78(); } break; case 55 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__77 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__79 { - mT__77(); + mT__79(); } break; case 56 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__78 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__80 { - mT__78(); + mT__80(); } break; case 57 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__79 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__81 { - mT__79(); + mT__81(); } break; case 58 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__80 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__82 { - mT__80(); + mT__82(); } break; case 59 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__81 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__83 { - mT__81(); + mT__83(); } break; case 60 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__82 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__84 { - mT__82(); + mT__84(); } break; case 61 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__83 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__85 { - mT__83(); + mT__85(); } break; case 62 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__84 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__86 { - mT__84(); + mT__86(); } break; case 63 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__85 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__87 { - mT__85(); + mT__87(); } break; case 64 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__86 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__88 { - mT__86(); + mT__88(); } break; case 65 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__87 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__89 { - mT__87(); + mT__89(); } break; case 66 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__88 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__90 { - mT__88(); + mT__90(); } break; case 67 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__89 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__91 { - mT__89(); + mT__91(); } break; case 68 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__90 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__92 { - mT__90(); + mT__92(); } break; case 69 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__93 { - mINIT(); + mT__93(); } break; case 70 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:423: INT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__94 { - mINT(); + mT__94(); } break; case 71 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:427: VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__95 { - mVOID(); + mT__95(); } break; case 72 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:432: NULL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:436: T__96 { - mNULL(); + mT__96(); } break; case 73 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:437: INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:442: T__97 { - mINTEIRO(); + mT__97(); } break; case 74 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:445: TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:448: T__98 { - mTIPO_REF(); + mT__98(); } break; case 75 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:454: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:454: INIT { - mID(); + mINIT(); } break; case 76 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:457: NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:459: MAIN { - mNEWLINE(); + mMAIN(); } break; case 77 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:465: WS + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:464: INT + { + mINT(); + + + } + break; + case 78 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:468: VOID + { + mVOID(); + + + } + break; + case 79 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:473: NULL + { + mNULL(); + + + } + break; + case 80 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:478: INTEIRO + { + mINTEIRO(); + + + } + break; + case 81 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:486: TIPO_REF + { + mTIPO_REF(); + + + } + break; + case 82 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:495: ID + { + mID(); + + + } + break; + case 83 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:498: NEWLINE + { + mNEWLINE(); + + + } + break; + case 84 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:506: WS { mWS(); @@ -2672,261 +2893,299 @@ public void mTokens() throws RecognitionException { protected DFA6 dfa6 = new DFA6(this); static final String DFA6_eotS = - "\5\uffff\7\22\1\uffff\1\62\1\63\1\22\1\uffff\1\22\10\uffff\30\22"+ - "\2\uffff\1\22\1\127\3\22\1\133\6\22\1\uffff\11\22\1\156\4\22\1\163"+ - "\1\164\1\165\1\22\1\170\2\22\1\127\1\uffff\3\22\1\uffff\1\22\1\177"+ - "\1\u0080\1\u0081\1\22\1\u0083\1\uffff\1\u0085\1\u0086\1\u0087\1"+ - "\u0088\1\u0089\1\u008a\1\u008b\1\22\1\u008d\1\u008e\1\22\1\uffff"+ - "\1\u0090\1\22\1\u0092\1\u0093\3\uffff\1\u0094\1\u0095\1\uffff\1"+ - "\22\1\u0094\1\22\1\u0099\2\22\3\uffff\1\22\11\uffff\1\u009f\2\uffff"+ - "\1\22\1\uffff\1\22\4\uffff\2\22\2\uffff\1\u00a9\2\22\3\uffff\1\22"+ - "\1\u00b3\1\22\7\uffff\1\22\6\uffff\1\22\2\uffff\1\22\4\uffff\1\u00cb"+ - "\13\uffff\1\22\4\uffff\1\u00d1\5\uffff\1\22\1\uffff\3\22\1\u00d6"+ - "\1\uffff"; + "\1\uffff\1\31\4\uffff\10\25\1\uffff\1\25\1\72\1\73\1\25\1\uffff"+ + "\1\25\12\uffff\33\25\2\uffff\1\25\1\143\1\uffff\4\25\1\151\6\25"+ + "\1\uffff\11\25\1\174\4\25\1\u0082\1\u0083\1\u0084\1\25\1\u0087\4"+ + "\25\1\143\2\uffff\4\25\1\uffff\1\25\1\u0092\1\u0093\1\u0094\1\25"+ + "\1\u0096\1\uffff\1\u0098\1\u0099\1\u009a\1\u009b\1\u009c\1\u009d"+ + "\1\u009e\1\25\1\u00a0\1\u00a1\1\25\1\uffff\1\u00a3\2\25\1\u00a6"+ + "\1\u00a7\3\uffff\1\u00a8\1\u00a9\1\uffff\2\25\1\u00ac\1\u00a8\1"+ + "\uffff\1\25\1\u00b1\3\25\3\uffff\1\25\11\uffff\1\u00b8\2\uffff\1"+ + "\25\1\uffff\2\25\4\uffff\2\25\3\uffff\1\25\2\uffff\1\25\1\u00c5"+ + "\2\25\3\uffff\2\25\1\u00d0\1\25\1\u00d2\5\uffff\1\u00d3\2\uffff"+ + "\1\25\6\uffff\1\25\1\u00e5\2\uffff\1\25\6\uffff\1\u00eb\13\uffff"+ + "\1\25\5\uffff\1\u00f1\5\uffff\1\25\1\uffff\3\25\1\u00f6\1\uffff"; static final String DFA6_eofS = - "\u00d7\uffff"; + "\u00f7\uffff"; static final String DFA6_minS = - "\1\11\1\uffff\1\143\2\uffff\1\143\1\165\1\145\1\141\1\144\1\145"+ - "\1\157\1\uffff\2\56\1\125\1\uffff\1\101\10\uffff\2\157\1\164\1\160"+ - "\2\164\1\144\1\157\1\151\1\137\1\156\1\157\1\165\1\145\1\162\1\145"+ - "\1\164\1\157\1\143\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1"+ - "\56\1\156\1\141\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1"+ - "\161\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142"+ - "\1\162\3\56\1\154\1\56\1\146\1\114\1\56\1\uffff\1\163\1\144\1\162"+ - "\1\uffff\1\151\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff"+ - "\1\56\1\162\2\56\3\uffff\2\56\1\uffff\1\151\1\56\1\164\1\56\2\145"+ - "\3\uffff\1\164\1\uffff\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff"+ - "\1\145\4\uffff\1\145\1\137\1\60\1\uffff\1\56\1\154\1\137\1\160\1"+ - "\60\1\uffff\1\163\1\56\1\154\5\uffff\1\60\1\uffff\1\144\1\60\1\145"+ - "\4\uffff\1\160\1\60\1\uffff\1\144\4\uffff\1\56\10\uffff\2\145\1"+ - "\uffff\1\145\4\uffff\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1\154"+ - "\1\56\1\uffff"; + "\1\11\1\51\1\uffff\1\143\2\uffff\1\143\1\165\1\145\1\141\1\144\1"+ + "\145\1\157\1\145\1\uffff\1\141\2\56\1\125\1\uffff\1\101\6\uffff"+ + "\1\156\3\uffff\2\157\1\145\1\164\1\160\2\164\1\144\1\157\1\151\1"+ + "\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\167"+ + "\1\160\1\154\1\160\2\164\1\151\2\uffff\1\114\1\56\1\144\1\156\1"+ + "\141\1\164\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161"+ + "\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162"+ + "\3\56\1\154\1\56\1\146\1\165\1\156\1\114\1\56\1\uffff\1\40\1\163"+ + "\1\144\1\165\1\162\1\uffff\1\151\3\56\1\163\1\56\1\143\7\56\1\144"+ + "\2\56\1\153\1\uffff\1\56\1\165\1\162\2\56\3\uffff\2\56\1\uffff\1"+ + "\151\1\162\2\56\1\143\1\164\1\56\1\162\2\145\3\uffff\1\164\1\uffff"+ + "\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff\1\162\1\145\4\uffff\1"+ + "\145\1\156\3\uffff\1\137\1\60\1\uffff\1\156\1\56\1\154\1\137\1\160"+ + "\1\60\1\uffff\1\163\1\156\1\56\1\154\1\56\5\uffff\1\56\1\60\1\uffff"+ + "\1\144\1\60\1\145\4\uffff\1\160\1\56\1\60\1\uffff\1\144\6\uffff"+ + "\1\56\10\uffff\2\145\1\uffff\1\145\5\uffff\1\56\5\uffff\1\143\1"+ + "\uffff\1\151\1\141\1\154\1\56\1\uffff"; static final String DFA6_maxS = - "\1\172\1\uffff\1\163\2\uffff\1\163\1\165\1\157\1\170\1\144\2\165"+ - "\1\uffff\2\172\1\125\1\uffff\1\172\10\uffff\2\157\1\164\1\160\2"+ - "\164\1\156\1\157\1\151\2\156\1\157\1\165\1\166\1\162\1\145\1\165"+ - "\1\157\1\143\1\167\1\160\1\154\1\160\1\164\2\uffff\1\114\1\172\1"+ - "\156\1\141\1\157\1\172\1\146\1\157\2\144\1\156\1\166\1\151\1\161"+ - "\2\164\1\145\1\143\1\141\1\154\1\147\1\157\1\172\1\155\1\157\1\142"+ - "\1\162\3\172\1\154\1\172\1\146\1\114\1\172\1\uffff\1\163\1\144\1"+ - "\162\1\uffff\1\151\3\172\1\163\1\172\1\143\7\172\1\144\2\172\1\153"+ - "\1\uffff\1\172\1\162\2\172\3\uffff\2\172\1\uffff\1\151\1\172\1\164"+ - "\1\172\2\145\3\uffff\1\164\1\uffff\1\155\7\uffff\1\172\2\uffff\1"+ - "\145\1\uffff\1\145\4\uffff\1\145\1\137\1\63\1\uffff\1\172\1\154"+ - "\1\137\1\160\1\63\1\uffff\1\163\1\172\1\154\5\uffff\1\63\1\uffff"+ - "\1\144\1\155\1\156\4\uffff\1\160\1\63\1\uffff\1\144\4\uffff\1\172"+ - "\10\uffff\2\164\1\uffff\1\145\4\uffff\1\172\5\uffff\1\143\1\uffff"+ - "\1\151\1\141\1\154\1\172\1\uffff"; + "\1\172\1\51\1\uffff\1\163\2\uffff\1\163\1\165\1\157\1\170\1\144"+ + "\2\165\1\145\1\uffff\1\141\2\172\1\125\1\uffff\1\172\6\uffff\1\156"+ + "\3\uffff\2\157\1\145\1\164\1\160\2\164\1\156\1\157\1\151\2\156\1"+ + "\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143\1\167\1\160\1\154"+ + "\1\160\2\164\1\151\2\uffff\1\114\1\172\1\144\1\156\1\141\1\164\1"+ + "\157\1\172\1\146\1\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145"+ + "\1\143\1\141\1\154\1\147\1\157\1\172\1\164\1\157\1\142\1\162\3\172"+ + "\1\154\1\172\1\146\1\165\1\156\1\114\1\172\1\uffff\1\40\1\163\1"+ + "\144\1\165\1\162\1\uffff\1\151\3\172\1\163\1\172\1\143\7\172\1\144"+ + "\2\172\1\153\1\uffff\1\172\1\165\1\162\2\172\3\uffff\2\172\1\uffff"+ + "\1\151\1\162\2\172\1\155\1\164\1\172\1\162\2\145\3\uffff\1\164\1"+ + "\uffff\1\155\7\uffff\1\172\2\uffff\1\145\1\uffff\1\162\1\145\4\uffff"+ + "\1\145\1\156\3\uffff\1\137\1\63\1\uffff\1\156\1\172\1\154\1\137"+ + "\1\160\1\63\1\uffff\1\163\1\156\1\172\1\154\1\172\5\uffff\1\172"+ + "\1\63\1\uffff\1\144\1\155\1\156\4\uffff\1\160\1\172\1\63\1\uffff"+ + "\1\144\6\uffff\1\172\10\uffff\2\164\1\uffff\1\145\5\uffff\1\172"+ + "\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; static final String DFA6_acceptS = - "\1\uffff\1\1\1\uffff\1\7\1\10\7\uffff\1\105\3\uffff\1\111\1\uffff"+ - "\1\113\1\114\1\115\1\2\1\3\1\4\1\5\1\6\30\uffff\1\106\1\107\43\uffff"+ - "\1\112\3\uffff\1\24\22\uffff\1\66\4\uffff\1\77\1\100\1\101\2\uffff"+ - "\1\102\6\uffff\1\26\1\27\1\30\1\uffff\1\40\1\uffff\1\47\1\50\1\51"+ - "\1\52\1\53\1\54\1\55\1\uffff\1\63\1\64\1\uffff\1\67\1\uffff\1\75"+ - "\1\76\1\110\1\103\3\uffff\1\12\5\uffff\1\56\3\uffff\1\11\1\13\1"+ - "\14\1\15\1\16\1\uffff\1\17\3\uffff\1\57\1\60\1\61\1\62\2\uffff\1"+ - "\70\1\uffff\1\20\1\21\1\22\1\23\1\uffff\1\31\1\32\1\33\1\34\1\35"+ - "\1\36\1\37\1\41\2\uffff\1\46\1\uffff\1\71\1\72\1\73\1\74\1\uffff"+ - "\1\25\1\42\1\43\1\44\1\45\1\uffff\1\104\4\uffff\1\65"; + "\2\uffff\1\3\1\uffff\1\12\1\13\10\uffff\1\113\4\uffff\1\120\1\uffff"+ + "\1\122\1\123\1\124\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\33\uffff\1"+ + "\115\1\116\47\uffff\1\121\5\uffff\1\30\22\uffff\1\72\5\uffff\1\104"+ + "\1\105\1\106\2\uffff\1\107\12\uffff\1\32\1\33\1\34\1\uffff\1\44"+ + "\1\uffff\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\uffff\1\67\1\70\1"+ + "\uffff\1\73\2\uffff\1\102\1\103\1\117\1\110\2\uffff\1\114\1\5\1"+ + "\6\2\uffff\1\15\6\uffff\1\62\5\uffff\1\14\1\16\1\17\1\20\1\21\2"+ + "\uffff\1\23\3\uffff\1\63\1\64\1\65\1\66\3\uffff\1\75\1\uffff\1\112"+ + "\1\22\1\24\1\25\1\26\1\27\1\uffff\1\35\1\36\1\37\1\40\1\41\1\42"+ + "\1\43\1\45\2\uffff\1\52\1\uffff\1\74\1\76\1\77\1\100\1\101\1\uffff"+ + "\1\31\1\46\1\47\1\50\1\51\1\uffff\1\111\4\uffff\1\71"; static final String DFA6_specialS = - "\u00d7\uffff}>"; + "\u00f7\uffff}>"; static final String[] DFA6_transitionS = { - "\1\24\1\23\2\uffff\1\24\22\uffff\1\24\7\uffff\1\1\4\uffff\1"+ - "\20\1\2\1\3\12\20\1\4\1\uffff\1\14\4\uffff\10\22\1\15\2\22\1"+ - "\21\1\22\1\17\7\22\1\16\4\22\6\uffff\1\5\2\22\1\6\2\22\1\7\1"+ - "\22\1\10\2\22\1\11\1\22\1\12\1\22\1\13\12\22", - "", - "\1\25\1\uffff\1\26\1\27\6\uffff\1\30\5\uffff\1\31", - "", + "\1\27\1\26\2\uffff\1\27\22\uffff\1\27\7\uffff\1\1\1\2\3\uffff"+ + "\1\23\1\3\1\4\12\23\1\5\1\uffff\1\16\4\uffff\10\25\1\20\2\25"+ + "\1\24\1\25\1\22\7\25\1\21\4\25\6\uffff\1\6\2\25\1\7\2\25\1\10"+ + "\1\25\1\11\2\25\1\12\1\17\1\13\1\25\1\14\1\25\1\15\10\25", + "\1\30", + "", + "\1\32\1\uffff\1\33\1\34\6\uffff\1\35\5\uffff\1\36", + "", + "", + "\1\37\10\uffff\1\40\5\uffff\1\41\1\42", + "\1\43", + "\1\44\11\uffff\1\45", + "\1\46\1\uffff\1\47\1\50\1\uffff\1\51\2\uffff\1\52\2\uffff\1"+ + "\53\1\54\1\55\1\56\2\uffff\1\57\1\60\4\uffff\1\61", + "\1\62", + "\1\63\11\uffff\1\64\5\uffff\1\65", + "\1\66\5\uffff\1\67", + "\1\70", "", - "\1\32\10\uffff\1\33\6\uffff\1\34", - "\1\35", - "\1\36\11\uffff\1\37", - "\1\40\1\uffff\1\41\1\42\1\uffff\1\43\2\uffff\1\44\2\uffff\1"+ - "\45\1\46\1\47\1\50\2\uffff\1\51\1\52\4\uffff\1\53", - "\1\54", - "\1\55\11\uffff\1\56\5\uffff\1\57", - "\1\60\5\uffff\1\61", + "\1\71", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\74", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\64", + "\32\75\6\uffff\32\75", "", - "\32\65\6\uffff\32\65", "", "", "", "", "", + "\1\76", "", "", "", - "\1\66", - "\1\67", - "\1\70", - "\1\71", - "\1\72", - "\1\73", - "\1\74\11\uffff\1\75", - "\1\76", "\1\77", - "\1\100\5\uffff\1\101\1\uffff\1\102\4\uffff\1\103\1\uffff\1"+ - "\104", + "\1\100", + "\1\101", + "\1\102", + "\1\103", + "\1\104", "\1\105", - "\1\106", - "\1\107", - "\1\110\20\uffff\1\111", - "\1\112", - "\1\113", - "\1\114\1\115", - "\1\116", + "\1\106\11\uffff\1\107", + "\1\110", + "\1\111", + "\1\112\5\uffff\1\113\1\uffff\1\114\4\uffff\1\115\1\uffff\1"+ + "\116", "\1\117", "\1\120", "\1\121", - "\1\122", - "\1\123", + "\1\122\20\uffff\1\123", "\1\124", - "", - "", "\1\125", - "\1\126\1\uffff\12\126\7\uffff\32\126\6\uffff\32\126", + "\1\126\1\127", "\1\130", "\1\131", "\1\132", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\133", "\1\134", "\1\135", "\1\136", "\1\137", "\1\140", + "", + "", "\1\141", - "\1\142", - "\1\143", - "\1\144\16\uffff\1\145", - "\1\146\16\uffff\1\147", + "\1\142\1\uffff\12\142\7\uffff\32\142\6\uffff\32\142", + "\1\144", + "\1\145", + "\1\146", + "\1\147", "\1\150", - "\1\151", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "\1\152", "\1\153", "\1\154", "\1\155", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\156", "\1\157", "\1\160", "\1\161", - "\1\162", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\162\16\uffff\1\163", + "\1\164\16\uffff\1\165", "\1\166", - "\1\22\1\uffff\2\22\1\167\7\22\7\uffff\32\22\6\uffff\32\22", + "\1\167", + "\1\170", "\1\171", "\1\172", - "\1\126\1\uffff\12\126\7\uffff\32\126\6\uffff\32\126", - "", "\1\173", - "\1\174", - "\1\175", - "", - "\1\176", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u0082", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u0084", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\175\6\uffff\1\176", + "\1\177", + "\1\u0080", + "\1\u0081", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u0085", + "\1\25\1\uffff\2\25\1\u0086\7\25\7\uffff\32\25\6\uffff\32\25", + "\1\u0088", + "\1\u0089", + "\1\u008a", + "\1\u008b", + "\1\142\1\uffff\12\142\7\uffff\32\142\6\uffff\32\142", + "", "\1\u008c", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u008d", + "\1\u008e", "\1\u008f", + "\1\u0090", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "\1\u0091", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u0095", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u0097", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u009f", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00a2", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00a4", + "\1\u00a5", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", - "\1\u0096", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", - "\1\u0097", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u0098\1\uffff\32"+ - "\22", - "\1\u009a", - "\1\u009b", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", + "\1\u00aa", + "\1\u00ab", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00ad\11\uffff\1\u00ae", + "\1\u00af", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00b0\1\uffff\32"+ + "\25", + "\1\u00b2", + "\1\u00b3", + "\1\u00b4", "", "", - "\1\u009c", "", - "\1\u009d", + "\1\u00b5", "", + "\1\u00b6", "", "", "", "", "", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u009e\1\uffff\32"+ - "\22", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00b7\1\uffff\32"+ + "\25", "", - "\1\u00a0", "", - "\1\u00a1", + "\1\u00b9", "", + "\1\u00ba", + "\1\u00bb", "", "", "", - "\1\u00a2", - "\1\u00a3", - "\1\u00a4\1\u00a5\1\u00a6\1\u00a7", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00a8\1\uffff\32"+ - "\22", - "\1\u00aa", - "\1\u00ab", - "\1\u00ac", - "\1\u00ad\1\u00ae\1\u00af\1\u00b0", + "\1\u00bc", + "\1\u00bd", "", - "\1\u00b1", - "\1\22\1\uffff\12\22\7\uffff\32\22\4\uffff\1\u00b2\1\uffff\32"+ - "\22", - "\1\u00b4", "", "", + "\1\u00be", + "\1\u00bf\1\u00c0\1\u00c1\1\u00c2", "", + "\1\u00c3", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00c4\1\uffff\32"+ + "\25", + "\1\u00c6", + "\1\u00c7", + "\1\u00c8", + "\1\u00c9\1\u00ca\1\u00cb\1\u00cc", + "", + "\1\u00cd", + "\1\u00ce", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00cf\1\uffff\32"+ + "\25", + "\1\u00d1", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "", + "", + "", + "", + "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00d4\1\u00d5\1\u00d6\1\u00d7", + "", + "\1\u00d8", + "\1\u00d9\1\u00da\1\u00db\1\u00dc\1\u00dd\1\u00de\67\uffff\1"+ + "\u00df", + "\1\u00e0\1\uffff\1\u00e1\4\uffff\1\u00e2\1\uffff\1\u00e3", "", "", - "\1\u00b5\1\u00b6\1\u00b7\1\u00b8", "", - "\1\u00b9", - "\1\u00ba\1\u00bb\1\u00bc\1\u00bd\1\u00be\1\u00bf\67\uffff\1"+ - "\u00c0", - "\1\u00c1\1\uffff\1\u00c2\4\uffff\1\u00c3\1\uffff\1\u00c4", "", + "\1\u00e4", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00e6\1\u00e7\1\u00e8\1\u00e9", "", + "\1\u00ea", "", "", - "\1\u00c5", - "\1\u00c6\1\u00c7\1\u00c8\1\u00c9", "", - "\1\u00ca", "", "", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", "", "", "", @@ -2934,27 +3193,27 @@ public void mTokens() throws RecognitionException { "", "", "", + "\1\u00ec\16\uffff\1\u00ed", + "\1\u00ee\16\uffff\1\u00ef", "", - "\1\u00cc\16\uffff\1\u00cd", - "\1\u00ce\16\uffff\1\u00cf", + "\1\u00f0", "", - "\1\u00d0", "", "", "", "", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", "", "", "", "", - "\1\u00d2", + "\1\u00f2", "", - "\1\u00d3", - "\1\u00d4", - "\1\u00d5", - "\1\22\1\uffff\12\22\7\uffff\32\22\6\uffff\32\22", + "\1\u00f3", + "\1\u00f4", + "\1\u00f5", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "" }; @@ -2988,7 +3247,7 @@ public DFA6(BaseRecognizer recognizer) { this.transition = DFA6_transition; } public String getDescription() { - return "1:1: Tokens : ( T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; + return "1:1: Tokens : ( T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | INIT | MAIN | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index aa9f2e6..49a3e3f 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-07-15 00:36:58 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 16:44:55 package br.ufpb.iged.interpretador.parser; @@ -18,12 +18,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__23=23; - public static final int T__24=24; public static final int T__25=25; public static final int T__26=26; public static final int T__27=27; @@ -90,25 +88,35 @@ public abstract class AssemblerParser extends Parser { public static final int T__88=88; public static final int T__89=89; public static final int T__90=90; + public static final int T__91=91; + public static final int T__92=92; + public static final int T__93=93; + public static final int T__94=94; + public static final int T__95=95; + public static final int T__96=96; + public static final int T__97=97; + public static final int T__98=98; public static final int ARITMETICA=4; - public static final int DESVIO=5; - public static final int EXTENDS=6; - public static final int FIELD_DECL=7; - public static final int ID=8; - public static final int INIT=9; - public static final int INT=10; - public static final int INTEIRO=11; - public static final int LABEL=12; - public static final int LOAD=13; - public static final int LOGICA=14; - public static final int MEMBRO_CLASSE=15; - public static final int NEWLINE=16; - public static final int NULL=17; - public static final int PILHA=18; - public static final int STORE=19; - public static final int TIPO_REF=20; - public static final int VOID=21; - public static final int WS=22; + public static final int BODY=5; + public static final int DESVIO=6; + public static final int EXTENDS=7; + public static final int FIELD_DECL=8; + public static final int ID=9; + public static final int INIT=10; + public static final int INT=11; + public static final int INTEIRO=12; + public static final int LABEL=13; + public static final int LOAD=14; + public static final int LOGICA=15; + public static final int MAIN=16; + public static final int MEMBRO_CLASSE=17; + public static final int NEWLINE=18; + public static final int NULL=19; + public static final int PILHA=20; + public static final int STORE=21; + public static final int TIPO_REF=22; + public static final int VOID=23; + public static final int WS=24; // delegates public Parser[] getDelegates() { @@ -134,7 +142,7 @@ public TreeAdaptor getTreeAdaptor() { return adaptor; } public String[] getTokenNames() { return AssemblerParser.tokenNames; } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } @@ -153,7 +161,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:1: programa : ( instrucao )* ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:1: programa : ( instrucao )* ; public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -166,28 +174,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:10: ( ( instrucao )* ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:12: ( instrucao )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:12: ( instrucao )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==24||LA1_0==27||(LA1_0 >= 31 && LA1_0 <= 90)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==28||(LA1_0 >= 36 && LA1_0 <= 41)||(LA1_0 >= 43 && LA1_0 <= 83)||(LA1_0 >= 85 && LA1_0 <= 97)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:12: instrucao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:12: instrucao { - pushFollow(FOLLOW_instrucao_in_programa107); + pushFollow(FOLLOW_instrucao_in_programa112); instrucao1=instrucao(); state._fsp--; @@ -234,7 +242,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -251,14 +259,14 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST string_literal4_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:11: ( operacao | definicaoClasse ( '.end class' )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:11: ( operacao | definicaoClasse ( '.end class' )? ) int alt3=2; int LA3_0 = input.LA(1); - if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 31 && LA3_0 <= 90)) ) { + if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 36 && LA3_0 <= 41)||(LA3_0 >= 43 && LA3_0 <= 83)||(LA3_0 >= 85 && LA3_0 <= 97)) ) { alt3=1; } - else if ( (LA3_0==24||LA3_0==27) ) { + else if ( (LA3_0==28) ) { alt3=2; } else { @@ -270,12 +278,12 @@ else if ( (LA3_0==24||LA3_0==27) ) { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:13: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:13: operacao { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_operacao_in_instrucao135); + pushFollow(FOLLOW_operacao_in_instrucao140); operacao2=operacao(); state._fsp--; @@ -285,30 +293,30 @@ else if ( (LA3_0==24||LA3_0==27) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:13: definicaoClasse ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:13: definicaoClasse ( '.end class' )? { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_definicaoClasse_in_instrucao150); + pushFollow(FOLLOW_definicaoClasse_in_instrucao155); definicaoClasse3=definicaoClasse(); state._fsp--; adaptor.addChild(root_0, definicaoClasse3.getTree()); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:29: ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:29: ( '.end class' )? int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==25) ) { + if ( (LA2_0==29) ) { alt2=1; } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:30: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:30: '.end class' { - string_literal4=(Token)match(input,25,FOLLOW_25_in_instrucao153); + string_literal4=(Token)match(input,29,FOLLOW_29_in_instrucao158); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -354,7 +362,7 @@ public static class operacao_return extends ParserRuleReturnScope { // $ANTLR start "operacao" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: operacao : ( label comando | comando ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: operacao : ( label comando | comando ) ; public final AssemblerParser.operacao_return operacao() throws RecognitionException { AssemblerParser.operacao_return retval = new AssemblerParser.operacao_return(); retval.start = input.LT(1); @@ -371,20 +379,20 @@ public final AssemblerParser.operacao_return operacao() throws RecognitionExcept try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:10: ( ( label comando | comando ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:10: ( ( label comando | comando ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:12: ( label comando | comando ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:12: ( label comando | comando ) int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==ID) ) { alt4=1; } - else if ( (LA4_0==NEWLINE||(LA4_0 >= 31 && LA4_0 <= 90)) ) { + else if ( (LA4_0==NEWLINE||(LA4_0 >= 36 && LA4_0 <= 41)||(LA4_0 >= 43 && LA4_0 <= 83)||(LA4_0 >= 85 && LA4_0 <= 97)) ) { alt4=2; } else { @@ -396,16 +404,16 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 31 && LA4_0 <= 90)) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:13: label comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:13: label comando { - pushFollow(FOLLOW_label_in_operacao175); + pushFollow(FOLLOW_label_in_operacao180); label5=label(); state._fsp--; adaptor.addChild(root_0, label5.getTree()); - pushFollow(FOLLOW_comando_in_operacao177); + pushFollow(FOLLOW_comando_in_operacao182); comando6=comando(); state._fsp--; @@ -415,9 +423,9 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 31 && LA4_0 <= 90)) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:29: comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:29: comando { - pushFollow(FOLLOW_comando_in_operacao181); + pushFollow(FOLLOW_comando_in_operacao186); comando7=comando(); state._fsp--; @@ -461,7 +469,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: label : a= ID ':' -> ^( LABEL $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: label : a= ID ':' -> ^( LABEL $a) ; public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -474,19 +482,19 @@ public final AssemblerParser.label_return label() throws RecognitionException { BytecodesAST a_tree=null; BytecodesAST char_literal8_tree=null; - RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: (a= ID ':' -> ^( LABEL $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: a= ID ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label203); + a=(Token)match(input,ID,FOLLOW_ID_in_label208); stream_ID.add(a); - char_literal8=(Token)match(input,30,FOLLOW_30_in_label205); - stream_30.add(char_literal8); + char_literal8=(Token)match(input,35,FOLLOW_35_in_label210); + stream_35.add(char_literal8); // AST REWRITE @@ -501,9 +509,9 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 52:20: -> ^( LABEL $a) + // 53:20: -> ^( LABEL $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:23: ^( LABEL $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:23: ^( LABEL $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -551,7 +559,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ; public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -584,111 +592,111 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio BytecodesAST NEWLINE19_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? int alt5=11; switch ( input.LA(1) ) { - case 43: - case 75: - case 86: - case 90: + case 49: + case 81: + case 93: + case 97: { alt5=1; } break; - case 45: - case 54: - case 67: + case 51: + case 60: case 73: - case 74: - case 77: + case 79: + case 80: case 83: + case 90: { alt5=2; } break; - case 31: - case 33: - case 34: - case 35: case 36: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: + case 38: + case 39: + case 40: + case 41: case 53: - case 69: - case 70: - case 71: - case 72: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 75: + case 76: + case 77: + case 78: { alt5=3; } break; - case 32: - case 68: - case 85: + case 37: + case 74: + case 92: { alt5=4; } break; - case 38: - case 39: - case 40: - case 41: - case 79: - case 80: - case 81: - case 82: + case 44: + case 45: + case 46: + case 47: + case 86: + case 87: + case 88: + case 89: { alt5=5; } break; - case 37: - case 78: + case 43: + case 85: { alt5=6; } break; - case 44: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: + case 50: case 61: case 62: case 63: case 64: case 65: case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: { alt5=7; } break; - case 46: - case 76: - case 84: + case 52: + case 82: + case 91: { alt5=8; } break; - case 42: - case 88: - case 89: + case 48: + case 95: + case 96: { alt5=9; } break; - case 87: + case 94: { alt5=10; } @@ -697,9 +705,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio switch (alt5) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:17: manipulacaoObjetos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:17: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_comando228); + pushFollow(FOLLOW_manipulacaoObjetos_in_comando233); manipulacaoObjetos9=manipulacaoObjetos(); state._fsp--; @@ -709,9 +717,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:17: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:17: aritmetica { - pushFollow(FOLLOW_aritmetica_in_comando247); + pushFollow(FOLLOW_aritmetica_in_comando252); aritmetica10=aritmetica(); state._fsp--; @@ -721,9 +729,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:17: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:17: load { - pushFollow(FOLLOW_load_in_comando266); + pushFollow(FOLLOW_load_in_comando271); load11=load(); state._fsp--; @@ -733,9 +741,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:17: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: loadint { - pushFollow(FOLLOW_loadint_in_comando284); + pushFollow(FOLLOW_loadint_in_comando289); loadint12=loadint(); state._fsp--; @@ -745,9 +753,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: store { - pushFollow(FOLLOW_store_in_comando303); + pushFollow(FOLLOW_store_in_comando308); store13=store(); state._fsp--; @@ -757,9 +765,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: storeint { - pushFollow(FOLLOW_storeint_in_comando321); + pushFollow(FOLLOW_storeint_in_comando326); storeint14=storeint(); state._fsp--; @@ -769,9 +777,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: desvio { - pushFollow(FOLLOW_desvio_in_comando340); + pushFollow(FOLLOW_desvio_in_comando345); desvio15=desvio(); state._fsp--; @@ -781,9 +789,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: logica { - pushFollow(FOLLOW_logica_in_comando359); + pushFollow(FOLLOW_logica_in_comando364); logica16=logica(); state._fsp--; @@ -793,9 +801,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: pilha { - pushFollow(FOLLOW_pilha_in_comando377); + pushFollow(FOLLOW_pilha_in_comando382); pilha17=pilha(); state._fsp--; @@ -805,9 +813,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: 'nop' { - string_literal18=(Token)match(input,87,FOLLOW_87_in_comando396); + string_literal18=(Token)match(input,94,FOLLOW_94_in_comando401); string_literal18_tree = (BytecodesAST)adaptor.create(string_literal18) ; @@ -820,7 +828,7 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } - NEWLINE19=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando412); + NEWLINE19=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando417); NEWLINE19_tree = (BytecodesAST)adaptor.create(NEWLINE19) ; @@ -858,7 +866,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:1: definicaoClasse : ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID NEWLINE ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -871,11 +879,6 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec Token NEWLINE22=null; Token NEWLINE24=null; Token NEWLINE26=null; - Token string_literal27=null; - Token INIT28=null; - Token string_literal29=null; - Token VOID30=null; - Token NEWLINE31=null; AssemblerParser.superClasse_return superClasse23 =null; AssemblerParser.membroClasse_return membroClasse25 =null; @@ -886,168 +889,852 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST NEWLINE22_tree=null; BytecodesAST NEWLINE24_tree=null; BytecodesAST NEWLINE26_tree=null; - BytecodesAST string_literal27_tree=null; - BytecodesAST INIT28_tree=null; - BytecodesAST string_literal29_tree=null; - BytecodesAST VOID30_tree=null; - BytecodesAST NEWLINE31_tree=null; RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_24=new RewriteRuleTokenStream(adaptor,"token 24"); + RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) | '.method' INIT '()' VOID NEWLINE ) - int alt8=2; - int LA8_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + { + string_literal20=(Token)match(input,28,FOLLOW_28_in_definicaoClasse443); + stream_28.add(string_literal20); - if ( (LA8_0==24) ) { - alt8=1; - } - else if ( (LA8_0==27) ) { - alt8=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); - throw nvae; + ID21=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse445); + stream_ID.add(ID21); + + NEWLINE22=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse447); + stream_NEWLINE.add(NEWLINE22); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:27: ( superClasse NEWLINE )? + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==33) ) { + alt6=1; } - switch (alt8) { + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:28: superClasse NEWLINE { - string_literal20=(Token)match(input,24,FOLLOW_24_in_definicaoClasse438); - stream_24.add(string_literal20); + pushFollow(FOLLOW_superClasse_in_definicaoClasse450); + superClasse23=superClasse(); + state._fsp--; - ID21=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse440); - stream_ID.add(ID21); + stream_superClasse.add(superClasse23.getTree()); + NEWLINE24=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse452); + stream_NEWLINE.add(NEWLINE24); - NEWLINE22=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse442); - stream_NEWLINE.add(NEWLINE22); + } + break; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:27: ( superClasse NEWLINE )? - int alt6=2; - int LA6_0 = input.LA(1); + } - if ( (LA6_0==28) ) { - alt6=1; - } - switch (alt6) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:28: superClasse NEWLINE - { - pushFollow(FOLLOW_superClasse_in_definicaoClasse445); - superClasse23=superClasse(); - state._fsp--; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:50: ( membroClasse NEWLINE )+ + int cnt7=0; + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); - stream_superClasse.add(superClasse23.getTree()); + if ( ((LA7_0 >= 31 && LA7_0 <= 32)) ) { + alt7=1; + } - NEWLINE24=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse447); - stream_NEWLINE.add(NEWLINE24); + switch (alt7) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:51: membroClasse NEWLINE + { + pushFollow(FOLLOW_membroClasse_in_definicaoClasse457); + membroClasse25=membroClasse(); - } - break; + state._fsp--; - } + stream_membroClasse.add(membroClasse25.getTree()); + NEWLINE26=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse459); + stream_NEWLINE.add(NEWLINE26); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:50: ( membroClasse NEWLINE )+ - int cnt7=0; - loop7: - do { - int alt7=2; - int LA7_0 = input.LA(1); - if ( (LA7_0==26) ) { - alt7=1; - } + } + break; + default : + if ( cnt7 >= 1 ) break loop7; + EarlyExitException eee = + new EarlyExitException(7, input); + throw eee; + } + cnt7++; + } while (true); - switch (alt7) { - case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:51: membroClasse NEWLINE - { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse452); - membroClasse25=membroClasse(); - state._fsp--; + // AST REWRITE + // elements: 28, ID, membroClasse, superClasse + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 69:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_28.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:29: ( superClasse )? + if ( stream_superClasse.hasNext() ) { + adaptor.addChild(root_1, stream_superClasse.nextTree()); + + } + stream_superClasse.reset(); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") + , root_2); + + if ( !(stream_membroClasse.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_membroClasse.hasNext() ) { + adaptor.addChild(root_2, stream_membroClasse.nextTree()); + + } + stream_membroClasse.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "definicaoClasse" + - stream_membroClasse.add(membroClasse25.getTree()); + public static class superClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "superClasse" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { + AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal27=null; + Token TIPO_REF28=null; + + BytecodesAST string_literal27_tree=null; + BytecodesAST TIPO_REF28_tree=null; + RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: '.super' TIPO_REF + { + string_literal27=(Token)match(input,33,FOLLOW_33_in_superClasse535); + stream_33.add(string_literal27); + + + TIPO_REF28=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse537); + stream_TIPO_REF.add(TIPO_REF28); + + + // AST REWRITE + // elements: TIPO_REF + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 72:33: -> ^( EXTENDS TIPO_REF ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:36: ^( EXTENDS TIPO_REF ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(EXTENDS, "EXTENDS") + , root_1); + + adaptor.addChild(root_1, + stream_TIPO_REF.nextNode() + ); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - NEWLINE26=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse454); - stream_NEWLINE.add(NEWLINE26); + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "superClasse" + + + public static class membroClasse_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "membroClasse" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( '.method' INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( '.method' MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '(' (tipos+= tipo )* ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( '.method' ID $tipos ^( BODY ( operacao )* ) $ret) ); + public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { + AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal29=null; + Token ID30=null; + Token string_literal32=null; + Token INIT33=null; + Token string_literal34=null; + Token VOID35=null; + Token NEWLINE36=null; + Token string_literal38=null; + Token NEWLINE39=null; + Token string_literal40=null; + Token string_literal41=null; + Token MAIN42=null; + Token string_literal43=null; + Token VOID44=null; + Token NEWLINE45=null; + Token NEWLINE47=null; + Token string_literal48=null; + Token string_literal49=null; + Token ID50=null; + Token char_literal51=null; + Token char_literal52=null; + Token NEWLINE54=null; + Token NEWLINE56=null; + Token string_literal57=null; + List list_tipos=null; + AssemblerParser.retorno_return ret =null; + + AssemblerParser.tipo_return tipo31 =null; + + AssemblerParser.operacao_return operacao37 =null; + + AssemblerParser.operacao_return operacao46 =null; + + AssemblerParser.tipo_return tipo53 =null; + + AssemblerParser.operacao_return operacao55 =null; + + RuleReturnScope tipos = null; + BytecodesAST string_literal29_tree=null; + BytecodesAST ID30_tree=null; + BytecodesAST string_literal32_tree=null; + BytecodesAST INIT33_tree=null; + BytecodesAST string_literal34_tree=null; + BytecodesAST VOID35_tree=null; + BytecodesAST NEWLINE36_tree=null; + BytecodesAST string_literal38_tree=null; + BytecodesAST NEWLINE39_tree=null; + BytecodesAST string_literal40_tree=null; + BytecodesAST string_literal41_tree=null; + BytecodesAST MAIN42_tree=null; + BytecodesAST string_literal43_tree=null; + BytecodesAST VOID44_tree=null; + BytecodesAST NEWLINE45_tree=null; + BytecodesAST NEWLINE47_tree=null; + BytecodesAST string_literal48_tree=null; + BytecodesAST string_literal49_tree=null; + BytecodesAST ID50_tree=null; + BytecodesAST char_literal51_tree=null; + BytecodesAST char_literal52_tree=null; + BytecodesAST NEWLINE54_tree=null; + BytecodesAST NEWLINE56_tree=null; + BytecodesAST string_literal57_tree=null; + RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); + RewriteRuleTokenStream stream_MAIN=new RewriteRuleTokenStream(adaptor,"token MAIN"); + RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); + RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); + RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); + RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); + RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); + RewriteRuleTokenStream stream_25=new RewriteRuleTokenStream(adaptor,"token 25"); + RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26"); + RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); + RewriteRuleSubtreeStream stream_retorno=new RewriteRuleSubtreeStream(adaptor,"rule retorno"); + RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); + RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( '.method' INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( '.method' MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '(' (tipos+= tipo )* ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( '.method' ID $tipos ^( BODY ( operacao )* ) $ret) ) + int alt12=4; + int LA12_0 = input.LA(1); + + if ( (LA12_0==31) ) { + alt12=1; + } + else if ( (LA12_0==32) ) { + switch ( input.LA(2) ) { + case INIT: + { + alt12=2; + } + break; + case MAIN: + { + alt12=3; + } + break; + case ID: + { + alt12=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 12, 2, input); + + throw nvae; + + } + + } + else { + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + + throw nvae; + + } + switch (alt12) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: '.field' ID tipo + { + string_literal29=(Token)match(input,31,FOLLOW_31_in_membroClasse559); + stream_31.add(string_literal29); + + + ID30=(Token)match(input,ID,FOLLOW_ID_in_membroClasse561); + stream_ID.add(ID30); + + + pushFollow(FOLLOW_tipo_in_membroClasse563); + tipo31=tipo(); + + state._fsp--; + + stream_tipo.add(tipo31.getTree()); + + // AST REWRITE + // elements: tipo, ID + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 75:24: -> ^( FIELD_DECL ID tipo ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:27: ^( FIELD_DECL ID tipo ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(FIELD_DECL, "FIELD_DECL") + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + adaptor.addChild(root_1, stream_tipo.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' + { + string_literal32=(Token)match(input,32,FOLLOW_32_in_membroClasse582); + stream_32.add(string_literal32); + + + INIT33=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse584); + stream_INIT.add(INIT33); + + + string_literal34=(Token)match(input,26,FOLLOW_26_in_membroClasse586); + stream_26.add(string_literal34); + + + VOID35=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse588); + stream_VOID.add(VOID35); + + + NEWLINE36=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse590); + stream_NEWLINE.add(NEWLINE36); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:40: ( operacao )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==ID||LA8_0==NEWLINE||(LA8_0 >= 36 && LA8_0 <= 41)||(LA8_0 >= 43 && LA8_0 <= 83)||(LA8_0 >= 85 && LA8_0 <= 97)) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:40: operacao + { + pushFollow(FOLLOW_operacao_in_membroClasse592); + operacao37=operacao(); + + state._fsp--; + + stream_operacao.add(operacao37.getTree()); + + } + break; + + default : + break loop8; + } + } while (true); + + + string_literal38=(Token)match(input,98,FOLLOW_98_in_membroClasse595); + stream_98.add(string_literal38); + + + NEWLINE39=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse597); + stream_NEWLINE.add(NEWLINE39); + + + string_literal40=(Token)match(input,30,FOLLOW_30_in_membroClasse599); + stream_30.add(string_literal40); + + + // AST REWRITE + // elements: 32, operacao, INIT + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 77:2: -> ^( '.method' INIT ^( BODY ( operacao )* ) ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:5: ^( '.method' INIT ^( BODY ( operacao )* ) ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_32.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_INIT.nextNode() + ); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:22: ^( BODY ( operacao )* ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(BODY, "BODY") + , root_2); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:29: ( operacao )* + while ( stream_operacao.hasNext() ) { + adaptor.addChild(root_2, stream_operacao.nextTree()); + + } + stream_operacao.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 3 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + { + string_literal41=(Token)match(input,32,FOLLOW_32_in_membroClasse623); + stream_32.add(string_literal41); + + + MAIN42=(Token)match(input,MAIN,FOLLOW_MAIN_in_membroClasse625); + stream_MAIN.add(MAIN42); + + + string_literal43=(Token)match(input,26,FOLLOW_26_in_membroClasse627); + stream_26.add(string_literal43); + + + VOID44=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse629); + stream_VOID.add(VOID44); + + + NEWLINE45=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse631); + stream_NEWLINE.add(NEWLINE45); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:40: ( operacao )* + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0==ID||LA9_0==NEWLINE||(LA9_0 >= 36 && LA9_0 <= 41)||(LA9_0 >= 43 && LA9_0 <= 83)||(LA9_0 >= 85 && LA9_0 <= 97)) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:40: operacao + { + pushFollow(FOLLOW_operacao_in_membroClasse633); + operacao46=operacao(); + + state._fsp--; + + stream_operacao.add(operacao46.getTree()); + + } + break; + + default : + break loop9; + } + } while (true); + + + pushFollow(FOLLOW_retorno_in_membroClasse640); + ret=retorno(); + + state._fsp--; + + stream_retorno.add(ret.getTree()); + + NEWLINE47=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse642); + stream_NEWLINE.add(NEWLINE47); + + + string_literal48=(Token)match(input,30,FOLLOW_30_in_membroClasse644); + stream_30.add(string_literal48); + + + // AST REWRITE + // elements: ret, 32, MAIN, operacao + // token labels: + // rule labels: ret, retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_ret=new RewriteRuleSubtreeStream(adaptor,"rule ret",ret!=null?ret.tree:null); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 79:9: -> ^( '.method' MAIN ^( BODY ( operacao )* ) $ret) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:12: ^( '.method' MAIN ^( BODY ( operacao )* ) $ret) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_32.nextNode() + , root_1); + + adaptor.addChild(root_1, + stream_MAIN.nextNode() + ); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:29: ^( BODY ( operacao )* ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(BODY, "BODY") + , root_2); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:36: ( operacao )* + while ( stream_operacao.hasNext() ) { + adaptor.addChild(root_2, stream_operacao.nextTree()); + + } + stream_operacao.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_1, stream_ret.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 4 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.method' ID '(' (tipos+= tipo )* ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + { + string_literal49=(Token)match(input,32,FOLLOW_32_in_membroClasse678); + stream_32.add(string_literal49); + + + ID50=(Token)match(input,ID,FOLLOW_ID_in_membroClasse680); + stream_ID.add(ID50); + + + char_literal51=(Token)match(input,25,FOLLOW_25_in_membroClasse682); + stream_25.add(char_literal51); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:24: (tipos+= tipo )* + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0==INT||(LA10_0 >= TIPO_REF && LA10_0 <= VOID)) ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:25: tipos+= tipo + { + pushFollow(FOLLOW_tipo_in_membroClasse689); + tipos=tipo(); + + state._fsp--; + + stream_tipo.add(tipos.getTree()); + if (list_tipos==null) list_tipos=new ArrayList(); + list_tipos.add(tipos.getTree()); + + + } + break; + + default : + break loop10; + } + } while (true); + + + char_literal52=(Token)match(input,27,FOLLOW_27_in_membroClasse693); + stream_27.add(char_literal52); + + + pushFollow(FOLLOW_tipo_in_membroClasse695); + tipo53=tipo(); + + state._fsp--; + + stream_tipo.add(tipo53.getTree()); + + NEWLINE54=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse697); + stream_NEWLINE.add(NEWLINE54); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:58: ( operacao )* + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 36 && LA11_0 <= 41)||(LA11_0 >= 43 && LA11_0 <= 83)||(LA11_0 >= 85 && LA11_0 <= 97)) ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:58: operacao + { + pushFollow(FOLLOW_operacao_in_membroClasse699); + operacao55=operacao(); + + state._fsp--; + stream_operacao.add(operacao55.getTree()); } break; default : - if ( cnt7 >= 1 ) break loop7; - EarlyExitException eee = - new EarlyExitException(7, input); - throw eee; + break loop11; } - cnt7++; } while (true); + pushFollow(FOLLOW_retorno_in_membroClasse706); + ret=retorno(); + + state._fsp--; + + stream_retorno.add(ret.getTree()); + + NEWLINE56=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse708); + stream_NEWLINE.add(NEWLINE56); + + + string_literal57=(Token)match(input,30,FOLLOW_30_in_membroClasse710); + stream_30.add(string_literal57); + + // AST REWRITE - // elements: ID, membroClasse, 24, superClasse + // elements: 32, ret, operacao, tipos, ID // token labels: - // rule labels: retval + // rule labels: ret, retval // token list labels: - // rule list labels: + // rule list labels: tipos // wildcard labels: retval.tree = root_0; + RewriteRuleSubtreeStream stream_ret=new RewriteRuleSubtreeStream(adaptor,"rule ret",ret!=null?ret.tree:null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - + RewriteRuleSubtreeStream stream_tipos=new RewriteRuleSubtreeStream(adaptor,"token tipos",list_tipos); root_0 = (BytecodesAST)adaptor.nil(); - // 68:19: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 81:9: -> ^( '.method' ID $tipos ^( BODY ( operacao )* ) $ret) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:22: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:12: ^( '.method' ID $tipos ^( BODY ( operacao )* ) $ret) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_24.nextNode() + stream_32.nextNode() , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:36: ( superClasse )? - if ( stream_superClasse.hasNext() ) { - adaptor.addChild(root_1, stream_superClasse.nextTree()); - - } - stream_superClasse.reset(); + adaptor.addChild(root_1, stream_tipos.nextTree()); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:49: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:34: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(MEMBRO_CLASSE, "MEMBRO_CLASSE") + (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - if ( !(stream_membroClasse.hasNext()) ) { - throw new RewriteEarlyExitException(); - } - while ( stream_membroClasse.hasNext() ) { - adaptor.addChild(root_2, stream_membroClasse.nextTree()); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:41: ( operacao )* + while ( stream_operacao.hasNext() ) { + adaptor.addChild(root_2, stream_operacao.nextTree()); } - stream_membroClasse.reset(); + stream_operacao.reset(); adaptor.addChild(root_1, root_2); } + adaptor.addChild(root_1, stream_ret.nextTree()); + adaptor.addChild(root_0, root_1); } @@ -1056,49 +1743,6 @@ else if ( (LA8_0==27) ) { retval.tree = root_0; - } - break; - case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:19: '.method' INIT '()' VOID NEWLINE - { - root_0 = (BytecodesAST)adaptor.nil(); - - - string_literal27=(Token)match(input,27,FOLLOW_27_in_definicaoClasse514); - string_literal27_tree = - (BytecodesAST)adaptor.create(string_literal27) - ; - adaptor.addChild(root_0, string_literal27_tree); - - - INIT28=(Token)match(input,INIT,FOLLOW_INIT_in_definicaoClasse516); - INIT28_tree = - (BytecodesAST)adaptor.create(INIT28) - ; - adaptor.addChild(root_0, INIT28_tree); - - - string_literal29=(Token)match(input,23,FOLLOW_23_in_definicaoClasse518); - string_literal29_tree = - (BytecodesAST)adaptor.create(string_literal29) - ; - adaptor.addChild(root_0, string_literal29_tree); - - - VOID30=(Token)match(input,VOID,FOLLOW_VOID_in_definicaoClasse520); - VOID30_tree = - (BytecodesAST)adaptor.create(VOID30) - ; - adaptor.addChild(root_0, VOID30_tree); - - - NEWLINE31=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse522); - NEWLINE31_tree = - (BytecodesAST)adaptor.create(NEWLINE31) - ; - adaptor.addChild(root_0, NEWLINE31_tree); - - } break; @@ -1122,178 +1766,50 @@ else if ( (LA8_0==27) ) { } return retval; } - // $ANTLR end "definicaoClasse" + // $ANTLR end "membroClasse" - public static class superClasse_return extends ParserRuleReturnScope { + public static class retorno_return extends ParserRuleReturnScope { BytecodesAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; - public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { - AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); + // $ANTLR start "retorno" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); + public final AssemblerParser.retorno_return retorno() throws RecognitionException { + AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - Token string_literal32=null; - Token TIPO_REF33=null; + Token set58=null; - BytecodesAST string_literal32_tree=null; - BytecodesAST TIPO_REF33_tree=null; - RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + BytecodesAST set58_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: ( 'areturn' | 'ireturn' | 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { - string_literal32=(Token)match(input,28,FOLLOW_28_in_superClasse563); - stream_28.add(string_literal32); - - - TIPO_REF33=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse565); - stream_TIPO_REF.add(TIPO_REF33); - - - // AST REWRITE - // elements: TIPO_REF - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - root_0 = (BytecodesAST)adaptor.nil(); - // 72:33: -> ^( EXTENDS TIPO_REF ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:36: ^( EXTENDS TIPO_REF ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(EXTENDS, "EXTENDS") - , root_1); - - adaptor.addChild(root_1, - stream_TIPO_REF.nextNode() - ); - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "superClasse" - - - public static class membroClasse_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: membroClasse : '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ; - public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { - AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal34=null; - Token ID35=null; - AssemblerParser.tipo_return tipo36 =null; - - - BytecodesAST string_literal34_tree=null; - BytecodesAST ID35_tree=null; - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26"); - RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); - try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: '.field' ID tipo - { - string_literal34=(Token)match(input,26,FOLLOW_26_in_membroClasse587); - stream_26.add(string_literal34); - ID35=(Token)match(input,ID,FOLLOW_ID_in_membroClasse589); - stream_ID.add(ID35); + set58=(Token)input.LT(1); - - pushFollow(FOLLOW_tipo_in_membroClasse591); - tipo36=tipo(); - - state._fsp--; - - stream_tipo.add(tipo36.getTree()); - - // AST REWRITE - // elements: ID, tipo - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 75:24: -> ^( FIELD_DECL ID tipo ) - { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:27: ^( FIELD_DECL ID tipo ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(FIELD_DECL, "FIELD_DECL") - , root_1); - - adaptor.addChild(root_1, - stream_ID.nextNode() + if ( input.LA(1)==42||input.LA(1)==84||input.LA(1)==98 ) { + input.consume(); + adaptor.addChild(root_0, + (BytecodesAST)adaptor.create(set58) ); - - adaptor.addChild(root_1, stream_tipo.nextTree()); - - adaptor.addChild(root_0, root_1); - } - + state.errorRecovery=false; + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; } - retval.tree = root_0; - } retval.stop = input.LT(-1); @@ -1315,7 +1831,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti } return retval; } - // $ANTLR end "membroClasse" + // $ANTLR end "retorno" public static class manipulacaoObjetos_return extends ParserRuleReturnScope { @@ -1325,7 +1841,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1334,85 +1850,85 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal39=null; + Token char_literal61=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; - AssemblerParser.tipo_return tipo37 =null; + AssemblerParser.tipo_return tipo59 =null; - AssemblerParser.tipo_return tipo38 =null; + AssemblerParser.tipo_return tipo60 =null; BytecodesAST a_tree=null; - BytecodesAST char_literal39_tree=null; - RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); - RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); - RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); - RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); - RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); + BytecodesAST char_literal61_tree=null; + RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); + RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); + RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); + RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); + RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) - int alt9=4; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + int alt13=4; switch ( input.LA(1) ) { - case 43: + case 49: { - alt9=1; + alt13=1; } break; - case 90: + case 97: { - alt9=2; + alt13=2; } break; - case 75: + case 81: { - alt9=3; + alt13=3; } break; - case 86: + case 93: { - alt9=4; + alt13=4; } break; default: NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 13, 0, input); throw nvae; } - switch (alt9) { + switch (alt13) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,43,FOLLOW_43_in_manipulacaoObjetos633); - stream_43.add(a); + a=(Token)match(input,49,FOLLOW_49_in_manipulacaoObjetos800); + stream_49.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos639); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos806); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos641); - tipo37=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos808); + tipo59=tipo(); state._fsp--; - stream_tipo.add(tipo37.getTree()); + stream_tipo.add(tipo59.getTree()); // AST REWRITE - // elements: b, tipo, 43 + // elements: 49, tipo, b // token labels: // rule labels: retval, b // token list labels: @@ -1423,13 +1939,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 78:52: -> ^( 'getfield' $b tipo ) + // 87:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_43.nextNode() + stream_49.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1447,28 +1963,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos679); - stream_90.add(a); + a=(Token)match(input,97,FOLLOW_97_in_manipulacaoObjetos846); + stream_97.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos685); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos852); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos687); - tipo38=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos854); + tipo60=tipo(); state._fsp--; - stream_tipo.add(tipo38.getTree()); + stream_tipo.add(tipo60.getTree()); // AST REWRITE - // elements: tipo, 90, b + // elements: 97, tipo, b // token labels: // rule labels: retval, b // token list labels: @@ -1479,13 +1995,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 79:52: -> ^( 'putfield' $b tipo ) + // 88:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_90.nextNode() + stream_97.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1503,24 +2019,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,75,FOLLOW_75_in_manipulacaoObjetos726); - stream_75.add(a); + a=(Token)match(input,81,FOLLOW_81_in_manipulacaoObjetos893); + stream_81.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos732); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos899); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal39=(Token)match(input,29,FOLLOW_29_in_manipulacaoObjetos734); - stream_29.add(char_literal39); + char_literal61=(Token)match(input,34,FOLLOW_34_in_manipulacaoObjetos901); + stream_34.add(char_literal61); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos740); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos907); d=chamadaMetodo(); state._fsp--; @@ -1528,7 +2044,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: 75, d, c + // elements: d, 81, c // token labels: // rule labels: retval, d, c // token list labels: @@ -1540,13 +2056,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 81:23: -> ^( 'invokespecial' $c $d) + // 90:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_75.nextNode() + stream_81.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -1564,13 +2080,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:22: a= 'new' c= classe + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:22: a= 'new' c= classe { - a=(Token)match(input,86,FOLLOW_86_in_manipulacaoObjetos802); - stream_86.add(a); + a=(Token)match(input,93,FOLLOW_93_in_manipulacaoObjetos969); + stream_93.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos807); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos974); c=classe(); state._fsp--; @@ -1578,7 +2094,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: 86, c + // elements: 93, c // token labels: // rule labels: retval, c // token list labels: @@ -1589,13 +2105,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 82:42: -> ^( 'new' $c) + // 91:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:45: ^( 'new' $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_86.nextNode() + stream_93.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -1641,7 +2157,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -1649,23 +2165,23 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set40=null; + Token set62=null; - BytecodesAST set40_tree=null; + BytecodesAST set62_tree=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:6: ( INT | VOID | TIPO_REF ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set40=(Token)input.LT(1); + set62=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set40) + (BytecodesAST)adaptor.create(set62) ); state.errorRecovery=false; } @@ -1706,7 +2222,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -1717,124 +2233,124 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); - RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); - RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); + RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); + RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); - RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); + RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); + RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); - RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt10=7; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + int alt14=7; switch ( input.LA(1) ) { - case 45: + case 51: { - alt10=1; + alt14=1; } break; - case 83: + case 90: { - alt10=2; + alt14=2; } break; - case 73: + case 79: { - alt10=3; + alt14=3; } break; - case 54: + case 60: { - alt10=4; + alt14=4; } break; - case 77: + case 83: { - alt10=5; + alt14=5; } break; - case 67: + case 73: { - alt10=6; + alt14=6; } break; - case 74: + case 80: { - alt10=7; + alt14=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 10, 0, input); + new NoViableAltException("", 14, 0, input); throw nvae; } - switch (alt10) { + switch (alt14) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:19: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:19: a= 'iadd' { - a=(Token)match(input,45,FOLLOW_45_in_aritmetica871); - stream_45.add(a); + a=(Token)match(input,51,FOLLOW_51_in_aritmetica1038); + stream_51.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:19: a= 'isub' { - a=(Token)match(input,83,FOLLOW_83_in_aritmetica895); - stream_83.add(a); + a=(Token)match(input,90,FOLLOW_90_in_aritmetica1062); + stream_90.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:19: a= 'imul' { - a=(Token)match(input,73,FOLLOW_73_in_aritmetica919); - stream_73.add(a); + a=(Token)match(input,79,FOLLOW_79_in_aritmetica1086); + stream_79.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:19: a= 'idiv' { - a=(Token)match(input,54,FOLLOW_54_in_aritmetica943); - stream_54.add(a); + a=(Token)match(input,60,FOLLOW_60_in_aritmetica1110); + stream_60.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:19: a= 'irem' { - a=(Token)match(input,77,FOLLOW_77_in_aritmetica967); - stream_77.add(a); + a=(Token)match(input,83,FOLLOW_83_in_aritmetica1134); + stream_83.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:19: a= 'iinc' { - a=(Token)match(input,67,FOLLOW_67_in_aritmetica991); - stream_67.add(a); + a=(Token)match(input,73,FOLLOW_73_in_aritmetica1158); + stream_73.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:19: a= 'ineg' { - a=(Token)match(input,74,FOLLOW_74_in_aritmetica1015); - stream_74.add(a); + a=(Token)match(input,80,FOLLOW_80_in_aritmetica1182); + stream_80.add(a); } @@ -1855,9 +2371,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 95:14: -> ^( ARITMETICA $a) + // 104:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1905,7 +2421,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -1916,259 +2432,259 @@ public final AssemblerParser.load_return load() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); - RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); - RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); - RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); - RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); + RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); + RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); + RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); + RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); + RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); + RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); - RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); - RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); - RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); - RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); - RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); - RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); - RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); + RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); + RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); + RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); + RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); - RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); - RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); + RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); + RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt11=16; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt15=16; switch ( input.LA(1) ) { - case 53: + case 59: { - alt11=1; + alt15=1; } break; - case 47: + case 53: { - alt11=2; + alt15=2; } break; - case 48: + case 54: { - alt11=3; + alt15=3; } break; - case 49: + case 55: { - alt11=4; + alt15=4; } break; - case 50: + case 56: { - alt11=5; + alt15=5; } break; - case 51: + case 57: { - alt11=6; + alt15=6; } break; - case 52: + case 58: { - alt11=7; + alt15=7; } break; - case 31: + case 36: { - alt11=8; + alt15=8; } break; - case 69: + case 75: { - alt11=9; + alt15=9; } break; - case 70: + case 76: { - alt11=10; + alt15=10; } break; - case 71: + case 77: { - alt11=11; + alt15=11; } break; - case 72: + case 78: { - alt11=12; + alt15=12; } break; - case 33: + case 38: { - alt11=13; + alt15=13; } break; - case 34: + case 39: { - alt11=14; + alt15=14; } break; - case 35: + case 40: { - alt11=15; + alt15=15; } break; - case 36: + case 41: { - alt11=16; + alt15=16; } break; default: NoViableAltException nvae = - new NoViableAltException("", 11, 0, input); + new NoViableAltException("", 15, 0, input); throw nvae; } - switch (alt11) { + switch (alt15) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:13: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:13: a= 'iconst_m1' { - a=(Token)match(input,53,FOLLOW_53_in_load1093); - stream_53.add(a); + a=(Token)match(input,59,FOLLOW_59_in_load1260); + stream_59.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:13: a= 'iconst_0' { - a=(Token)match(input,47,FOLLOW_47_in_load1111); - stream_47.add(a); + a=(Token)match(input,53,FOLLOW_53_in_load1278); + stream_53.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:13: a= 'iconst_1' { - a=(Token)match(input,48,FOLLOW_48_in_load1129); - stream_48.add(a); + a=(Token)match(input,54,FOLLOW_54_in_load1296); + stream_54.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:13: a= 'iconst_2' { - a=(Token)match(input,49,FOLLOW_49_in_load1147); - stream_49.add(a); + a=(Token)match(input,55,FOLLOW_55_in_load1314); + stream_55.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:13: a= 'iconst_3' { - a=(Token)match(input,50,FOLLOW_50_in_load1166); - stream_50.add(a); + a=(Token)match(input,56,FOLLOW_56_in_load1333); + stream_56.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:13: a= 'iconst_4' { - a=(Token)match(input,51,FOLLOW_51_in_load1184); - stream_51.add(a); + a=(Token)match(input,57,FOLLOW_57_in_load1351); + stream_57.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:13: a= 'iconst_5' { - a=(Token)match(input,52,FOLLOW_52_in_load1202); - stream_52.add(a); + a=(Token)match(input,58,FOLLOW_58_in_load1369); + stream_58.add(a); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:13: a= 'aconst_null' { - a=(Token)match(input,31,FOLLOW_31_in_load1220); - stream_31.add(a); + a=(Token)match(input,36,FOLLOW_36_in_load1387); + stream_36.add(a); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:13: a= 'iload_0' { - a=(Token)match(input,69,FOLLOW_69_in_load1239); - stream_69.add(a); + a=(Token)match(input,75,FOLLOW_75_in_load1406); + stream_75.add(a); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:13: a= 'iload_1' { - a=(Token)match(input,70,FOLLOW_70_in_load1258); - stream_70.add(a); + a=(Token)match(input,76,FOLLOW_76_in_load1425); + stream_76.add(a); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:13: a= 'iload_2' { - a=(Token)match(input,71,FOLLOW_71_in_load1276); - stream_71.add(a); + a=(Token)match(input,77,FOLLOW_77_in_load1443); + stream_77.add(a); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'iload_3' { - a=(Token)match(input,72,FOLLOW_72_in_load1294); - stream_72.add(a); + a=(Token)match(input,78,FOLLOW_78_in_load1461); + stream_78.add(a); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'aload_0' { - a=(Token)match(input,33,FOLLOW_33_in_load1312); - stream_33.add(a); + a=(Token)match(input,38,FOLLOW_38_in_load1479); + stream_38.add(a); } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'aload_1' { - a=(Token)match(input,34,FOLLOW_34_in_load1330); - stream_34.add(a); + a=(Token)match(input,39,FOLLOW_39_in_load1497); + stream_39.add(a); } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'aload_2' { - a=(Token)match(input,35,FOLLOW_35_in_load1349); - stream_35.add(a); + a=(Token)match(input,40,FOLLOW_40_in_load1516); + stream_40.add(a); } break; case 16 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'aload_3' { - a=(Token)match(input,36,FOLLOW_36_in_load1367); - stream_36.add(a); + a=(Token)match(input,41,FOLLOW_41_in_load1534); + stream_41.add(a); } @@ -2189,9 +2705,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 115:8: -> ^( LOAD $a) + // 124:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2239,7 +2755,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -2252,76 +2768,76 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); - RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); + RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); + RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) - int alt12=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + int alt16=3; switch ( input.LA(1) ) { - case 68: + case 74: { - alt12=1; + alt16=1; } break; - case 85: + case 92: { - alt12=2; + alt16=2; } break; - case 32: + case 37: { - alt12=3; + alt16=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); + new NoViableAltException("", 16, 0, input); throw nvae; } - switch (alt12) { + switch (alt16) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:15: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:15: a= 'iload' b= INTEIRO { - a=(Token)match(input,68,FOLLOW_68_in_loadint1421); - stream_68.add(a); + a=(Token)match(input,74,FOLLOW_74_in_loadint1588); + stream_74.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1427); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1594); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,85,FOLLOW_85_in_loadint1448); - stream_85.add(a); + a=(Token)match(input,92,FOLLOW_92_in_loadint1615); + stream_92.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1454); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1621); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,32,FOLLOW_32_in_loadint1474); - stream_32.add(a); + a=(Token)match(input,37,FOLLOW_37_in_loadint1641); + stream_37.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1480); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1647); stream_INTEIRO.add(b); @@ -2344,9 +2860,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 122:11: -> ^( LOAD $a $b) + // 131:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2396,7 +2912,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2407,139 +2923,139 @@ public final AssemblerParser.store_return store() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); - RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); - RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); - RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); - RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); - RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); - RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); - RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); + RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); + RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); + RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); + RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); + RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); + RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); + RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt13=8; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + int alt17=8; switch ( input.LA(1) ) { - case 79: + case 86: { - alt13=1; + alt17=1; } break; - case 80: + case 87: { - alt13=2; + alt17=2; } break; - case 81: + case 88: { - alt13=3; + alt17=3; } break; - case 82: + case 89: { - alt13=4; + alt17=4; } break; - case 38: + case 44: { - alt13=5; + alt17=5; } break; - case 39: + case 45: { - alt13=6; + alt17=6; } break; - case 40: + case 46: { - alt13=7; + alt17=7; } break; - case 41: + case 47: { - alt13=8; + alt17=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); + new NoViableAltException("", 17, 0, input); throw nvae; } - switch (alt13) { + switch (alt17) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'istore_0' { - a=(Token)match(input,79,FOLLOW_79_in_store1547); - stream_79.add(a); + a=(Token)match(input,86,FOLLOW_86_in_store1714); + stream_86.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'istore_1' { - a=(Token)match(input,80,FOLLOW_80_in_store1566); - stream_80.add(a); + a=(Token)match(input,87,FOLLOW_87_in_store1733); + stream_87.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'istore_2' { - a=(Token)match(input,81,FOLLOW_81_in_store1585); - stream_81.add(a); + a=(Token)match(input,88,FOLLOW_88_in_store1752); + stream_88.add(a); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'istore_3' { - a=(Token)match(input,82,FOLLOW_82_in_store1604); - stream_82.add(a); + a=(Token)match(input,89,FOLLOW_89_in_store1771); + stream_89.add(a); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'astore_0' { - a=(Token)match(input,38,FOLLOW_38_in_store1623); - stream_38.add(a); + a=(Token)match(input,44,FOLLOW_44_in_store1790); + stream_44.add(a); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'astore_1' { - a=(Token)match(input,39,FOLLOW_39_in_store1641); - stream_39.add(a); + a=(Token)match(input,45,FOLLOW_45_in_store1808); + stream_45.add(a); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'astore_2' { - a=(Token)match(input,40,FOLLOW_40_in_store1660); - stream_40.add(a); + a=(Token)match(input,46,FOLLOW_46_in_store1827); + stream_46.add(a); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'astore_3' { - a=(Token)match(input,41,FOLLOW_41_in_store1679); - stream_41.add(a); + a=(Token)match(input,47,FOLLOW_47_in_store1846); + stream_47.add(a); } @@ -2560,9 +3076,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 134:9: -> ^( STORE $a) + // 143:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2610,7 +3126,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -2623,53 +3139,53 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); + RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) - int alt14=2; - int LA14_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + int alt18=2; + int LA18_0 = input.LA(1); - if ( (LA14_0==78) ) { - alt14=1; + if ( (LA18_0==85) ) { + alt18=1; } - else if ( (LA14_0==37) ) { - alt14=2; + else if ( (LA18_0==43) ) { + alt18=2; } else { NoViableAltException nvae = - new NoViableAltException("", 14, 0, input); + new NoViableAltException("", 18, 0, input); throw nvae; } - switch (alt14) { + switch (alt18) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:16: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:16: a= 'istore' b= INTEIRO { - a=(Token)match(input,78,FOLLOW_78_in_storeint1736); - stream_78.add(a); + a=(Token)match(input,85,FOLLOW_85_in_storeint1903); + stream_85.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1742); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1909); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,37,FOLLOW_37_in_storeint1764); - stream_37.add(a); + a=(Token)match(input,43,FOLLOW_43_in_storeint1931); + stream_43.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1770); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1937); stream_INTEIRO.add(b); @@ -2680,7 +3196,7 @@ else if ( (LA14_0==37) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -2692,9 +3208,9 @@ else if ( (LA14_0==37) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 140:12: -> ^( STORE $a $b) + // 149:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2744,7 +3260,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -2755,64 +3271,64 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); - RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); - RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); + RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); + RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); + RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt15=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt19=3; switch ( input.LA(1) ) { - case 46: + case 52: { - alt15=1; + alt19=1; } break; - case 76: + case 82: { - alt15=2; + alt19=2; } break; - case 84: + case 91: { - alt15=3; + alt19=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 15, 0, input); + new NoViableAltException("", 19, 0, input); throw nvae; } - switch (alt15) { + switch (alt19) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:14: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'iand' { - a=(Token)match(input,46,FOLLOW_46_in_logica1834); - stream_46.add(a); + a=(Token)match(input,52,FOLLOW_52_in_logica2001); + stream_52.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'ior' { - a=(Token)match(input,76,FOLLOW_76_in_logica1853); - stream_76.add(a); + a=(Token)match(input,82,FOLLOW_82_in_logica2020); + stream_82.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'ixor' { - a=(Token)match(input,84,FOLLOW_84_in_logica1872); - stream_84.add(a); + a=(Token)match(input,91,FOLLOW_91_in_logica2039); + stream_91.add(a); } @@ -2833,9 +3349,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 147:10: -> ^( LOGICA $a) + // 156:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2883,7 +3399,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -2896,266 +3412,266 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException BytecodesAST a_tree=null; BytecodesAST b_tree=null; + RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); - RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); - RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); - RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); - RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); - RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); - RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); + RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); + RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); + RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); - RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); + RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); + RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt16=13; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt20=13; switch ( input.LA(1) ) { - case 61: + case 67: { - alt16=1; + alt20=1; } break; - case 66: + case 72: { - alt16=2; + alt20=2; } break; - case 65: + case 71: { - alt16=3; + alt20=3; } break; - case 62: + case 68: { - alt16=4; + alt20=4; } break; - case 63: + case 69: { - alt16=5; + alt20=5; } break; - case 64: + case 70: { - alt16=6; + alt20=6; } break; - case 55: + case 61: { - alt16=7; + alt20=7; } break; - case 60: + case 66: { - alt16=8; + alt20=8; } break; - case 59: + case 65: { - alt16=9; + alt20=9; } break; - case 56: + case 62: { - alt16=10; + alt20=10; } break; - case 57: + case 63: { - alt16=11; + alt20=11; } break; - case 58: + case 64: { - alt16=12; + alt20=12; } break; - case 44: + case 50: { - alt16=13; + alt20=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + new NoViableAltException("", 20, 0, input); throw nvae; } - switch (alt16) { + switch (alt20) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:14: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'ifeq' b= ID { - a=(Token)match(input,61,FOLLOW_61_in_desvio1925); - stream_61.add(a); + a=(Token)match(input,67,FOLLOW_67_in_desvio2092); + stream_67.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1931); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2098); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: a= 'ifne' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio1951); - stream_66.add(a); + a=(Token)match(input,72,FOLLOW_72_in_desvio2118); + stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1957); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2124); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:14: a= 'iflt' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio1977); - stream_65.add(a); + a=(Token)match(input,71,FOLLOW_71_in_desvio2144); + stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio1983); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2150); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:14: a= 'ifge' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio2002); - stream_62.add(a); + a=(Token)match(input,68,FOLLOW_68_in_desvio2169); + stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2008); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2175); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:14: a= 'ifgt' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2027); - stream_63.add(a); + a=(Token)match(input,69,FOLLOW_69_in_desvio2194); + stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2033); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2200); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'ifle' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2053); - stream_64.add(a); + a=(Token)match(input,70,FOLLOW_70_in_desvio2220); + stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2059); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2226); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,55,FOLLOW_55_in_desvio2079); - stream_55.add(a); + a=(Token)match(input,61,FOLLOW_61_in_desvio2246); + stream_61.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2085); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2252); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,60,FOLLOW_60_in_desvio2105); - stream_60.add(a); + a=(Token)match(input,66,FOLLOW_66_in_desvio2272); + stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2111); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2278); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,59,FOLLOW_59_in_desvio2130); - stream_59.add(a); + a=(Token)match(input,65,FOLLOW_65_in_desvio2297); + stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2136); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2303); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,56,FOLLOW_56_in_desvio2156); - stream_56.add(a); + a=(Token)match(input,62,FOLLOW_62_in_desvio2323); + stream_62.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2162); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2329); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,57,FOLLOW_57_in_desvio2182); - stream_57.add(a); + a=(Token)match(input,63,FOLLOW_63_in_desvio2349); + stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2188); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2355); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:14: a= 'if_icmple' b= ID { - a=(Token)match(input,58,FOLLOW_58_in_desvio2207); - stream_58.add(a); + a=(Token)match(input,64,FOLLOW_64_in_desvio2374); + stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2213); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2380); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'goto' b= ID { - a=(Token)match(input,44,FOLLOW_44_in_desvio2233); - stream_44.add(a); + a=(Token)match(input,50,FOLLOW_50_in_desvio2400); + stream_50.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2239); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2406); stream_ID.add(b); @@ -3166,7 +3682,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3178,9 +3694,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 164:10: -> ^( DESVIO $a $b) + // 173:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3230,7 +3746,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -3241,64 +3757,64 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); - RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); - RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); + RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); + RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); + RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) - int alt17=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + int alt21=3; switch ( input.LA(1) ) { - case 88: + case 95: { - alt17=1; + alt21=1; } break; - case 89: + case 96: { - alt17=2; + alt21=2; } break; - case 42: + case 48: { - alt17=3; + alt21=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 17, 0, input); + new NoViableAltException("", 21, 0, input); throw nvae; } - switch (alt17) { + switch (alt21) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:13: a= 'pop' { - a=(Token)match(input,88,FOLLOW_88_in_pilha2304); - stream_88.add(a); + a=(Token)match(input,95,FOLLOW_95_in_pilha2471); + stream_95.add(a); } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:13: a= 'pop2' { - a=(Token)match(input,89,FOLLOW_89_in_pilha2322); - stream_89.add(a); + a=(Token)match(input,96,FOLLOW_96_in_pilha2489); + stream_96.add(a); } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:13: a= 'dup' { - a=(Token)match(input,42,FOLLOW_42_in_pilha2340); - stream_42.add(a); + a=(Token)match(input,48,FOLLOW_48_in_pilha2507); + stream_48.add(a); } @@ -3319,9 +3835,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 171:9: -> ^( PILHA $a) + // 180:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3370,7 +3886,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -3378,37 +3894,37 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal41=null; + Token char_literal63=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal41_tree=null; + BytecodesAST char_literal63_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:8: (cls+= ID '/' )* - loop18: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:8: (cls+= ID '/' )* + loop22: do { - int alt18=2; - int LA18_0 = input.LA(1); + int alt22=2; + int LA22_0 = input.LA(1); - if ( (LA18_0==ID) ) { - int LA18_1 = input.LA(2); + if ( (LA22_0==ID) ) { + int LA22_1 = input.LA(2); - if ( (LA18_1==29) ) { - int LA18_2 = input.LA(3); + if ( (LA22_1==34) ) { + int LA22_2 = input.LA(3); - if ( (LA18_2==ID) ) { - alt18=1; + if ( (LA22_2==ID) ) { + alt22=1; } @@ -3418,11 +3934,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } - switch (alt18) { + switch (alt22) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2406); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2573); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3432,26 +3948,26 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal41=(Token)match(input,29,FOLLOW_29_in_classe2408); - char_literal41_tree = - (BytecodesAST)adaptor.create(char_literal41) + char_literal63=(Token)match(input,34,FOLLOW_34_in_classe2575); + char_literal63_tree = + (BytecodesAST)adaptor.create(char_literal63) ; - adaptor.addChild(root_0, char_literal41_tree); + adaptor.addChild(root_0, char_literal63_tree); } break; default : - break loop18; + break loop22; } } while (true); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:25: (cls+= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:26: cls+= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:25: (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2417); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2584); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3500,7 +4016,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -3522,27 +4038,27 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:6: (n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:8: n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:6: (n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:8: n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2457); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2624); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,23,FOLLOW_23_in_chamadaMetodo2463); + par=(Token)match(input,26,FOLLOW_26_in_chamadaMetodo2630); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2469); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2636); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -3588,7 +4104,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:203:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -3597,12 +4113,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal42=null; + Token char_literal64=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal42_tree=null; + BytecodesAST char_literal64_tree=null; BytecodesAST cls_tree=null; @@ -3610,35 +4126,35 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:8: (cls+= ID '/' )+ - int cnt19=0; - loop19: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: (cls+= ID '/' )+ + int cnt23=0; + loop23: do { - int alt19=2; - int LA19_0 = input.LA(1); + int alt23=2; + int LA23_0 = input.LA(1); - if ( (LA19_0==ID) ) { - int LA19_1 = input.LA(2); + if ( (LA23_0==ID) ) { + int LA23_1 = input.LA(2); - if ( (LA19_1==29) ) { - alt19=1; + if ( (LA23_1==34) ) { + alt23=1; } } - switch (alt19) { + switch (alt23) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2509); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2676); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3648,27 +4164,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal42=(Token)match(input,29,FOLLOW_29_in_campo2511); - char_literal42_tree = - (BytecodesAST)adaptor.create(char_literal42) + char_literal64=(Token)match(input,34,FOLLOW_34_in_campo2678); + char_literal64_tree = + (BytecodesAST)adaptor.create(char_literal64) ; - adaptor.addChild(root_0, char_literal42_tree); + adaptor.addChild(root_0, char_literal64_tree); } break; default : - if ( cnt19 >= 1 ) break loop19; + if ( cnt23 >= 1 ) break loop23; EarlyExitException eee = - new EarlyExitException(19, input); + new EarlyExitException(23, input); throw eee; } - cnt19++; + cnt23++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2519); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2686); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -3705,136 +4221,160 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { - public static final BitSet FOLLOW_instrucao_in_programa107 = new BitSet(new long[]{0xFFFFFFFF89010102L,0x0000000007FFFFFFL}); - public static final BitSet FOLLOW_operacao_in_instrucao135 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao150 = new BitSet(new long[]{0x0000000002000002L}); - public static final BitSet FOLLOW_25_in_instrucao153 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_operacao175 = new BitSet(new long[]{0xFFFFFFFF80010000L,0x0000000007FFFFFFL}); - public static final BitSet FOLLOW_comando_in_operacao177 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_comando_in_operacao181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label203 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_30_in_label205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_comando228 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_aritmetica_in_comando247 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_load_in_comando266 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_loadint_in_comando284 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_store_in_comando303 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_storeint_in_comando321 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_desvio_in_comando340 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_logica_in_comando359 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_pilha_in_comando377 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_87_in_comando396 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NEWLINE_in_comando412 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_definicaoClasse438 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse440 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse442 = new BitSet(new long[]{0x0000000014000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse445 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse447 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse452 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse454 = new BitSet(new long[]{0x0000000004000002L}); - public static final BitSet FOLLOW_27_in_definicaoClasse514 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_INIT_in_definicaoClasse516 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_23_in_definicaoClasse518 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_VOID_in_definicaoClasse520 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse522 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_superClasse563 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse565 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_26_in_membroClasse587 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_membroClasse589 = new BitSet(new long[]{0x0000000000300400L}); - public static final BitSet FOLLOW_tipo_in_membroClasse591 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_manipulacaoObjetos633 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos639 = new BitSet(new long[]{0x0000000000300400L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos641 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_manipulacaoObjetos679 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos685 = new BitSet(new long[]{0x0000000000300400L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos687 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_manipulacaoObjetos726 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos732 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_29_in_manipulacaoObjetos734 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos740 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_manipulacaoObjetos802 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos807 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_aritmetica871 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_aritmetica895 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_aritmetica919 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_aritmetica943 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_aritmetica967 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_aritmetica991 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica1015 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_load1093 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1111 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load1129 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load1147 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_load1166 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_load1184 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_load1202 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_load1220 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_load1239 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_load1258 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_load1276 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_load1294 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_load1312 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_load1330 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_load1349 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load1367 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_loadint1421 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1427 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_loadint1448 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1454 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_loadint1474 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1480 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_store1547 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_store1566 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_store1585 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_store1604 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_store1623 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_store1641 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_store1660 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_store1679 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_storeint1736 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1742 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_storeint1764 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1770 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_logica1834 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_logica1853 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_logica1872 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_desvio1925 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1931 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio1951 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1957 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio1977 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio1983 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio2002 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2008 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2027 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2033 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2053 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2059 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio2079 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2085 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_desvio2105 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2111 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio2130 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2136 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_desvio2156 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2162 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio2182 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2188 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_desvio2207 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2213 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_desvio2233 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_desvio2239 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_pilha2304 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_pilha2322 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_pilha2340 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2406 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_29_in_classe2408 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_classe2417 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2457 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_23_in_chamadaMetodo2463 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2469 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2509 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_29_in_campo2511 = new BitSet(new long[]{0x0000000000000100L}); - public static final BitSet FOLLOW_ID_in_campo2519 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_programa112 = new BitSet(new long[]{0xFFFFFBF010040202L,0x00000003FFEFFFFFL}); + public static final BitSet FOLLOW_operacao_in_instrucao140 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao155 = new BitSet(new long[]{0x0000000020000002L}); + public static final BitSet FOLLOW_29_in_instrucao158 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_operacao180 = new BitSet(new long[]{0xFFFFFBF000040000L,0x00000003FFEFFFFFL}); + public static final BitSet FOLLOW_comando_in_operacao182 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_operacao186 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label208 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_label210 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_comando233 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_aritmetica_in_comando252 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_load_in_comando271 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_loadint_in_comando289 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_store_in_comando308 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_storeint_in_comando326 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_desvio_in_comando345 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_logica_in_comando364 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_pilha_in_comando382 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_94_in_comando401 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando417 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_definicaoClasse443 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse445 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse447 = new BitSet(new long[]{0x0000000380000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse450 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse452 = new BitSet(new long[]{0x0000000180000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse457 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse459 = new BitSet(new long[]{0x0000000180000002L}); + public static final BitSet FOLLOW_33_in_superClasse535 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse537 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_membroClasse559 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse561 = new BitSet(new long[]{0x0000000000C00800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse563 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_membroClasse582 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INIT_in_membroClasse584 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_membroClasse586 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse588 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse590 = new BitSet(new long[]{0xFFFFFBF000040200L,0x00000007FFEFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse592 = new BitSet(new long[]{0xFFFFFBF000040200L,0x00000007FFEFFFFFL}); + public static final BitSet FOLLOW_98_in_membroClasse595 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse597 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_30_in_membroClasse599 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_membroClasse623 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_MAIN_in_membroClasse625 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_membroClasse627 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse629 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse631 = new BitSet(new long[]{0xFFFFFFF000040200L,0x00000007FFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse633 = new BitSet(new long[]{0xFFFFFFF000040200L,0x00000007FFFFFFFFL}); + public static final BitSet FOLLOW_retorno_in_membroClasse640 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse642 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_30_in_membroClasse644 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_membroClasse678 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse680 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_25_in_membroClasse682 = new BitSet(new long[]{0x0000000008C00800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse689 = new BitSet(new long[]{0x0000000008C00800L}); + public static final BitSet FOLLOW_27_in_membroClasse693 = new BitSet(new long[]{0x0000000000C00800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse695 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse697 = new BitSet(new long[]{0xFFFFFFF000040200L,0x00000007FFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse699 = new BitSet(new long[]{0xFFFFFFF000040200L,0x00000007FFFFFFFFL}); + public static final BitSet FOLLOW_retorno_in_membroClasse706 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse708 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_30_in_membroClasse710 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_manipulacaoObjetos800 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos806 = new BitSet(new long[]{0x0000000000C00800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos808 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_manipulacaoObjetos846 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos852 = new BitSet(new long[]{0x0000000000C00800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos854 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_manipulacaoObjetos893 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos899 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_34_in_manipulacaoObjetos901 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos907 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_manipulacaoObjetos969 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos974 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_aritmetica1038 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_aritmetica1062 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_aritmetica1086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_aritmetica1110 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_aritmetica1134 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_aritmetica1158 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_aritmetica1182 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load1260 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_load1278 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load1296 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load1314 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load1333 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load1351 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load1369 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_load1387 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_load1406 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load1425 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_load1443 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_load1461 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load1479 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load1497 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load1516 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load1534 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_loadint1588 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1594 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_loadint1615 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1621 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_loadint1641 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1647 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_store1714 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_store1733 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_store1752 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_store1771 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_store1790 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_store1808 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_store1827 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_store1846 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_storeint1903 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1909 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_storeint1931 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1937 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_logica2001 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_logica2020 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_logica2039 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_desvio2092 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2098 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2118 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2124 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2144 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2150 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2169 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2175 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2194 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2200 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2220 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2226 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_desvio2246 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2252 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio2272 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2278 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio2297 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2303 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio2323 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2329 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2349 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2355 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2374 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2380 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_desvio2400 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2406 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_pilha2471 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_pilha2489 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_pilha2507 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2573 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_34_in_classe2575 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_classe2584 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2624 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_chamadaMetodo2630 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2636 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2676 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_34_in_campo2678 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_campo2686 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 4631a7f..2595896 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-07-15 00:36:59 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 16:44:57 package br.ufpb.iged.interpretador.parser; @@ -20,12 +20,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__23=23; - public static final int T__24=24; public static final int T__25=25; public static final int T__26=26; public static final int T__27=27; @@ -92,25 +90,35 @@ public class Def extends TreeFilter { public static final int T__88=88; public static final int T__89=89; public static final int T__90=90; + public static final int T__91=91; + public static final int T__92=92; + public static final int T__93=93; + public static final int T__94=94; + public static final int T__95=95; + public static final int T__96=96; + public static final int T__97=97; + public static final int T__98=98; public static final int ARITMETICA=4; - public static final int DESVIO=5; - public static final int EXTENDS=6; - public static final int FIELD_DECL=7; - public static final int ID=8; - public static final int INIT=9; - public static final int INT=10; - public static final int INTEIRO=11; - public static final int LABEL=12; - public static final int LOAD=13; - public static final int LOGICA=14; - public static final int MEMBRO_CLASSE=15; - public static final int NEWLINE=16; - public static final int NULL=17; - public static final int PILHA=18; - public static final int STORE=19; - public static final int TIPO_REF=20; - public static final int VOID=21; - public static final int WS=22; + public static final int BODY=5; + public static final int DESVIO=6; + public static final int EXTENDS=7; + public static final int FIELD_DECL=8; + public static final int ID=9; + public static final int INIT=10; + public static final int INT=11; + public static final int INTEIRO=12; + public static final int LABEL=13; + public static final int LOAD=14; + public static final int LOGICA=15; + public static final int MAIN=16; + public static final int MEMBRO_CLASSE=17; + public static final int NEWLINE=18; + public static final int NULL=19; + public static final int PILHA=20; + public static final int STORE=21; + public static final int TIPO_REF=22; + public static final int VOID=23; + public static final int WS=24; // delegates public TreeFilter[] getDelegates() { @@ -128,7 +136,7 @@ public Def(TreeNodeStream input, RecognizerSharedState state) { } public String[] getTokenNames() { return Def.tokenNames; } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g"; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g"; } TabelaSimbolos tabelaSimbolos; @@ -142,14 +150,14 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:1: topdown : ( entraNaClasse | declaracaoVariavel ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:1: topdown : ( entraNaClasse | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:9: ( entraNaClasse | declaracaoVariavel ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:9: ( entraNaClasse | declaracaoVariavel ) int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==24) ) { + if ( (LA1_0==28) ) { alt1=1; } else if ( (LA1_0==FIELD_DECL) ) { @@ -165,7 +173,7 @@ else if ( (LA1_0==FIELD_DECL) ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown52); entraNaClasse(); @@ -176,7 +184,7 @@ else if ( (LA1_0==FIELD_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown64); declaracaoVariavel(); @@ -204,28 +212,28 @@ else if ( (LA1_0==FIELD_DECL) ) { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:1: bottomup : ( saiDaClasse | getfield | putfield | invokespecial ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:1: bottomup : ( saiDaClasse | getfield | putfield | invokespecial ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse | getfield | putfield | invokespecial ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse | getfield | putfield | invokespecial ) int alt2=4; switch ( input.LA(1) ) { - case 24: + case 28: { alt2=1; } break; - case 43: + case 49: { alt2=2; } break; - case 90: + case 97: { alt2=3; } break; - case 75: + case 81: { alt2=4; } @@ -241,7 +249,7 @@ public final void bottomup() throws RecognitionException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: saiDaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: saiDaClasse { pushFollow(FOLLOW_saiDaClasse_in_bottomup81); saiDaClasse(); @@ -252,7 +260,7 @@ public final void bottomup() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:12: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:12: getfield { pushFollow(FOLLOW_getfield_in_bottomup94); getfield(); @@ -263,7 +271,7 @@ public final void bottomup() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:12: putfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:12: putfield { pushFollow(FOLLOW_putfield_in_bottomup107); putfield(); @@ -274,7 +282,7 @@ public final void bottomup() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:12: invokespecial + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:12: invokespecial { pushFollow(FOLLOW_invokespecial_in_bottomup120); invokespecial(); @@ -302,21 +310,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,24,FOLLOW_24_in_entraNaClasse154); if (state.failed) return ; + match(input,28,FOLLOW_28_in_entraNaClasse154); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse158); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:28: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:28: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -332,7 +340,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 90)) ) { + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 98)) ) { alt3=1; } } @@ -341,7 +349,7 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:29: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:29: ^( EXTENDS sup= TIPO_REF ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse162); if (state.failed) return ; @@ -392,14 +400,14 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:55:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:55:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:9: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:9: ^( FIELD_DECL ID tipo= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel202); if (state.failed) return ; @@ -441,13 +449,13 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:13: ( '.class' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:15: '.class' { - match(input,24,FOLLOW_24_in_saiDaClasse237); if (state.failed) return ; + match(input,28,FOLLOW_28_in_saiDaClasse237); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -472,13 +480,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:1: getfield : 'getfield' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:1: getfield : 'getfield' ; public final void getfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:5: ( 'getfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:7: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:5: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:7: 'getfield' { - match(input,43,FOLLOW_43_in_getfield277); if (state.failed) return ; + match(input,49,FOLLOW_49_in_getfield277); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do getfield.."); @@ -502,13 +510,13 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:1: putfield : 'putfield' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:1: putfield : 'putfield' ; public final void putfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:5: ( 'putfield' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:7: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:5: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:7: 'putfield' { - match(input,90,FOLLOW_90_in_putfield305); if (state.failed) return ; + match(input,97,FOLLOW_97_in_putfield305); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do putfield.."); @@ -532,13 +540,13 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:1: invokespecial : 'invokespecial' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:1: invokespecial : 'invokespecial' ; public final void invokespecial() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:5: ( 'invokespecial' ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:7: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:5: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:7: 'invokespecial' { - match(input,75,FOLLOW_75_in_invokespecial334); if (state.failed) return ; + match(input,81,FOLLOW_81_in_invokespecial334); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do invokespecial.."); @@ -570,15 +578,15 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_getfield_in_bottomup94 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_putfield_in_bottomup107 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_invokespecial_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); + public static final BitSet FOLLOW_28_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000007FFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel202 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); - public static final BitSet FOLLOW_24_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000007FFFFFFFFL}); + public static final BitSet FOLLOW_28_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index 2da8f65..7779d72 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,5 +1,3 @@ -T__23=23 -T__24=24 T__25=25 T__26=26 T__27=27 @@ -66,90 +64,106 @@ T__87=87 T__88=88 T__89=89 T__90=90 +T__91=91 +T__92=92 +T__93=93 +T__94=94 +T__95=95 +T__96=96 +T__97=97 +T__98=98 ARITMETICA=4 -DESVIO=5 -EXTENDS=6 -FIELD_DECL=7 -ID=8 -INIT=9 -INT=10 -INTEIRO=11 -LABEL=12 -LOAD=13 -LOGICA=14 -MEMBRO_CLASSE=15 -NEWLINE=16 -NULL=17 -PILHA=18 -STORE=19 -TIPO_REF=20 -VOID=21 -WS=22 -'()'=23 -'.class'=24 -'.end class'=25 -'.field'=26 -'.method'=27 -'.super'=28 -'/'=29 -':'=30 -'aconst_null'=31 -'aload'=32 -'aload_0'=33 -'aload_1'=34 -'aload_2'=35 -'aload_3'=36 -'astore'=37 -'astore_0'=38 -'astore_1'=39 -'astore_2'=40 -'astore_3'=41 -'dup'=42 -'getfield'=43 -'goto'=44 -'iadd'=45 -'iand'=46 -'iconst_0'=47 -'iconst_1'=48 -'iconst_2'=49 -'iconst_3'=50 -'iconst_4'=51 -'iconst_5'=52 -'iconst_m1'=53 -'idiv'=54 -'if_icmpeq'=55 -'if_icmpge'=56 -'if_icmpgt'=57 -'if_icmple'=58 -'if_icmplt'=59 -'if_icmpne'=60 -'ifeq'=61 -'ifge'=62 -'ifgt'=63 -'ifle'=64 -'iflt'=65 -'ifne'=66 -'iinc'=67 -'iload'=68 -'iload_0'=69 -'iload_1'=70 -'iload_2'=71 -'iload_3'=72 -'imul'=73 -'ineg'=74 -'invokespecial'=75 -'ior'=76 -'irem'=77 -'istore'=78 -'istore_0'=79 -'istore_1'=80 -'istore_2'=81 -'istore_3'=82 -'isub'=83 -'ixor'=84 -'ldc'=85 -'new'=86 -'nop'=87 -'pop'=88 -'pop2'=89 -'putfield'=90 +BODY=5 +DESVIO=6 +EXTENDS=7 +FIELD_DECL=8 +ID=9 +INIT=10 +INT=11 +INTEIRO=12 +LABEL=13 +LOAD=14 +LOGICA=15 +MAIN=16 +MEMBRO_CLASSE=17 +NEWLINE=18 +NULL=19 +PILHA=20 +STORE=21 +TIPO_REF=22 +VOID=23 +WS=24 +'('=25 +'()'=26 +')'=27 +'.class'=28 +'.end class'=29 +'.end method'=30 +'.field'=31 +'.method'=32 +'.super'=33 +'/'=34 +':'=35 +'aconst_null'=36 +'aload'=37 +'aload_0'=38 +'aload_1'=39 +'aload_2'=40 +'aload_3'=41 +'areturn'=42 +'astore'=43 +'astore_0'=44 +'astore_1'=45 +'astore_2'=46 +'astore_3'=47 +'dup'=48 +'getfield'=49 +'goto'=50 +'iadd'=51 +'iand'=52 +'iconst_0'=53 +'iconst_1'=54 +'iconst_2'=55 +'iconst_3'=56 +'iconst_4'=57 +'iconst_5'=58 +'iconst_m1'=59 +'idiv'=60 +'if_icmpeq'=61 +'if_icmpge'=62 +'if_icmpgt'=63 +'if_icmple'=64 +'if_icmplt'=65 +'if_icmpne'=66 +'ifeq'=67 +'ifge'=68 +'ifgt'=69 +'ifle'=70 +'iflt'=71 +'ifne'=72 +'iinc'=73 +'iload'=74 +'iload_0'=75 +'iload_1'=76 +'iload_2'=77 +'iload_3'=78 +'imul'=79 +'ineg'=80 +'invokespecial'=81 +'ior'=82 +'irem'=83 +'ireturn'=84 +'istore'=85 +'istore_0'=86 +'istore_1'=87 +'istore_2'=88 +'istore_3'=89 +'isub'=90 +'ixor'=91 +'ldc'=92 +'new'=93 +'nop'=94 +'pop'=95 +'pop2'=96 +'putfield'=97 +'return'=98 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 50ef693..5f5a8e9 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,16 +1,16 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-07-15 00:36:59 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 16:44:57 package br.ufpb.iged.interpretador.parser; import br.ufpb.iged.interpretador.symboltable.classes.Escopo; - import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; - import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; - import br.ufpb.iged.interpretador.symboltable.classes.Tipo; - import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +import br.ufpb.iged.interpretador.symboltable.classes.Tipo; +import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import org.antlr.runtime.*; @@ -24,12 +24,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'()'", "'.class'", "'.end class'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__23=23; - public static final int T__24=24; public static final int T__25=25; public static final int T__26=26; public static final int T__27=27; @@ -96,25 +94,35 @@ public class Ref extends TreeFilter { public static final int T__88=88; public static final int T__89=89; public static final int T__90=90; + public static final int T__91=91; + public static final int T__92=92; + public static final int T__93=93; + public static final int T__94=94; + public static final int T__95=95; + public static final int T__96=96; + public static final int T__97=97; + public static final int T__98=98; public static final int ARITMETICA=4; - public static final int DESVIO=5; - public static final int EXTENDS=6; - public static final int FIELD_DECL=7; - public static final int ID=8; - public static final int INIT=9; - public static final int INT=10; - public static final int INTEIRO=11; - public static final int LABEL=12; - public static final int LOAD=13; - public static final int LOGICA=14; - public static final int MEMBRO_CLASSE=15; - public static final int NEWLINE=16; - public static final int NULL=17; - public static final int PILHA=18; - public static final int STORE=19; - public static final int TIPO_REF=20; - public static final int VOID=21; - public static final int WS=22; + public static final int BODY=5; + public static final int DESVIO=6; + public static final int EXTENDS=7; + public static final int FIELD_DECL=8; + public static final int ID=9; + public static final int INIT=10; + public static final int INT=11; + public static final int INTEIRO=12; + public static final int LABEL=13; + public static final int LOAD=14; + public static final int LOGICA=15; + public static final int MAIN=16; + public static final int MEMBRO_CLASSE=17; + public static final int NEWLINE=18; + public static final int NULL=19; + public static final int PILHA=20; + public static final int STORE=21; + public static final int TIPO_REF=22; + public static final int VOID=23; + public static final int WS=24; // delegates public TreeFilter[] getDelegates() { @@ -132,7 +140,7 @@ public Ref(TreeNodeStream input, RecognizerSharedState state) { } public String[] getTokenNames() { return Ref.tokenNames; } - public String getGrammarFileName() { return "C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g"; } + public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g"; } TabelaSimbolos tabelaSimbolos; @@ -214,15 +222,15 @@ private void newClass(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:99:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:99:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:5: ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label ) int alt1=15; alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:9: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:9: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown61); entraNaClasse(); @@ -233,7 +241,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:9: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:9: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown71); declaracaoVariavel(); @@ -244,7 +252,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:9: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:9: getfield { pushFollow(FOLLOW_getfield_in_topdown81); getfield(); @@ -255,7 +263,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:103:9: putfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:103:9: putfield { pushFollow(FOLLOW_putfield_in_topdown91); putfield(); @@ -266,7 +274,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:104:9: invokespecial + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:104:9: invokespecial { pushFollow(FOLLOW_invokespecial_in_topdown101); invokespecial(); @@ -277,7 +285,7 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:105:9: novaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:105:9: novaClasse { pushFollow(FOLLOW_novaClasse_in_topdown111); novaClasse(); @@ -288,7 +296,7 @@ public final void topdown() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:106:9: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:106:9: aritmetica { pushFollow(FOLLOW_aritmetica_in_topdown121); aritmetica(); @@ -299,7 +307,7 @@ public final void topdown() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:107:9: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:107:9: load { pushFollow(FOLLOW_load_in_topdown132); load(); @@ -310,7 +318,7 @@ public final void topdown() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:108:9: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:108:9: loadint { pushFollow(FOLLOW_loadint_in_topdown142); loadint(); @@ -321,7 +329,7 @@ public final void topdown() throws RecognitionException { } break; case 10 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:109:9: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:109:9: store { pushFollow(FOLLOW_store_in_topdown153); store(); @@ -332,7 +340,7 @@ public final void topdown() throws RecognitionException { } break; case 11 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:9: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:9: storeint { pushFollow(FOLLOW_storeint_in_topdown163); storeint(); @@ -343,7 +351,7 @@ public final void topdown() throws RecognitionException { } break; case 12 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:9: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:9: desvio { pushFollow(FOLLOW_desvio_in_topdown174); desvio(); @@ -354,7 +362,7 @@ public final void topdown() throws RecognitionException { } break; case 13 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:112:9: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:112:9: logica { pushFollow(FOLLOW_logica_in_topdown185); logica(); @@ -365,7 +373,7 @@ public final void topdown() throws RecognitionException { } break; case 14 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:113:9: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:113:9: pilha { pushFollow(FOLLOW_pilha_in_topdown195); pilha(); @@ -376,7 +384,7 @@ public final void topdown() throws RecognitionException { } break; case 15 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:114:9: label + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:114:9: label { pushFollow(FOLLOW_label_in_topdown205); label(); @@ -392,10 +400,12 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } catch (AcessoIndevidoMemoriaException e) { - System.out.println(e.getMessage()); - } catch (LabelException e) { - System.out.println(e.getMessage()); + } catch (LabelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (AcessoIndevidoMemoriaException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } finally { @@ -408,21 +418,21 @@ public final void topdown() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,24,FOLLOW_24_in_entraNaClasse230); if (state.failed) return ; + match(input,28,FOLLOW_28_in_entraNaClasse230); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse234); if (state.failed) return ; - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:28: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:28: ( ^( EXTENDS sup= TIPO_REF ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -438,7 +448,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_4==UP) ) { int LA2_5 = input.LA(5); - if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 90)) ) { + if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 98)) ) { alt2=1; } } @@ -447,7 +457,7 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:29: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:29: ^( EXTENDS sup= TIPO_REF ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse238); if (state.failed) return ; @@ -500,14 +510,14 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:9: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:9: ^( FIELD_DECL ID tip= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel282); if (state.failed) return ; @@ -544,17 +554,17 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,43,FOLLOW_43_in_getfield323); if (state.failed) return ; + match(input,49,FOLLOW_49_in_getfield323); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -596,17 +606,17 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:149:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:149:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,90,FOLLOW_90_in_putfield373); if (state.failed) return ; + match(input,97,FOLLOW_97_in_putfield373); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -648,7 +658,7 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:156:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:156:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -656,10 +666,10 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) { - match(input,75,FOLLOW_75_in_invokespecial423); if (state.failed) return ; + match(input,81,FOLLOW_81_in_invokespecial423); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -703,15 +713,15 @@ public final void invokespecial() throws RecognitionException { // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:163:1: novaClasse : ^( 'new' classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:163:1: novaClasse : ^( 'new' classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:3: ( ^( 'new' classe= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:5: ^( 'new' classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:3: ( ^( 'new' classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:5: ^( 'new' classe= . ) { - match(input,86,FOLLOW_86_in_novaClasse474); if (state.failed) return ; + match(input,93,FOLLOW_93_in_novaClasse474); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -743,13 +753,13 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:7: ^( ARITMETICA operacao= . ) { match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica505); if (state.failed) return ; @@ -783,13 +793,13 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:177:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:177:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:5: ^( LOAD operacao= . ) { match(input,LOAD,FOLLOW_LOAD_in_load539); if (state.failed) return ; @@ -823,14 +833,14 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:184:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:184:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:7: ^( LOAD operacao= . operando= . ) { match(input,LOAD,FOLLOW_LOAD_in_loadint568); if (state.failed) return ; @@ -868,13 +878,13 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:191:1: store : ^( STORE operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:191:1: store : ^( STORE operacao= . ) ; public final void store() throws RecognitionException, AcessoIndevidoMemoriaException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:6: ^( STORE operacao= . ) { match(input,STORE,FOLLOW_STORE_in_store611); if (state.failed) return ; @@ -908,14 +918,14 @@ public final void store() throws RecognitionException, AcessoIndevidoMemoriaExce // $ANTLR start "storeint" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: storeint : ^( STORE operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: storeint : ^( STORE operacao= . operando= . ) ; public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:7: ^( STORE operacao= . operando= . ) { match(input,STORE,FOLLOW_STORE_in_storeint640); if (state.failed) return ; @@ -953,14 +963,14 @@ public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaE // $ANTLR start "desvio" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:205:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:205:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:7: ^( DESVIO operacao= . operando= . ) { match(input,DESVIO,FOLLOW_DESVIO_in_desvio681); if (state.failed) return ; @@ -998,13 +1008,13 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:212:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:212:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:7: ^( LOGICA operacao= . ) { match(input,LOGICA,FOLLOW_LOGICA_in_logica722); if (state.failed) return ; @@ -1038,13 +1048,13 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:219:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:219:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:6: ^( PILHA operacao= . ) { match(input,PILHA,FOLLOW_PILHA_in_pilha756); if (state.failed) return ; @@ -1078,13 +1088,13 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\git\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:6: ^( LABEL operacao= . ) { match(input,LABEL,FOLLOW_LABEL_in_label784); if (state.failed) return ; @@ -1126,16 +1136,16 @@ public final void label() throws RecognitionException, LabelException { static final String DFA1_minS = "\1\4\7\uffff\2\2\4\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; static final String DFA1_maxS = - "\1\132\7\uffff\2\2\4\uffff\5\132\2\uffff\1\132\2\uffff\4\132"; + "\1\141\7\uffff\2\2\4\uffff\5\142\2\uffff\1\142\2\uffff\4\142"; static final String DFA1_acceptS = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\uffff\1\14\1\15\1\16\1\17"+ "\5\uffff\1\10\1\11\1\uffff\1\12\1\13\4\uffff"; static final String DFA1_specialS = "\34\uffff}>"; static final String[] DFA1_transitionS = { - "\1\7\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\3\uffff\1\14\1"+ - "\11\4\uffff\1\1\22\uffff\1\3\37\uffff\1\5\12\uffff\1\6\3\uffff"+ - "\1\4", + "\1\7\1\uffff\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\4\uffff"+ + "\1\14\1\11\6\uffff\1\1\24\uffff\1\3\37\uffff\1\5\13\uffff\1"+ + "\6\3\uffff\1\4", "", "", "", @@ -1149,20 +1159,20 @@ public final void label() throws RecognitionException, LabelException { "", "", "", - "\127\20", - "\127\21", - "\1\22\1\23\127\24", - "\1\25\1\26\127\27", - "\127\30", + "\137\20", + "\137\21", + "\1\22\1\23\137\24", + "\1\25\1\26\137\27", + "\137\30", "", "", - "\127\31", + "\137\31", "", "", - "\1\32\127\30", - "\1\33\127\31", - "\1\23\127\24", - "\1\26\127\27" + "\1\32\137\30", + "\1\33\137\31", + "\1\23\137\24", + "\1\26\137\27" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -1215,16 +1225,16 @@ public String getDescription() { public static final BitSet FOLLOW_logica_in_topdown185 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_pilha_in_topdown195 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_label_in_topdown205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_24_in_entraNaClasse230 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse234 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); + public static final BitSet FOLLOW_28_in_entraNaClasse230 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse234 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000007FFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse238 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse242 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel282 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000007FFFFFFL}); - public static final BitSet FOLLOW_43_in_getfield323 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_90_in_putfield373 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_75_in_invokespecial423 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_86_in_novaClasse474 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000007FFFFFFFFL}); + public static final BitSet FOLLOW_49_in_getfield323 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_97_in_putfield373 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_81_in_invokespecial423 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_93_in_novaClasse474 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ARITMETICA_in_aritmetica505 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_LOAD_in_load539 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_LOAD_in_loadint568 = new BitSet(new long[]{0x0000000000000004L}); diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index 2da8f65..7779d72 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,5 +1,3 @@ -T__23=23 -T__24=24 T__25=25 T__26=26 T__27=27 @@ -66,90 +64,106 @@ T__87=87 T__88=88 T__89=89 T__90=90 +T__91=91 +T__92=92 +T__93=93 +T__94=94 +T__95=95 +T__96=96 +T__97=97 +T__98=98 ARITMETICA=4 -DESVIO=5 -EXTENDS=6 -FIELD_DECL=7 -ID=8 -INIT=9 -INT=10 -INTEIRO=11 -LABEL=12 -LOAD=13 -LOGICA=14 -MEMBRO_CLASSE=15 -NEWLINE=16 -NULL=17 -PILHA=18 -STORE=19 -TIPO_REF=20 -VOID=21 -WS=22 -'()'=23 -'.class'=24 -'.end class'=25 -'.field'=26 -'.method'=27 -'.super'=28 -'/'=29 -':'=30 -'aconst_null'=31 -'aload'=32 -'aload_0'=33 -'aload_1'=34 -'aload_2'=35 -'aload_3'=36 -'astore'=37 -'astore_0'=38 -'astore_1'=39 -'astore_2'=40 -'astore_3'=41 -'dup'=42 -'getfield'=43 -'goto'=44 -'iadd'=45 -'iand'=46 -'iconst_0'=47 -'iconst_1'=48 -'iconst_2'=49 -'iconst_3'=50 -'iconst_4'=51 -'iconst_5'=52 -'iconst_m1'=53 -'idiv'=54 -'if_icmpeq'=55 -'if_icmpge'=56 -'if_icmpgt'=57 -'if_icmple'=58 -'if_icmplt'=59 -'if_icmpne'=60 -'ifeq'=61 -'ifge'=62 -'ifgt'=63 -'ifle'=64 -'iflt'=65 -'ifne'=66 -'iinc'=67 -'iload'=68 -'iload_0'=69 -'iload_1'=70 -'iload_2'=71 -'iload_3'=72 -'imul'=73 -'ineg'=74 -'invokespecial'=75 -'ior'=76 -'irem'=77 -'istore'=78 -'istore_0'=79 -'istore_1'=80 -'istore_2'=81 -'istore_3'=82 -'isub'=83 -'ixor'=84 -'ldc'=85 -'new'=86 -'nop'=87 -'pop'=88 -'pop2'=89 -'putfield'=90 +BODY=5 +DESVIO=6 +EXTENDS=7 +FIELD_DECL=8 +ID=9 +INIT=10 +INT=11 +INTEIRO=12 +LABEL=13 +LOAD=14 +LOGICA=15 +MAIN=16 +MEMBRO_CLASSE=17 +NEWLINE=18 +NULL=19 +PILHA=20 +STORE=21 +TIPO_REF=22 +VOID=23 +WS=24 +'('=25 +'()'=26 +')'=27 +'.class'=28 +'.end class'=29 +'.end method'=30 +'.field'=31 +'.method'=32 +'.super'=33 +'/'=34 +':'=35 +'aconst_null'=36 +'aload'=37 +'aload_0'=38 +'aload_1'=39 +'aload_2'=40 +'aload_3'=41 +'areturn'=42 +'astore'=43 +'astore_0'=44 +'astore_1'=45 +'astore_2'=46 +'astore_3'=47 +'dup'=48 +'getfield'=49 +'goto'=50 +'iadd'=51 +'iand'=52 +'iconst_0'=53 +'iconst_1'=54 +'iconst_2'=55 +'iconst_3'=56 +'iconst_4'=57 +'iconst_5'=58 +'iconst_m1'=59 +'idiv'=60 +'if_icmpeq'=61 +'if_icmpge'=62 +'if_icmpgt'=63 +'if_icmple'=64 +'if_icmplt'=65 +'if_icmpne'=66 +'ifeq'=67 +'ifge'=68 +'ifgt'=69 +'ifle'=70 +'iflt'=71 +'ifne'=72 +'iinc'=73 +'iload'=74 +'iload_0'=75 +'iload_1'=76 +'iload_2'=77 +'iload_3'=78 +'imul'=79 +'ineg'=80 +'invokespecial'=81 +'ior'=82 +'irem'=83 +'ireturn'=84 +'istore'=85 +'istore_0'=86 +'istore_1'=87 +'istore_2'=88 +'istore_3'=89 +'isub'=90 +'ixor'=91 +'ldc'=92 +'new'=93 +'nop'=94 +'pop'=95 +'pop2'=96 +'putfield'=97 +'return'=98 diff --git a/src/br/ufpb/iged/interpretador/principal/StackFrame.java b/src/br/ufpb/iged/interpretador/principal/StackFrame.java new file mode 100644 index 0000000..76994a8 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/principal/StackFrame.java @@ -0,0 +1,17 @@ +package br.ufpb.iged.interpretador.principal; + +public class StackFrame { + + public static final int TAMANHO_INICIAL_PILHA = 100; + + private Object[] pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA]; + + private Object[] variaveis; + + private int sp = -1; + + private int pc = 0; + + + +} From d76e8b0944ccf888dbdc3f880f724cc3643f662c Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 3 Sep 2012 22:40:46 -0300 Subject: [PATCH 51/79] commit --- .../bytecodeassembler/asm/Definicao.class | Bin 4595 -> 4595 bytes .../iged/interpretador/gramaticas/Assembler.g | 115 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 193 +- .../interpretador/gramaticas/Intermediario.g | 96 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 463 ++-- .../interpretador/parser/Assembler.tokens | 165 +- .../parser/AssemblerLexer$DFA6.class | Bin 1909 -> 1909 bytes .../interpretador/parser/AssemblerLexer.class | Bin 28872 -> 28908 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$comando_return.class | Bin 677 -> 677 bytes ...semblerParser$definicaoClasse_return.class | Bin 701 -> 701 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../AssemblerParser$instrucao_return.class | Bin 683 -> 683 bytes .../parser/AssemblerParser$label_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 692 -> 692 bytes .../AssemblerParser$operacao_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../AssemblerParser$programa_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../AssemblerParser$superClasse_return.class | Bin 689 -> 689 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 70287 -> 75084 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 14167 -> 14214 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 165 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1348 -> 1348 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 23846 -> 23890 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 165 +- .../symboltable/classes/SimboloClasse.class | Bin 3489 -> 3428 bytes classes/Classe.class | 4 +- classes/Main.class | 5 + .../iged/interpretador/gramaticas/Assembler.g | 115 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 33 +- .../interpretador/gramaticas/Intermediario.g | 2 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 51 +- .../interpretador/parser/Assembler.tokens | 165 +- .../interpretador/parser/AssemblerLexer.java | 865 +++---- .../interpretador/parser/AssemblerParser.java | 2079 +++++++++-------- .../ufpb/iged/interpretador/parser/Def.java | 171 +- .../ufpb/iged/interpretador/parser/Def.tokens | 165 +- .../ufpb/iged/interpretador/parser/Ref.java | 221 +- .../ufpb/iged/interpretador/parser/Ref.tokens | 165 +- .../symboltable/classes/SimboloClasse.java | 2 +- .../symboltable/classes/SimboloMetodo.java | 28 + 51 files changed, 2857 insertions(+), 2576 deletions(-) mode change 100755 => 100644 src/br/ufpb/iged/interpretador/gramaticas/Assembler.g create mode 100644 src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 93618a0f865d7609c439377463ba20e841609728..397b9e244e45464ef4a224d59803f9e652bc1079 100644 GIT binary patch delta 74 zcmeyY{8@R!O=dA>1_lOUMg|tYP#+%;*#H0l delta 74 zcmeyY{8@R!O=dAh1{S|iA0K801_oh92Bz>}5KCh7d*=BZic$=c3@r?742%ryKtU#k QRv^C(iQm3?J&y}304yF1lK=n! diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 471a777..d41d761 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -17,6 +17,7 @@ tokens { LABEL; PILHA; BODY; + METHOD_DECL; } @header{ @@ -44,7 +45,7 @@ tokens { programa : instrucao* ; -instrucao : operacao +instrucao : operacao | definicaoClasse ('.end class')? ; @@ -52,128 +53,132 @@ operacao : (label comando | comando); label : a = ID ':' -> ^(LABEL $a); -comando: ( manipulacaoObjetos - | aritmetica +comando: ( manipulacaoObjetos + | aritmetica | load - | loadint + | loadint | store - | storeint - | desvio + | storeint + | desvio | logica - | pilha + | pilha | 'nop' )? NEWLINE; definicaoClasse - : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + - -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) + : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) ; superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; -membroClasse - : '.field' ID tipo -> ^(FIELD_DECL ID tipo) +membroClasse + : '.field' ID tipo -> ^(FIELD_DECL ID tipo) | '.method' INIT '()' VOID NEWLINE operacao* 'return' NEWLINE '.end method' - -> ^('.method' INIT ^(BODY operacao*)) + -> ^(METHOD_DECL INIT ^(BODY operacao*)) | '.method' MAIN '()' VOID NEWLINE operacao* ret = retorno NEWLINE '.end method' - -> ^('.method' MAIN ^(BODY operacao*) $ret) - | '.method' ID '(' (tipos += tipo)* ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' - -> ^('.method' ID $tipos ^(BODY operacao*) $ret) - ; + -> ^(METHOD_DECL MAIN ^(BODY operacao*) $ret) + | '.method' ID '()' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) + | '.method' ID '(' params ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) + ; +params : (ID | TIPO_REF)+; -retorno : 'areturn' | 'ireturn' | 'return'; +retorno : 'areturn' | 'ireturn' | 'return'; manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) - | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) - | a = 'invokespecial' c = classe '/' d = chamadaMetodo + | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) + | a = 'invokespecial' c = classe '/' d = chamadaMetodo -> ^('invokespecial' $c $d) | a = 'new'c = classe -> ^('new' $c) ; + tipo : INT | VOID | TIPO_REF; -aritmetica : ( a = 'iadd' +aritmetica : ( a = 'iadd' | a = 'isub' | a = 'imul' | a = 'idiv' | a = 'irem' | a = 'iinc' - | a = 'ineg' + | a = 'ineg' ) -> ^(ARITMETICA $a) ; -load : ( a = 'iconst_m1' +load : ( a = 'iconst_m1' | a = 'iconst_0' | a = 'iconst_1' - | a = 'iconst_2' + | a = 'iconst_2' | a = 'iconst_3' | a = 'iconst_4' | a = 'iconst_5' - | a = 'aconst_null' - | a = 'iload_0' + | a = 'aconst_null' + | a = 'iload_0' | a = 'iload_1' | a = 'iload_2' | a = 'iload_3' | a = 'aload_0' - | a = 'aload_1' + | a = 'aload_1' | a = 'aload_2' - | a = 'aload_3' - ) + | a = 'aload_3' + ) -> ^(LOAD $a) ; -loadint : ( a = 'iload' b = INTEIRO +loadint : ( a = 'iload' b = INTEIRO | a = 'ldc' b = INTEIRO - | a = 'aload' b = INTEIRO - ) + | a = 'aload' b = INTEIRO + ) -> ^(LOAD $a $b) - ; + ; -store : ( a = 'istore_0' - | a = 'istore_1' - | a = 'istore_2' - | a = 'istore_3' +store : ( a = 'istore_0' + | a = 'istore_1' + | a = 'istore_2' + | a = 'istore_3' | a = 'astore_0' - | a = 'astore_1' - | a = 'astore_2' + | a = 'astore_1' + | a = 'astore_2' | a = 'astore_3' - ) + ) -> ^(STORE $a) ; -storeint : ( a = 'istore' b = INTEIRO - | a = 'astore' b = INTEIRO - ) +storeint : ( a = 'istore' b = INTEIRO + | a = 'astore' b = INTEIRO + ) -> ^(STORE $a $b) ; -logica : ( a = 'iand' +logica : ( a = 'iand' | a = 'ior' | a = 'ixor' ) -> ^(LOGICA $a) ; -desvio : ( a = 'ifeq' b = ID - | a = 'ifne' b = ID +desvio : ( a = 'ifeq' b = ID + | a = 'ifne' b = ID | a = 'iflt' b = ID | a = 'ifge' b = ID - | a = 'ifgt' b = ID - | a = 'ifle' b = ID - | a = 'if_icmpeq' b = ID + | a = 'ifgt' b = ID + | a = 'ifle' b = ID + | a = 'if_icmpeq' b = ID | a = 'if_icmpne' b = ID - | a = 'if_icmplt' b = ID - | a = 'if_icmpge' b = ID + | a = 'if_icmplt' b = ID + | a = 'if_icmpge' b = ID | a = 'if_icmpgt' b = ID - | a = 'if_icmple' b = ID - | a = 'goto' b = ID - ) + | a = 'if_icmple' b = ID + | a = 'goto' b = ID + ) -> ^(DESVIO $a $b) ; -pilha : ( a = 'pop' +pilha : ( a = 'pop' | a = 'pop2' | a = 'dup' ) @@ -210,7 +215,7 @@ campo returns [List classe, String campo] INIT : ''; -MAIN : 'main'; +MAIN : 'main'; INT : 'I'; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 62a1e82..d9c66ca 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -1,97 +1,96 @@ - -tree grammar Def; - -options { - tokenVocab=Assembler; - ASTLabelType=BytecodesAST; - filter=true; -} - -@header{ - package br.ufpb.iged.interpretador.parser; - - import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; - import br.ufpb.iged.interpretador.symboltable.classes.Escopo; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; - import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; -} - -@members { - TabelaSimbolos tabelaSimbolos; - Escopo escopoAtual; - public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { - this(input); - this.tabelaSimbolos = tabelaSimbolos; - escopoAtual = tabelaSimbolos.global; - } -} - -topdown : entraNaClasse - | declaracaoVariavel - ; - -bottomup : saiDaClasse - | getfield - | putfield - | invokespecial - ; - -entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) - { - System.out.println("linha "+$nome.getLine()+ - ": def class "+$nome.text); - if ( $sup!=null ) - $sup.escopo = escopoAtual; - SimboloClasse classe = new SimboloClasse("L" + $nome.text,escopoAtual,null); - classe.def = $nome; - $nome.simbolo = classe; - escopoAtual.definir(classe); - escopoAtual = classe; - } - ; - -declaracaoVariavel - : ^(FIELD_DECL ID tipo =.) - { - System.out.println("linha "+$ID.getLine()+": def "+$ID.text); - $tipo.escopo = escopoAtual; - SimboloVariavel variavel = new SimboloVariavel($ID.text,null); - variavel.def = $ID; - $ID.simbolo = variavel; - escopoAtual.definir(variavel); - ((SimboloClasse)escopoAtual).getConstantPool().add(variavel); - } - ; - -saiDaClasse : '.class' - { - System.out.println("Saindo da classe.. membros: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope - } - ; - -getfield - : 'getfield' - { - System.out.println("Saindo do getfield.."); - } - ; - -putfield - : 'putfield' - { - System.out.println("Saindo do putfield.."); - } - ; - -invokespecial - : 'invokespecial' - { - System.out.println("Saindo do invokespecial.."); - } - ; - - - +tree grammar Def; + +options { + tokenVocab=Assembler; + ASTLabelType=BytecodesAST; + filter=true; +} + +@header{ + package br.ufpb.iged.interpretador.parser; + + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + import br.ufpb.iged.interpretador.symboltable.classes.Escopo; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; + import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +} + +@members { + TabelaSimbolos tabelaSimbolos; + Escopo escopoAtual; + public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + escopoAtual = tabelaSimbolos.global; + } +} + +topdown : entraNaClasse + | declaracaoVariavel + ; + +bottomup : saiDaClasse + | getfield + | putfield + | invokespecial + ; + +entraNaClasse + : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + { + System.out.println("linha "+$nome.getLine()+ + ": def class "+$nome.text); + if ( $sup!=null ) + $sup.escopo = escopoAtual; + SimboloClasse classe = new SimboloClasse("L" + $nome.text,escopoAtual,null); + classe.def = $nome; + $nome.simbolo = classe; + escopoAtual.definir(classe); + escopoAtual = classe; + } + ; + +declaracaoVariavel + : ^(FIELD_DECL ID tipo =.) + { + System.out.println("linha "+$ID.getLine()+": def "+$ID.text); + $tipo.escopo = escopoAtual; + SimboloVariavel variavel = new SimboloVariavel($ID.text,null); + variavel.def = $ID; + $ID.simbolo = variavel; + escopoAtual.definir(variavel); + ((SimboloClasse)escopoAtual).getConstantPool().add(variavel); + } + ; + +saiDaClasse : '.class' + { + System.out.println("Saindo da classe.. membros: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; + +getfield + : 'getfield' + { + System.out.println("Saindo do getfield.."); + } + ; + +putfield + : 'putfield' + { + System.out.println("Saindo do putfield.."); + } + ; + +invokespecial + : 'invokespecial' + { + System.out.println("Saindo do invokespecial.."); + } + ; + + + diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Intermediario.g b/bin/br/ufpb/iged/interpretador/gramaticas/Intermediario.g index 20075df..2055079 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Intermediario.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Intermediario.g @@ -1,48 +1,48 @@ -grammar Intermediario; - -@header{ - - package br.ufpb.iged.interpretador.tradutor.intermediario.parser; - - import java.io.IOException; - -} - -@lexer::header{ - package br.ufpb.iged.interpretador.tradutor.intermediario.parser; -} - -@members { - - protected void adicionarVariavel(Token op); - protected void traduzirLoad(Token opc, Token op) throws IOException; - protected void traduzirStore(Token opc, Token op) throws IOException; - protected void traduzirArimetica(Token opc) throws IOException; - -} - -programa : instrucao*; - -instrucao : (create | load | store | aritmetica); - -create : 'CREATE_INT' a = ID {adicionarVariavel($a);} - | 'DELETE_INT' ID - ; - -load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} - | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} - ; - -store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; - -aritmetica : a = 'ADD' {traduzirArimetica($a);} - | a = 'SUB' {traduzirArimetica($a);} - | a = 'MULT' {traduzirArimetica($a);} - | a = 'DIV' {traduzirArimetica($a);} - ; - -INT : '-'? '0'..'9'+ ; - -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; - -WS : (' ' | '\t' | '\r' | '\n') {skip();} ; +grammar Intermediario; + +@header{ + + package br.ufpb.iged.interpretador.tradutor.intermediario.parser; + + import java.io.IOException; + +} + +@lexer::header{ + package br.ufpb.iged.interpretador.tradutor.intermediario.parser; +} + +@members { + + protected void adicionarVariavel(Token op); + protected void traduzirLoad(Token opc, Token op) throws IOException; + protected void traduzirStore(Token opc, Token op) throws IOException; + protected void traduzirArimetica(Token opc) throws IOException; + +} + +programa : instrucao*; + +instrucao : (create | load | store | aritmetica); + +create : 'CREATE_INT' a = ID {adicionarVariavel($a);} + | 'DELETE_INT' ID + ; + +load : a = 'READ_INT' b = ID {traduzirLoad($a, $b);} + | a = 'READ_INTC' INT {traduzirLoad($a, $INT);} + ; + +store : a = 'WRITE_INT' b = ID {traduzirStore($a, $b);}; + +aritmetica : a = 'ADD' {traduzirArimetica($a);} + | a = 'SUB' {traduzirArimetica($a);} + | a = 'MULT' {traduzirArimetica($a);} + | a = 'DIV' {traduzirArimetica($a);} + ; + +INT : '-'? '0'..'9'+ ; + +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; + +WS : (' ' | '\t' | '\r' | '\n') {skip();} ; \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index ca82be0..c18475b 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -1,232 +1,231 @@ -tree grammar Ref; - -options { - tokenVocab = Assembler; - ASTLabelType = BytecodesAST; - filter = true; -} - -@header{ - package br.ufpb.iged.interpretador.parser; - - import br.ufpb.iged.interpretador.symboltable.classes.Escopo; - import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; - import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; - import br.ufpb.iged.interpretador.symboltable.classes.Tipo; - import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; -} - -@members { - TabelaSimbolos tabelaSimbolos; - SimboloClasse simboloClasse; - BytecodeAssembler assembler; - public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, - BytecodeAssembler assembler) { - this(input); - this.tabelaSimbolos = tabelaSimbolos; - this.assembler = assembler; - } - - private Tipo resolverTipo(String nomeTipo) { - - return (Tipo)simboloClasse.resolver(nomeTipo); - - } - - private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) { - - assembler.escreverOpcode(operacao); - - SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); - - if(!assembler.getConstantPool().contains(simboloClasse)) - - assembler.getConstantPool().add(simboloClasse); - - /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ - - SimboloVariavel simboloVariavel = - (SimboloVariavel) simboloClasse.resolver(nomeCampo); - - if (!simboloClasse.getConstantPool().contains(simboloVariavel)) - - simboloClasse.getConstantPool().add(simboloVariavel); - - BytecodeAssembler.escreverInteiro( - BytecodeAssembler.codigo, BytecodeAssembler.ip, - simboloClasse.getConstantPool().indexOf(simboloVariavel)); - - } - - private void chamarConstrutorDefault(String nomeClasse) { - - assembler.escreverOpcode("invokespecial"); - - SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); - - if(!assembler.getConstantPool().contains(simboloClasse)) - - assembler.getConstantPool().add(simboloClasse); - - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); - - } - - private void newClass(String nomeClasse) { - - assembler.escreverOpcode("new"); - - SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); - - if(!assembler.getConstantPool().contains(simboloClasse)) - - assembler.getConstantPool().add(simboloClasse); - - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); - - } - -} - -topdown - : entraNaClasse - | declaracaoVariavel - | getfield - | putfield - | invokespecial - | novaClasse - | aritmetica - | load - | loadint - | store - | storeint - | desvio - | logica - | pilha - | label - ; - -entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) - { - simboloClasse = ((SimboloClasse)$nome.simbolo); - if ( $sup!=null ) { - $sup.simbolo = $sup.escopo.resolver($sup.text); - simboloClasse.superClasse = - (SimboloClasse)$sup.simbolo; - System.out.println("linha "+$nome.getLine()+": set "+$nome.text+ - " super to "+((SimboloClasse)$nome.simbolo).superClasse.nome); - } - else { - System.out.println("linha "+$nome.getLine()+": set "+$nome.text); - } - } - ; - -declaracaoVariavel - : ^(FIELD_DECL ID tip =.) - { - $ID.simbolo.tipo = resolverTipo($tip.getText()); - System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); - } - ; - -getfield - : ^('getfield' classe = . . campo = . tipo = .) - { - acessarCampo("getfield", $classe.getText(), $campo.getText()); - } - ; - -putfield - : ^('putfield' classe = . . campo = . tipo = .) - { - acessarCampo("putfield", $classe.getText(), $campo.getText()); - } - ; - -invokespecial - : ^('invokespecial' classe = . metodo = . args = . tipo = .) - { - chamarConstrutorDefault($classe.getText()); - } - ; - -novaClasse - : ^('new' classe = .) - { - newClass($classe.getText()); - } - ; - -aritmetica - : ^(ARITMETICA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -load - : ^(LOAD operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -loadint - : ^(LOAD operacao = . operando = .) - { - assembler.escreverOpcode($operacao.token, $operando.token); - } - ; - -store - : ^(STORE operacao = .) - { - assembler.verificarAumentoMemoriaGlobal($operacao.token); - } - ; - -storeint - : ^(STORE operacao = . operando = .) - { - assembler.verificarAumentoMemoriaGlobal($operacao.token, $operando.token); - } - ; - -desvio - : ^(DESVIO operacao = . operando = .) - { - assembler.escreverOpcode($operacao.token, $operando.token); - } - ; - -logica - : ^(LOGICA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -pilha - : ^(PILHA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -label - : ^(LABEL operacao = .) - { - assembler.definirLabel($operacao.token); - } - ; - \ No newline at end of file +tree grammar Ref; + +options { + tokenVocab = Assembler; + ASTLabelType = BytecodesAST; + filter = true; +} + +@header{ + package br.ufpb.iged.interpretador.parser; + + import br.ufpb.iged.interpretador.symboltable.classes.Escopo; + import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; + import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; + import br.ufpb.iged.interpretador.symboltable.classes.Tipo; + import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; +} + +@members { + TabelaSimbolos tabelaSimbolos; + SimboloClasse simboloClasse; + BytecodeAssembler assembler; + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, + BytecodeAssembler assembler) { + this(input); + this.tabelaSimbolos = tabelaSimbolos; + this.assembler = assembler; + } + + private Tipo resolverTipo(String nomeTipo) { + + return (Tipo)simboloClasse.resolver(nomeTipo); + + } + + private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) { + + assembler.escreverOpcode(operacao); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ + + SimboloVariavel simboloVariavel = + (SimboloVariavel) simboloClasse.resolver(nomeCampo); + + if (!simboloClasse.getConstantPool().contains(simboloVariavel)) + + simboloClasse.getConstantPool().add(simboloVariavel); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + simboloClasse.getConstantPool().indexOf(simboloVariavel)); + + } + + private void chamarConstrutorDefault(String nomeClasse) { + + assembler.escreverOpcode("invokespecial"); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + } + + private void newClass(String nomeClasse) { + + assembler.escreverOpcode("new"); + + SimboloClasse simboloClasse = + (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + + if(!assembler.getConstantPool().contains(simboloClasse)) + + assembler.getConstantPool().add(simboloClasse); + + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + + } + +} + +topdown + : entraNaClasse + | declaracaoVariavel + | getfield + | putfield + | invokespecial + | novaClasse + | aritmetica + | load + | loadint + | store + | storeint + | desvio + | logica + | pilha + | label + ; + +entraNaClasse + : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + { + simboloClasse = ((SimboloClasse)$nome.simbolo); + if ( $sup!=null ) { + $sup.simbolo = $sup.escopo.resolver($sup.text); + simboloClasse.superClasse = + (SimboloClasse)$sup.simbolo; + System.out.println("linha "+$nome.getLine()+": set "+$nome.text+ + " super to "+((SimboloClasse)$nome.simbolo).superClasse.nome); + } + else { + System.out.println("linha "+$nome.getLine()+": set "+$nome.text); + } + } + ; + +declaracaoVariavel + : ^(FIELD_DECL ID tip =.) + { + $ID.simbolo.tipo = resolverTipo($tip.getText()); + System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); + } + ; + +getfield + : ^('getfield' classe = . . campo = . tipo = .) + { + acessarCampo("getfield", $classe.getText(), $campo.getText()); + } + ; + +putfield + : ^('putfield' classe = . . campo = . tipo = .) + { + acessarCampo("putfield", $classe.getText(), $campo.getText()); + } + ; + +invokespecial + : ^('invokespecial' classe = . metodo = . args = . tipo = .) + { + chamarConstrutorDefault($classe.getText()); + } + ; + +novaClasse + : ^('new' classe = .) + { + newClass($classe.getText()); + } + ; + +aritmetica + : ^(ARITMETICA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +load + : ^(LOAD operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +loadint + : ^(LOAD operacao = . operando = .) + { + assembler.escreverOpcode($operacao.token, $operando.token); + } + ; + +store + : ^(STORE operacao = .) + { + assembler.verificarAumentoMemoriaGlobal($operacao.token); + } + ; + +storeint + : ^(STORE operacao = . operando = .) + { + assembler.verificarAumentoMemoriaGlobal($operacao.token, $operando.token); + } + ; + +desvio + : ^(DESVIO operacao = . operando = .) + { + assembler.escreverOpcode($operacao.token, $operando.token); + } + ; + +logica + : ^(LOGICA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +pilha + : ^(PILHA operacao = .) + { + assembler.escreverOpcode($operacao.getText()); + } + ; + +label + : ^(LABEL operacao = .) + { + assembler.definirLabel($operacao.token); + } + ; \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens index 7779d72..b4df8bc 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__25=25 T__26=26 T__27=27 T__28=28 @@ -72,6 +71,7 @@ T__95=95 T__96=96 T__97=97 T__98=98 +T__99=99 ARITMETICA=4 BODY=5 DESVIO=6 @@ -86,84 +86,85 @@ LOAD=14 LOGICA=15 MAIN=16 MEMBRO_CLASSE=17 -NEWLINE=18 -NULL=19 -PILHA=20 -STORE=21 -TIPO_REF=22 -VOID=23 -WS=24 -'('=25 -'()'=26 -')'=27 -'.class'=28 -'.end class'=29 -'.end method'=30 -'.field'=31 -'.method'=32 -'.super'=33 -'/'=34 -':'=35 -'aconst_null'=36 -'aload'=37 -'aload_0'=38 -'aload_1'=39 -'aload_2'=40 -'aload_3'=41 -'areturn'=42 -'astore'=43 -'astore_0'=44 -'astore_1'=45 -'astore_2'=46 -'astore_3'=47 -'dup'=48 -'getfield'=49 -'goto'=50 -'iadd'=51 -'iand'=52 -'iconst_0'=53 -'iconst_1'=54 -'iconst_2'=55 -'iconst_3'=56 -'iconst_4'=57 -'iconst_5'=58 -'iconst_m1'=59 -'idiv'=60 -'if_icmpeq'=61 -'if_icmpge'=62 -'if_icmpgt'=63 -'if_icmple'=64 -'if_icmplt'=65 -'if_icmpne'=66 -'ifeq'=67 -'ifge'=68 -'ifgt'=69 -'ifle'=70 -'iflt'=71 -'ifne'=72 -'iinc'=73 -'iload'=74 -'iload_0'=75 -'iload_1'=76 -'iload_2'=77 -'iload_3'=78 -'imul'=79 -'ineg'=80 -'invokespecial'=81 -'ior'=82 -'irem'=83 -'ireturn'=84 -'istore'=85 -'istore_0'=86 -'istore_1'=87 -'istore_2'=88 -'istore_3'=89 -'isub'=90 -'ixor'=91 -'ldc'=92 -'new'=93 -'nop'=94 -'pop'=95 -'pop2'=96 -'putfield'=97 -'return'=98 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PILHA=21 +STORE=22 +TIPO_REF=23 +VOID=24 +WS=25 +'('=26 +'()'=27 +')'=28 +'.class'=29 +'.end class'=30 +'.end method'=31 +'.field'=32 +'.method'=33 +'.super'=34 +'/'=35 +':'=36 +'aconst_null'=37 +'aload'=38 +'aload_0'=39 +'aload_1'=40 +'aload_2'=41 +'aload_3'=42 +'areturn'=43 +'astore'=44 +'astore_0'=45 +'astore_1'=46 +'astore_2'=47 +'astore_3'=48 +'dup'=49 +'getfield'=50 +'goto'=51 +'iadd'=52 +'iand'=53 +'iconst_0'=54 +'iconst_1'=55 +'iconst_2'=56 +'iconst_3'=57 +'iconst_4'=58 +'iconst_5'=59 +'iconst_m1'=60 +'idiv'=61 +'if_icmpeq'=62 +'if_icmpge'=63 +'if_icmpgt'=64 +'if_icmple'=65 +'if_icmplt'=66 +'if_icmpne'=67 +'ifeq'=68 +'ifge'=69 +'ifgt'=70 +'ifle'=71 +'iflt'=72 +'ifne'=73 +'iinc'=74 +'iload'=75 +'iload_0'=76 +'iload_1'=77 +'iload_2'=78 +'iload_3'=79 +'imul'=80 +'ineg'=81 +'invokespecial'=82 +'ior'=83 +'irem'=84 +'ireturn'=85 +'istore'=86 +'istore_0'=87 +'istore_1'=88 +'istore_2'=89 +'istore_3'=90 +'isub'=91 +'ixor'=92 +'ldc'=93 +'new'=94 +'nop'=95 +'pop'=96 +'pop2'=97 +'putfield'=98 +'return'=99 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class index cb84be0b6ad18d30baebc142c9cc948e2b1fa178..c29ff810602baf00ce6ac7be69f98ac4cf2449af 100644 GIT binary patch delta 75 zcmV-R0JQ)04)qSOj03Zj14IG^R9{~?IkVLT1_3Fj00|7J01gbP02BUe03r;m h04WTu05A-$05=S;06q+`07VS3lLQAu0ke}y2P`@s6c_*i delta 73 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 G#{M7Fj|KYx literal 28872 zcmb`Q2Y4058}8?uJ!Q|?0g^1CcaSQfhR~4`Fc4}eQWOs15F%-&00tYPfE5cxK?D^% zC@2C70wS8&v3Kkpd&Azi@62qHRq(j~doRzkdB1mdcJ?0^fzqYPrTh87l-lp@pQNM2dgIF5hB{1a!+ z?4D`>prK=WNz=$NY0@-yOmAtLIHr#@O||LKRhnjw=_XBc$8?vbg=2b1)6y|LrD^3D zMbO$YilB{S6u~KuQ3P!rqX^n*(^C<&cZ?$F;21^F(J_jklVcRYsg6+uogJeHQXHcQ zx;RD=bajj(=%!7oBIxcIMbN`BilC=s6hW$E6hSY?D1tP{D1zROQ3QP)qX_ysMiKPW zrk5hzs1ZOx#5lq#lk0O}n7)3DMF^XV@V-&%ej!^_>IYtr8 zbc`aH%Zz1K^ zLX@?TiYQOz$yM~3l!Dv^D8CeWQ)n&~a_JXf`E!gYmWUvKj+&Q`zq6^>NI{CsS%!Ra zc}diQN>EN2)+Ajn@|0jsb`Yh5b-qeXk@Ix??cu0l;zZBe_fDrW(f&4Vj)dCyQED~gRN4f}qKU+b$ftaeObRuYxkl5N zc2dWyl{H9`abFb=qjVas${it(e$Qxmmx8}+vnol2dt>2$&7)=j0PQE#RF)KWue zD2=7lRh&tF3aF@-+EBWyH3+Irbtr)n)f`*x9zCchrBW{y4^X9zq$H|~<54}TuY6N# zM$NH9wxm|nnod#6c2slv(?A-8Bl%$E8d6(oN9~ilEfIBQQ=MfcCn%Pq()1)kBq1FmI!Lks6bgX~M-{_|XBvagBF zMMKq7%~D@=XMJ_7A>yi0Z8FFgw$UN7Q)|m+!3i&cC#yzI3MNycFIja`0BJ!?CK^8k z4WqLx!~#<-GudR{qK4GKWZx4mJ=hO~Q+Oj)DmD~VLQ~bv%}n+aSgE<%EL*5Fbe_q6 zk;}I>*>7khYNO6wrr($e+s$096>@QhXcU%Awt4%#r zSv}R7QcZ04D8H9-X(sjngguoK8jNYnt^cZHd3*UQgzQ%H5{$tF(w)Y`No=P80a{Ya9_k}yor4grA|nY zt(9eBuSDuZ6MH6fl1bgM)zD;`Vq)(?${A=5sZ&ktvCwHIu63Z(O~Ty=rx_;pBPT!Nl$0uMUhq%)-EnS?8FPWdL`dYe;$NoPqdGzr(zoQh1W6nc({69;Nu zTwB(>#Kh?Uu2i`)ljg}h3rsp&>OvC-Xy_snhi2%xCJxrnax5-&F&30dpRcyv3rt)j zAoW5Mr#xm*#YHBL*fLmR(s?Sl)T9dtx7}*v!46WfEclNt=pvPGg-I8y;4+ggQNiUV zEmOf2CaqAxl_p)Tf~!orQUzC=bhQdrnski{t}*F46N z>r`;7NjIrrvq?9rV2eqcRB)$Bx2j;9Nti%W z=_wT~H|c2=ptqit#a3QMm6ucH6;z47d0x#z-@K>-^v%ovQvS-S@?TXs(N(Xj(pFLB zYN}jAmFTKB)T|p!dP{CTl{Zr5I;vbxl{Zo42CBR{O>WDT=*f48HK58(vP7!9MYVtB zt=ipY(tD~Dbngdh1-DaWj4HQM6lj^s^_6z59sB!&vg^0P`KrBMLjdYaXO$(}ztQsm4RInmN#(Y$Dm z&eEiPhv}IoHk*3bhkI3D>AYMN)ct?H*~PMf{^~j*%naU8@cQhtAa6`8_5bR&Im{dJ zrYM9rBQ~Y||4ws~Dh`R1L?=YE3v&u`%cI5pI!u{e_y(MUdW z2RR-uwmY%qYKqK4cDbRUp~JitZx}}TZDk$W5gYj*<)38jCoLEtxV6nKC@RCbqS;B7 zaxu$}Xp7t>l89J`ljJ`6IfV%BFoVf3pyeqNkL;KE{ zgeS`-GbZLnatddR$Ss|bF(Q4~jK4j8o>5YqJ!5w94Ec0=hI~5xkJ&j`VWc!SJ5n;E z`U!PP4z{a&^^6&Zj`T(Ho&y)gB|+YkSlfT?4VkApv+Rdnf~WD`Xbh|&dmgs)_8EEu z=qq?9ergE))nD)d@)?(}^xUGTOc*5iX)+<0JugyF5Y5BVGvz#-q-RzqX}De{PsiE1 zeFwR&5prFp$?-%ooDwaV)51NYM^}?i zz?Hn3ksmFcS2)L6q(?WCt3o~IVpS?_CN>J46BWTh$w|ed zZk5^-wLn=;YWJ#C)S$3BwMSJdssP3y_N~&g;)1GFRG|!Uq@=X47(Jqk?P>Bw=pCI{ z&CoN|c8wO}eLwWcPyiar&Uy0Ip?iar&U z!gW_wAyxFLsMN-qWAyGs`Q+yF6xC!?sTQ&D5jdI7ixKLO}aeW>2y?cuPePeKkA7q zw5sw8s`I0w2PNX%8WdC#S8PbCp+E&Iby8J=Ft(4V8HjyGO2T_eeuUUcqLp(yBMjG*koEXHIHWJEx%%Z&s&Pb!{5z zfh#g6Z&lBxp(^jo)#sO0?VY_*m5*dnLA2`V*&9_kife=1f(3>1qt*BPincfEB(KAA z3yU58-l)=7vVh`fepM2x^sQX^-}b`ZsMIm!$aU|9y-}y1kLHw_at%9~TwBYk?9 z23|fG1<{37i}f^(+A^iEYJcvNY8r`1DXK~7Wg2x+G*YU#`lOjgeQ@FY>)z@6^frw~ zD7mV2{Q2_jhslxEpD*8Cm_~CHlpm3gWqg=9QO=OB8>GsY6}T8N+6dmBcd(4MM*E=A zj#!fu&u=xScVToeI^vv@iT7>tY?cu;PCe-TsLlUyuh6qHt94VeZy&?ip`COd#Al2?iZf9BwBvcr7^3nJJfPj=07GMav9P}wH( zy^ySZA7S)mpJ8j0N5ZoFXwc}7!cJ_A(YYn+bdHOzsJm|cjDfOlgNXG#8N!g*do!~-BojE7nEWTk(~fRY7d!eiiI-aDOCvP|Of)R~kk+vsU z@yk75qzkQ<_eynqj`dl)X~|3 zkJeG1;Nx^uAb6IJiUgmmqhi6Q>Znxk89G`Z_?bFdB=}i6Di=JWqw@rxqoWH1&(YCE zf}gFUiv`cu(ItWx>1dhYB|2Im_yQeWF8H}Rx>E4-bab`g7wYI5!7tX)b%I~2qg8^h z(9s&fuh7vAf?utpb%I~3qniX@rK6h#U#p`{g0Iujt%7gR(PqIn>F9RBZ`09M!Ee{m zor2$?qwRuk*U{aA@6gdbg74DNF2V29(Y=D-ucJMJAJEbLfjHWvJO&Be7 z^oKB7>gX?Fv{I3e2_sEMTo@B{YFh2 za3DoK?8lRy4BQG850&>S@`-~F&s%!2mJItb-k}$=hRn|ba6veZr}7P1$mPTEmdgwH zS}tE3zK+W$z$dzV61?s5b>Wj;z8-vimu~>y(B&J!HFo(X@J(I58GLh>Zvo%ZgSbz88F&%lC%w zEm`5EwMy8K!2GhKcbe8lBv!)Lqv z9Qdfq&xOx%`FZfUE`K)se3#FI&v*F(_(GR2f0s5B_|YzX1M1m%j*piOXLMztrU~fxpz{m%%T0`4#Y&x%}nuSGfF@@K?F~)$l7_ z{u=meUH&@w>s@{o{A!n91HabgZ-Bqi<=4Tlcln#(H@N)G@Ecuz6Z|bMe=GcLF25Om zi_6~*A9MMw@OQZUo$%XSemneKE`K-t4wt_Ney7Xtg5T}(_rl-j@_XR-y8Qj{`&@oM z`~jDL0REuMKL~%w1X^klYYhDP}1-C8&3KYf32kB_$zE8NG-hYhSXNe)xm3Tm;{@GkVGv>Hih79m7}gr z7EH1-_0-?`>Td(}x1svmNd0YWQ!Qj|qD)iux0(9e+@?C1(ZZ%gNK2b+NGqF?A+2qy z4{2jlL&zyMHHNgcsVStLP0bL$+RgOGTNpnWQcw3L#lGodcPu zS3Ak361d4Wl|iQ1v=DNJP3JMYZ=OxH5Qrp1_drcLKV&a&x3$V{7-KxWyr6cVxN zQpjxG1lg)t=Ge3xX;GUlgUq$*3P_GkS3&04v=Wl5GM;VIwJ`Jb+VZsIYbmhlddw@- zuE?g|J1 zBD+YXCbA`tUM%w_vZY!s(Q>IXbD5*db@B?EHpsE4%bnR*IC`Z`x5@OYY}z9A zYMWwGSK4%k)N5?oCiPmI?vi?)F7|pYtF)}PX@{J-M%%SE?UeQgZEw`FPRn{NH)+|R zr zJtyscn_iH5z^0d^K48-;QV%)}|Deu(NXtW79@bK!rP9gzh)u7_MIY74kJ)rY+Q)5r zQ|c2oy)E@gJ^LvwhqXMd((<;JceK2#Y}!r2SaiPqZA>@~M{3 zw0!Ome4*`^TE5cqwU%$Rd~4GevefUi{obapq&;TSH&TDFN$pTSIwk&uY`f`L(&78* z$KCXM(z8ncOnTvdI=-75NiQq)C%q=qc`)e>rJ-GP?7@DG4svTZ?j8Hbn7xaO#z<`3 z9rLp;A!^*{mg8UV#Oc)FwJ~zM9{F)Hy@r|AwXBx4nk89lSbb|PYhvBNT3R=zfSU0gg)&@4n+Q`zaO>C5P3!7lw%BEVkv6wfmBwU2#c?Pot(2iTw11LU&~l4U(eN!CNu(0Z6!SQXUHs-zU_5lXclrT*4qG}L;W zMp{qMcNQX@&IyU2VNctF4#lChKLo&3c9I zv|gp1)@yXX^*SB0j?iP)8}y9zCcSLEMQ>Vf(+Ac&^qKW8eQUi(KU?q9U)BfQZ+*yx z^%1wNk9i~O6W-D~%G+C?@-EhAyqEPkA7FjKhgo0pQPx*{g7r0@YJJ0JS>N&;>pNax zeb39RWBfep2foz$kza28#ILn}<~LZs@Qv25e2euP-){ZRcUyn({nnrSVe2pcgms)h zD;R%85XW;3{-H4V=fcOo6Mp`S2=L<~Xat05)Dj`1t_T~Ag=Mr7c<3x@8C^wfBTdx7 zQ`Q6{T_hTrBFUH_Y-6gZYs?bK#ynBaC=&IJMWTUmp=f9<6OD|kL}O#MXku&-O^wZ> znXz3oH|`ZJj0Z$Z;}Oxycv`eJUKVYPw?tdxBhk+IQnWXI5FL!)MMobOoqQp2sxMJ= z_B9YGz80d3ubt@XOA+0CsiM2Dzv$r`Dth`xid5ft(aSeg^!CjXeSA5hudh(_^DPkl zeHVxUzGY&d?GQ7bASniPL?ri45O6 zVx;dAG0OL~814H>jPd;?#`*(doWHgh?@tyJ{7prc{}eIN-&sudr-~{50pbk*Ffr9X zN=)-l5Yzor#SH%}ai)KsILluoX8IS3S^f(}#J^l*`&WuN{xu@%-yr7tH;WwqHZjk? zTjcr=h_n5bV!r<=k>`I=9;)=jdab@6saaG_UadqGcu`=+yxF+zrxHj;n zbxq(Mu`2M1SRMFUtO@)i)&~9(Hv|LX#$au+A!v)6gN?+-U~{o4cq+6f6TA+N5cL=j z+N>2%!0iGHHen5TqP%h7NtkCc{%5c`Q5|@j*VPy0cn~5-Q{p2O;~+EcLBQofM%`^N zc8)4k=nOoW*TWo=V@{lfhv7MtTsW!YUf!VN0p4h8M?_8TD0ZvV_Zz!#skx4<*M`+db#S->pG>QEIFJ3EW|tW6lXnB zWn=hk-sPVSx!6^0pHp6MoZ-Nj+2p6rfZ|+a#f3e`7$$g!X%QYR7wdpT_s` zep1o618dr&k?d!75tdkjT3(9BewTs%ay))p>8e2!XN?B7hrz0A{j44zf{3$3j)(Xs zP!u{8O%obP3Y!nx!-xMD#%f@!0meFX&n8wE_w-HJ?JkU_)ff${G3r-i;0?kF7&VR2 zST#lm4~?-M6nBAQCmQ2EG{zn@#sL>a{KmlBixVhn8l#DBj8PsM<6&S_0OK(<#?xqw zXV4fgx-jB5240=S!Dy;6#(2PZ9T-P|@is6%1ja|e_{=i~-rK~%Xr?j7d%*Yx7~cZp z2VndLjNj!4s-7|M(kKo_bB!_azcDC)VWUBOZ)aiTXCj6)Cjq0rXAHctii6QYV@&aY z(G(cXfYAyV?Sat&7%84H@VYDxMoWz`%>zbHV59=04=@G+<1}ETd&a=Kx)U&J_SaSt zBcaQG@2@lp6q%qH$1Ix2@H7DRAfKv8qlXrsGiriU&m1I7Yil%q>7LYFK-mn?H(#6N1_1!)|NQ#8hG4;WVh<0@cW z3yihExB(a&JY(SPY#fZX8YAif<2GPy2F6xk+zpH!z_`~l23`%v!Dy#3=6S%_4~zrA zI0TGGf$; zGhloLjAOv~0T{n}#=sl-I2au@#yK7^j^l0^SFIecUU?YTV-{<|6Fg&JI6xeXP8y^1 zzcFw{Y~Xs>&l>}yB`{h6qn&3Aj75lpajM2x=mDcMFj9cg9T>fV(FYg!FH z8l&6;#xP){10w?%V}UUa7?V6>U=&6ij1-M=z6Xryz?cDyS-_YJj2vL(dB(sHkT@7! zG{!|9Fp7au0*r;gI3E}n0As0V42(aCgV9xEEcJkK889vf#?`=B1&r0eSmzl7gJ0rc zbki8iJYZ}B#x20u0*r0I*ba=Ho-r`;CJsh-jd7U=jJ?3P9~ch+qXHO}z<9zl28R8_ z!RVneuJnNMEHIt}#!J9B0*p6+@vdhKj5&&f(Nklr^nmd(Fg^js=fLpX<)4+Hh z7_S23HDJ8u83RK)<6sQZ825O<_y8Cm0^=w!z5>SAz&Pd^1LH~KV4S8gc6-416&Sw( z<1Z$BK33P~XH9%z&lniY8V6&r#@O@U7`_B%_!61lmkf-?z-R)DmYy*%k~R*;5RI|V z14cVwvD1B83V(3<6sQc7!P>B7zm6(z!(aQ3}B1|##ql77(*NfW0=M` zSsLR@ z4;Xg?V+SyH17jaB_5Z%V<9T4b0E|~XW8j0NI2e;O z#`hjD-U7zkz<3`RM}hGvFuwAPfv=(BU`*B+KYGA828*LHB;fOmflsmG zU`){%zx+2w0Kb?Ku$VtkhlxNks~e~XjK-cZ@Euqjj59RG?;bE(0;3f$+5+QLU~~pX zch4C32rUlARE_bM2aMjp=mU%az!(aQVZg}nih+?L@i3+-41+vij0MIxU`zzYG+;~z z#w^bm`1~$TYfRS|J`Wgkfsq4@`M@{_7{$QQLw#Cc2myY|I^Gx(`R!jEj2Rju=mFz= zU|axK{t1ja^SYy!p>&lvdXF%HIA8l#p6 zjBUW!4vc$%u?HA?f$@N64197K2V*yS%+eUP z2aF@Ycmo*k0OKQId<=}wJ!9Zw(>NFrjZx17#<#%u4j4ZI<9A^E!I}igGX}nNje{{; zV>JA4j9`!%L6iA|f{9=ftBcWxO@a+PW8gE}I2d7#(ZmBrGhj3aMr&Yn07ge(bn%RV zZ+zomBxsCg9xzgY(F+)TfpHoz1_NWbXAFE`d;&(zkQz&3BxL;eV3uGeC`N-~JhOt6 zm>rzV8V9GlDB=#Oksmk5p{TDYCVQZWfMPZ%=7QpEP|OEKk!K2gSp825O2ddnIo`26 z!3KqYV8?rn*1mnlDV+84CHoQzHZjvTFveOV9)sAAxc&j7)6}Hze1^=s*XZ2W-_U=k z>76J9|2kljBR1uj(gv7Xb+nDH=;as-BkKMy{jEmfvylvAYJ&?<$Azflc`O(_A9cKt zH40wDng=gtZG%f$r{HqdH@J-T4_?Lw1+Qdh1g~K;gR9x>;EgOdxP_e)yq%pJ)Q?&Q z>Y7!b-WF63kt}tFNCw$#qX%*s7}Pk~=!wY3`r}z^Dqaxz)d=7EEN~oOR{MkaaXtLQ zR|0l}(67jtD8EksXLF*~K72RM*gFa0WX;)m6Yl#5I&IYu`D9bc$?llY8U1hc^80%Q zTz!Dw#Z2gW3#$d`gYP$ey#mPr+0qkS%O=+3mwB7HES9Mw?LGs)AQodi4;cNXl1$iZ z4CrfiY-sK=PHSi$O7{Ekv1p7nI$#W&s#d?(7~a>!oJ;%^J6?FQQL4Jja4mr@!(*l( z9y0~^qRZ|_m+eQF9l&mSkaZ0{%z6c%Vtsp6;4$`g@E5hY&t+k> zz&q7l`$l!wzFyt6j~Vg{ZrQc_jghKr`><7p{EFL;PQDs1;N+%%I=dLJ;R5*Xe=`di zV~nvF)cpuHfpNxoW~xo#RA%9--n9wX{y*^hrhnpp`k4%8 z&+UT!gdM^U;>ij1)XttMclJF-)(JaYmzpi4+28tD5B$R-vE$GDdw&eXuMn`{U%&yB zX)w$5vpS~567iFbP0iY@jai4aHEq`0tj`9T4cQR0DN8rovC(FGHp%R)+P0@At!~>1 z)onY@Y1>5B)0m7lGw>S(?Tsmje5$1qnD0+khtM?jh!TIrz|=(f%PRkD4c;1i2@X0m zJ|QGqqxz7OF!&aXd#|z6HnWy48~OXjUH(CDg-gGM;=4V#%6-^jo!)h(X|n){U>Wp)YP*7#Q%sxwQ5n~sZE<&zv8Ql zMEO%6|J-y~&AB^C?MS%f|F5z9CI$_e7&K%q#O|<|+2(nyvAM+aSrb1qastK2*noZ5 zDCQo;y)TC8C#%5Rb7@Otv*r=)=Q#)~p8Go|w zM3#*oBs$56s_x#`GnoW0-!!6$Z|m+{A<<9>xqZ z-V{?COr0>{0}u?@WBfEsBQTA@GzrrTOxc*u#&iy*MVKzcv<%Z#m{wt0kLgxSs0YVK zCwwm^{6AIvQA|%`dI{4TnBK?qDW-2Q{egnRElXari(FMhUpqiYcbu7X$wvmkr+>hWXJeGNHoUNAUQGK z6_Oj{9U${#ycHxr#v4NlW4tcpoEWbKDT(m_q%20qAq!*l3*_7weFs?_qt7Ad$LK@I zg)w>yvLr^YK$gbnS;(a^dK|JmMh`(Qi_t#F6*1Zcxhh86AS+|E8FFomHbAbA(Hh9= z7_Ee?jnN9ojWJpRSs$Zv$c7k|KsLrG4{}S4qLABSbQWYwjHWcFKv+OZ`jBBi>yYCy)}-SeAH`TQTvm+L zhBIO;2=U90ozww^-;H1OVCEJaP;SR{LJU6-zl}=G9r(%j-S}Dey>x+jfG#!<(WPc3 zU1mN`SDJ_E8uK~2-h7GHny=A1^G&+he3x!9Kcp?@QQB&LLEFu5Xoq=>cAG!b9`kqF zZyu+EA%h+c1?iEHMNfq4(BTli%?{P47ekHd)lhRf5^7CvhuYD5p-%Kss0$qp^`I|8 zY4mldAAKJhL_dax(yyTr^hanEXQ8p&2xakLXbKO9rt{jNnLII+&67hpyg_I_ZxSlx z%|j);b!Z`P8(PdehA!ltLrZzL&~n~0bOrAnTFLu`uIGb7Yx$7SdOkd~k!OT%^w3^@R_Fkq9m0PD6RPC7p~rb%=rAt|J;zHzFY$$;*LZp8O@2Y> zUA`prA-^uaZ1WxA z`g~WoG2atz&i92|^Mm1b{Go6s{z$kBe>~iS9}cJSXT$yYi{U~1mGDr0Bs_w@6&}Uk z3y??==R7 z4;Vwjhm7=arI8VS+{g?cHpYdYGqS=j8B@Zq8PmdV8fS&yH6q~;jcE9&F)#dukr)2P zC=4GnO2R)I3&Ot}<>BMT`IccUv4X}WmSwE4>KIp8wz1NxZ(L_JHr80pjT^1j#s;gM zvB~OWY__@>F{_8M%}O)ww)z>ntU<!ZQ)=V60CO0wZ002h@1|9$a diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class index ae5583f0a5b686b862815194d2af7f8bc6220b3e..18d2f8b35f4f3793472739896183ff7043d4c7e8 100644 GIT binary patch delta 19 bcmaFC`hs;s9TVfD$@NS&jL#Mz+a&m~;R`iUr~T diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class index 3cab35563e3d46c19df2db32c148d5cfaf2fca29..8dae732f597be898b4e7a7b23295711996fb0d33 100644 GIT binary patch delta 21 ccmZo-Yhv3lory`HbMj0kYbJrd$=8^407ym#l>h($ delta 21 dcmZo-Yhv3lor#Hm<>Z-6)=d2CCSPOH0RT!<2Gall diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class index 89880dd511cf0c7a7279ef824fa75ba0f33ebbb4..332ada86d6debc9b164c74c74193f9b86700a623 100644 GIT binary patch delta 21 ccmX@cdW>~LG!v5m=j2!>YbF7n$+MVr07Gg8WdHyG delta 21 ccmX@cdW>~LG!qlQ=Hyr=YbJi3$+MVr07Z8NqW}N^ diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class index 686b4b530490540572e43e2d137322c77a971f66..217ca92853ebfe0a8a2967497467e5e8343178d6 100644 GIT binary patch delta 19 acmZ3=x|DT;H4~%GWE&TLy888 delta 19 bcmZ3@x|(%^BNOAh$xci*j2|Y~GwA>TLwW{> diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class index 0ce1cf9045ac7eaae5523a0fc24b10320a2aaba9..ead6848ddbec1a15dbeb38f73abe5692f57ec8a6 100644 GIT binary patch delta 19 bcmbQwI-hleDHG$R$!1J8j8`TXGwA>TKGFsg delta 19 bcmbQwI-hleDHG$x$!1J8jF%@DGwA>TKEehO diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index 1b974e9014db8e4b353cdabe879038514899f656..73908ad675a1d45bb2b9927e03fb3dd86c74c554 100644 GIT binary patch delta 21 ccmbQkI)`pby delta 21 dcmZ3=x|DT;6%!NJ{>e5>)=XRnCs#7*002fL1|I+b diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class index 8c10c555301a8c74d634599940420ad159e8467a..002630849a0e29d1f14f16193ba7b4e230d955bc 100644 GIT binary patch delta 21 dcmZ3)x`=gyITI7_jLDWv)=a#!CYLek002Vw1;_vZ delta 21 dcmZ3)x`=gyITI7lj>(ox)=WIRCYLek002b<1_l5C diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class index 48a3b0c16cdc5309db0f24622300e17332a3740c..4636966d4674ea7327b5485b382915505e975a00 100644 GIT binary patch delta 21 ccmX@cdW>~LG!qjC@8nn}YbFl<$+MVr07DT4TmS$7 delta 21 ccmX@cdW>~LG!qlM?&Me|YbJL6$+MVr07V`Jng9R* diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class index 68bdad27f12c5e9671fa53bd629caeae1fce693d..55d0fa9128fd4aee8351c0358406e830e33d977e 100644 GIT binary patch delta 19 acmdnOx`lOv7ZYRiWN#)L#@5LlOgaEQ_yyho delta 19 acmdnOx`lOv7ZYRCWN#)L#+Jz)OgaEQ=mp#W diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class index 52ea9b81a5bc8d57f6a4cb70f6c305fd4d0d27f0..cc7345cb3c54bb20c2aecaa6c75b4d067b36c653 100644 GIT binary patch delta 19 acmZ3%x`K6s9TQ{vWP2tX#>~kzOgaEMPz7oL delta 19 acmZ3%x`K6s9TQ{PWP2tX#*E1|OgaEMKm}+3 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index d6a28b4843b221530dc707430aad8c2842f3774a..6eaf75eab378f5225936b9f4beb0f9ccdf86f541 100644 GIT binary patch delta 21 ccmbQwI-hle2@?~4-DEQ+YbO4N$;C`M06>%li2wiq delta 21 dcmbQwI-hle2@@0Fyvb%v)=Yd0CKog5002Uv1;+pY diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class index 86471e79df4f016bd31a085d78047637f09a4c72..f26b1c695923083ffbe62e79b1013a01e7651573 100644 GIT binary patch delta 19 bcmZ3%x`K6s9TVfc$@WY(j0+~$FzEmQJ-`Ln delta 19 bcmZ3%x`K6s9TVf+$@WY(jPobgFzEmQJ+KAV diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class index 993e1741bbb53a7d01961bde5ef2c6e1ff5f51c7..40c963bb4dcf6020ce402f3c4f47f98427866fdf 100644 GIT binary patch delta 21 ccmbQwI-hle2@?~K&15qsYbGAM$;C`M06X~v{{R30 delta 21 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℞f|^jcx(DrAD^`9nYjk_i9W=Tl=uR5l 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 WcSHXY`tIoeg}w*Y2cqvu`u_o%KxJkC diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index 12b99650020f3cef74bc2e6662d7a86b7240f0e2..eb3568128c6600cab3e33626a9af2cb98570a42c 100644 GIT binary patch literal 14214 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 literal 14167 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.tokens b/bin/br/ufpb/iged/interpretador/parser/Def.tokens index 7779d72..b4df8bc 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,4 +1,3 @@ -T__25=25 T__26=26 T__27=27 T__28=28 @@ -72,6 +71,7 @@ T__95=95 T__96=96 T__97=97 T__98=98 +T__99=99 ARITMETICA=4 BODY=5 DESVIO=6 @@ -86,84 +86,85 @@ LOAD=14 LOGICA=15 MAIN=16 MEMBRO_CLASSE=17 -NEWLINE=18 -NULL=19 -PILHA=20 -STORE=21 -TIPO_REF=22 -VOID=23 -WS=24 -'('=25 -'()'=26 -')'=27 -'.class'=28 -'.end class'=29 -'.end method'=30 -'.field'=31 -'.method'=32 -'.super'=33 -'/'=34 -':'=35 -'aconst_null'=36 -'aload'=37 -'aload_0'=38 -'aload_1'=39 -'aload_2'=40 -'aload_3'=41 -'areturn'=42 -'astore'=43 -'astore_0'=44 -'astore_1'=45 -'astore_2'=46 -'astore_3'=47 -'dup'=48 -'getfield'=49 -'goto'=50 -'iadd'=51 -'iand'=52 -'iconst_0'=53 -'iconst_1'=54 -'iconst_2'=55 -'iconst_3'=56 -'iconst_4'=57 -'iconst_5'=58 -'iconst_m1'=59 -'idiv'=60 -'if_icmpeq'=61 -'if_icmpge'=62 -'if_icmpgt'=63 -'if_icmple'=64 -'if_icmplt'=65 -'if_icmpne'=66 -'ifeq'=67 -'ifge'=68 -'ifgt'=69 -'ifle'=70 -'iflt'=71 -'ifne'=72 -'iinc'=73 -'iload'=74 -'iload_0'=75 -'iload_1'=76 -'iload_2'=77 -'iload_3'=78 -'imul'=79 -'ineg'=80 -'invokespecial'=81 -'ior'=82 -'irem'=83 -'ireturn'=84 -'istore'=85 -'istore_0'=86 -'istore_1'=87 -'istore_2'=88 -'istore_3'=89 -'isub'=90 -'ixor'=91 -'ldc'=92 -'new'=93 -'nop'=94 -'pop'=95 -'pop2'=96 -'putfield'=97 -'return'=98 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PILHA=21 +STORE=22 +TIPO_REF=23 +VOID=24 +WS=25 +'('=26 +'()'=27 +')'=28 +'.class'=29 +'.end class'=30 +'.end method'=31 +'.field'=32 +'.method'=33 +'.super'=34 +'/'=35 +':'=36 +'aconst_null'=37 +'aload'=38 +'aload_0'=39 +'aload_1'=40 +'aload_2'=41 +'aload_3'=42 +'areturn'=43 +'astore'=44 +'astore_0'=45 +'astore_1'=46 +'astore_2'=47 +'astore_3'=48 +'dup'=49 +'getfield'=50 +'goto'=51 +'iadd'=52 +'iand'=53 +'iconst_0'=54 +'iconst_1'=55 +'iconst_2'=56 +'iconst_3'=57 +'iconst_4'=58 +'iconst_5'=59 +'iconst_m1'=60 +'idiv'=61 +'if_icmpeq'=62 +'if_icmpge'=63 +'if_icmpgt'=64 +'if_icmple'=65 +'if_icmplt'=66 +'if_icmpne'=67 +'ifeq'=68 +'ifge'=69 +'ifgt'=70 +'ifle'=71 +'iflt'=72 +'ifne'=73 +'iinc'=74 +'iload'=75 +'iload_0'=76 +'iload_1'=77 +'iload_2'=78 +'iload_3'=79 +'imul'=80 +'ineg'=81 +'invokespecial'=82 +'ior'=83 +'irem'=84 +'ireturn'=85 +'istore'=86 +'istore_0'=87 +'istore_1'=88 +'istore_2'=89 +'istore_3'=90 +'isub'=91 +'ixor'=92 +'ldc'=93 +'new'=94 +'nop'=95 +'pop'=96 +'pop2'=97 +'putfield'=98 +'return'=99 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 04e8079c4d9a1c3be0af4ac4f8d107dabd8ae956..7422149793f8a6882040b953ff194c6187e08a22 100644 GIT binary patch delta 59 zcmV-B0L1^q3d9Pqsst&m00{)H01gDN022hT02&0b03igj04M~r051fz05$}*06he@ R07L}0lhXu50lAYH1uWW852*kE delta 59 zcmV-B0L1^q3d9Pqsst&l00{)G01gDM022hS02&0a03igi04M~q051fy05$})06he? R07L|~lhXu50l1SG1uWS251jx2 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index 6bdcfe993bb0b899ad68afa042c7fdc6d1f003ab..458e8f48c26c99e6dd99de72460a119e78b09566 100644 GIT binary patch literal 23890 zcmdU12V7Lg)}L~hUGS>N6&0~yi3l1|5F18=f=Ys*f*NdOg#|ZRcFFEyx<+G3F^TEL z6jM!4B#N49iYca7)5}YLd3i}*>U$}E|1*@&t2cdFq@@ zG)axebl%u!igojXcG#GV!zO(fkS zV~F&!$XFu1O_Dd9NFR%gAkx<&xkNH7l1HSUMMe_oZ;^Z=11zE>7-$hC!C@9r5)874 zk|5J0Bb5Y$EutjIvWSu(+agMWAr?^*47G@o;Bbp535HojNswa^CBbluC<#WGBwtC8 zYY`~EUMU(_bT0}`uXb~mBB#S5sCR;>FP-GD$L9t0jD+yp>B+h6h!BmSV38q;@ zNdO~M*^~rFSwu;2v_+Hzr4~^VOt*-Vpv)plf^w6LQ4-9sh>~EYMU(`yETSZ+u!xeN z(jrQN*%na}%&~})V6H`!1jkrJNl;~yu}Xq@7Euz+w}_Hpfkl)A3oW7~SY#0;LA6Dc z1jkxLN#M4Kl3=k#lms=H0}5xAR8B9hESX$LBMLKzHmSU*ioy=g5{il|=9H8ZOW@2| zd`x9=Sy2U1Cmx+rQe0Y8T~s`|lww?*iIO4;C8Cg$vXV*)Ct(gLDO14?C;`FZl3A)i z9g>t5PAXOpcf=#5<%R0;PN=uEe5xf;XQWIoEGeVHk}(ZUFP=VWR(bX0(!z?0Vv6j- zSqC&=T6wD|DX6Kecy4J)naW|Hh_czGs-mu_bw)|)G}YQvkc!IkSt?gI&RmrxGs>%H z6;GjZyW^=jz`Y*PS6W5xt&iafcdm zCRwqCky22kR$J%B)HQT}rL`_X1B<2h`L}G7yV!MY)$LUsjttYh98?Zl3x{IXx0`=`=Ce=kMZuI(=v}q72E|Tb@ zdBk2WX)GdD?pR7`V*|Ol7{HPAlA<{2@H6^bQd^UKoJ^=>fR!mSVaDdl%i}ED%GJ71 zP`+5J${h{4BK4Yb#mj^edsrpr52unMW|ubt&qtERj-jN8$>oiL?-gnCm|RL~V{RkK zgd+MJJCf2{O>HDS9FePap`=W$);4l1D(_~=MQa!(lR4$*LYooWvnRk*^7G-|MI=^B z5Iv==EPpKgyNGeLO~QktsL+VK=ITsOnkF`C6dsKvnoFoD3|ZLd;cyirRjMVB(v*FT z9%<8`T9egdWL=}lR9)k1d|tmdjG0Xi&YFW6doq>`C+~)tuKlLL#j#i>j)#)nK5y*= z7pI-U_~P~R;{BsfIliT#~}dsvty>ahBiyp{wALfQSdvRnQk%(5V)F&CaE3{3jZ=f zM}WeqjL=+As5(OPK#x%rJHDo%9~3^LE7Prv1`K{;lEqZXi)@^VhEEtxr?TM*MmZH; zi+;+iZE8diYf@5XWN?8mLBD0z2f_h_kE5{HT}y58nPESLv3MnAdd+rI!y0Xzs)r*I zO{eO^Hcr(qwegYQSp1^-^TAKSVi+mEfeJiLRbJ~|itsX(SXb?>X=wDEfQU0}5%nHK zth7gj5wXe^;iDXD>=BgXEL()1a-5@TtWy=NGsCLv^Q|yFwB8J>5-+mC6n}{sR^?o# z!d`z3;;$gv@LINU74@$ost2!brPSbSTPZ1UV=E>7-Jl9>Xd;8VNrnBMdW3I*pOD#R z%0uL>)YslX5W(A3-k_%e;X754QTw`^?8_UmuX|O8ml<_bH{hkvM+^K>Avc|_K*r~x-(K=HgQ{gr*`ucHI~O_20gbMY5A z?QdR!f5tnx_$!2+UHmoRvB@s}24NQ$e-qO26mA^b)y3bYa4PS1YdDV2gy*OYU+C-;mXO5%%Kzr%UvZWi>$JfK)cM!^?>NC} z@;AC`jxY9;KVNGe;b3JN9P4#w&99)+zt!2N>@y1eLua3}�asbp9j%39DY5!YTu^ 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

Y4fZu8g2DNuMXbP6&-P1`(lJTn0pM$^CaYb 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 DVOH>F diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens index 7779d72..b4df8bc 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__25=25 T__26=26 T__27=27 T__28=28 @@ -72,6 +71,7 @@ T__95=95 T__96=96 T__97=97 T__98=98 +T__99=99 ARITMETICA=4 BODY=5 DESVIO=6 @@ -86,84 +86,85 @@ LOAD=14 LOGICA=15 MAIN=16 MEMBRO_CLASSE=17 -NEWLINE=18 -NULL=19 -PILHA=20 -STORE=21 -TIPO_REF=22 -VOID=23 -WS=24 -'('=25 -'()'=26 -')'=27 -'.class'=28 -'.end class'=29 -'.end method'=30 -'.field'=31 -'.method'=32 -'.super'=33 -'/'=34 -':'=35 -'aconst_null'=36 -'aload'=37 -'aload_0'=38 -'aload_1'=39 -'aload_2'=40 -'aload_3'=41 -'areturn'=42 -'astore'=43 -'astore_0'=44 -'astore_1'=45 -'astore_2'=46 -'astore_3'=47 -'dup'=48 -'getfield'=49 -'goto'=50 -'iadd'=51 -'iand'=52 -'iconst_0'=53 -'iconst_1'=54 -'iconst_2'=55 -'iconst_3'=56 -'iconst_4'=57 -'iconst_5'=58 -'iconst_m1'=59 -'idiv'=60 -'if_icmpeq'=61 -'if_icmpge'=62 -'if_icmpgt'=63 -'if_icmple'=64 -'if_icmplt'=65 -'if_icmpne'=66 -'ifeq'=67 -'ifge'=68 -'ifgt'=69 -'ifle'=70 -'iflt'=71 -'ifne'=72 -'iinc'=73 -'iload'=74 -'iload_0'=75 -'iload_1'=76 -'iload_2'=77 -'iload_3'=78 -'imul'=79 -'ineg'=80 -'invokespecial'=81 -'ior'=82 -'irem'=83 -'ireturn'=84 -'istore'=85 -'istore_0'=86 -'istore_1'=87 -'istore_2'=88 -'istore_3'=89 -'isub'=90 -'ixor'=91 -'ldc'=92 -'new'=93 -'nop'=94 -'pop'=95 -'pop2'=96 -'putfield'=97 -'return'=98 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PILHA=21 +STORE=22 +TIPO_REF=23 +VOID=24 +WS=25 +'('=26 +'()'=27 +')'=28 +'.class'=29 +'.end class'=30 +'.end method'=31 +'.field'=32 +'.method'=33 +'.super'=34 +'/'=35 +':'=36 +'aconst_null'=37 +'aload'=38 +'aload_0'=39 +'aload_1'=40 +'aload_2'=41 +'aload_3'=42 +'areturn'=43 +'astore'=44 +'astore_0'=45 +'astore_1'=46 +'astore_2'=47 +'astore_3'=48 +'dup'=49 +'getfield'=50 +'goto'=51 +'iadd'=52 +'iand'=53 +'iconst_0'=54 +'iconst_1'=55 +'iconst_2'=56 +'iconst_3'=57 +'iconst_4'=58 +'iconst_5'=59 +'iconst_m1'=60 +'idiv'=61 +'if_icmpeq'=62 +'if_icmpge'=63 +'if_icmpgt'=64 +'if_icmple'=65 +'if_icmplt'=66 +'if_icmpne'=67 +'ifeq'=68 +'ifge'=69 +'ifgt'=70 +'ifle'=71 +'iflt'=72 +'ifne'=73 +'iinc'=74 +'iload'=75 +'iload_0'=76 +'iload_1'=77 +'iload_2'=78 +'iload_3'=79 +'imul'=80 +'ineg'=81 +'invokespecial'=82 +'ior'=83 +'irem'=84 +'ireturn'=85 +'istore'=86 +'istore_0'=87 +'istore_1'=88 +'istore_2'=89 +'istore_3'=90 +'isub'=91 +'ixor'=92 +'ldc'=93 +'new'=94 +'nop'=95 +'pop'=96 +'pop2'=97 +'putfield'=98 +'return'=99 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class index 4da609e9939a0b16e656912dbf837762786c36cc..3ad6ef47561a9a897a5a2837927c58e5b6c9a292 100644 GIT binary patch literal 3428 zcmb_eZBrXn6n<_91j06y@KP+ah1voM&|uL*8>9u~r5Ii`h+;+EBwJWWcH{1bk#YRw zH-8Pz2v|Gg_^HnLn;ge;?rxF|;0K@|xViW2z2`a4JTAHKgOe)YUEzpwMRrl3I$LxQg1K1*hUEN2;8VDAf+37T5eIbcSs9ibfKG3dj#qRV;fBnxUHZG;ShQS z+N#HChKa>*f;b0lv3I^eo=*ZnG%SY8EOgca!u6*9uLMY z>5SPvR4{@E0@u=xn%$%8^k_va&E{yWWm$sfC-lO=UV$f@F^MJ`fO;#fgjFWSJ0k37Hr7w#ZW} zWu=B1(b_s~d&`Zg(J|e2C(vGo@+&cf#c~<>%rhlDpVO>HEKzfjuS#zi3rKNEEemw` zv*2}8x5!o%3}Kk}exl%0r0KX?ENVthVC1|*zSOyXJmh2}J`)H$`GHmOxq>gSNv`&^ zgEXt4_9DrY4C4j1Limabt6FTX7!=H5o|F2Gf^VUcylm?K#TkpVtvQsI8cmhioC%B~ z%90>{WNusZ)X3DX$O3O6Y08dVc@LuHtCo+G_adau7_amuwAiOn+q@gDf^r*PK5e}M zD*NlK?RW>pa@UK{HKhG-{WBtbxf=9d5$bG2vc~81;MH6*gK*j`Sy^pfmkqq;AB+dA z9`un~>gcZ?K^m#^)Bj?Wa^usxs9NQ-1ngq{q(ZM z=u6ynOTQc(0dUuiQfSEiJ_Z7?hy}W*z0<%FzojjM(75fVVZ*EP?`|<2kjwDwooWDm?g8Dp^s!> z39>TXdJc?n1CnBcG(PmvtM_mOcMJN;tTOWMfYH}j*o;0u!N=rfreVPo3_rN{$-5qR7(;S2k?n)Cd${c=zh( oDRt*h%F?+ZnkagQr~IM$3dU9K3Wc`%KcR6ka3J4NZ~<8V0bpNiZU6uP literal 3489 zcmb_eT~ixX7=BLp2!t&ZN-6delu{CCgTFoDCHd673j)r>d*CL z#WRb^WxdS3_N=*X>0ZS#1Rgi;PWj8CZmlP?o?}|;sUupFN)t)T+m`F;mbYr#MS+tc zu#D+?Jh8M-G<6)f{<35LV3zE;qERv|&z_a&KD1aAXq_@G(@P8dGID%3{e&MiI)0v0 z@il?wS-W7w(1d;sy?9R`^X{yRuSIcA;7pwX8PnP_3JbcsK`z8_78fMyMS-S~_*y#z z1~ha)i{gEOQ}t`pj-zkOl*KTJ3-a7$4P7`XXIC`z;FO%jHMAopDQ8;7N~M%DoQJYl z1$r`eUN5fcjw#oHu-V%%Nzi7?E~z65E=)Z##!w|WXFa!z&zVx5n>;K-f=mf?+BtR; zf4Qog0=GxvM^q-g{YXO+;{qqLo}S-gI0Lsj9mAE@I?JjA4^HTzfrA21b>KEqQQRSJ zJv{{1Folnq#&yFJ7!FhDL2lE?d#QMc^MNRey8<_l)@fplz_f;&m=qAq;;q9*vg#1K zgvyH_Eo$m!RvKJmn|QKc_Kq7>n`is&PN2666=q@-OVu(8iDxQiv0ylD$gsJn2WcRN zMXbn@dLVE*oQ0s9`bGAchO4+H&t^3|#237-m&=A#5V(5KrBLd8Jppp64POdG?))fO z@kqnhcuZAW#&%Y+pfQjXrDAx3r%`;%!m1aWPX-P5u^^MGYseu_db#ZXFUv5q35@*`RZJ0 zC)glW4x=BV+)4OqF{X?ofUG=%${E`?O_VcfdK0A|;(B1v0>AQ9cj6^R{z4l+6EEca z1%*viD?N~x&lC8ff|6eILI8C`ofA^XCdtuvGs4TD7cX&X^c8MJ@F&vCV{gzhrnJ9- zCP7AbaqoqwL-jGpz-9V(g}%mdjs^@7NP0NnYpi)V9C+Bt2+UxXMoLrK5%~wbQKY+Q z$|snk*w4_sGAv1{w7x|eCUGOm#a1P}9&)cGz!9=va94VjQ?UcaUt{r6&!>A>rk2%R zeBQIhL27)3uLO4S&2RWliVGZe@vM&1seG6u9d1$oWC(A(hPPhB3mdyySK=F+4qdJr zy8*N2@#b3|5A9bnbD)wf6l+RKO35nMk_4@ZQSwu=GE9wmX6?Sx)aRe7<)}3%3X3;< z+DJ*aN`j4Y5ZADuig)3pEFEa#_i%#C>9A>`g7I0qLen1nk7=?PBpX~B7lHR5MNEPd diff --git a/classes/Classe.class b/classes/Classe.class index adfff26..9669943 100644 --- a/classes/Classe.class +++ b/classes/Classe.class @@ -3,7 +3,7 @@ .field fachdf I .field zavcui I .field lohdg I -.method main() V +.method kioeot(II) I ldc 3 ldc 6 iadd @@ -22,6 +22,6 @@ istore_3 ldc 7 iconst_2 - return + ireturn .end method .end class \ No newline at end of file diff --git a/classes/Main.class b/classes/Main.class index 5865974..058df82 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -1,3 +1,5 @@ +.class Main +.method main() V ldc 3 ldc 6 iadd @@ -147,4 +149,7 @@ L2: ineg iload 18 isub istore 20 + return + .end method + .end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g old mode 100755 new mode 100644 index 471a777..d41d761 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -17,6 +17,7 @@ tokens { LABEL; PILHA; BODY; + METHOD_DECL; } @header{ @@ -44,7 +45,7 @@ tokens { programa : instrucao* ; -instrucao : operacao +instrucao : operacao | definicaoClasse ('.end class')? ; @@ -52,128 +53,132 @@ operacao : (label comando | comando); label : a = ID ':' -> ^(LABEL $a); -comando: ( manipulacaoObjetos - | aritmetica +comando: ( manipulacaoObjetos + | aritmetica | load - | loadint + | loadint | store - | storeint - | desvio + | storeint + | desvio | logica - | pilha + | pilha | 'nop' )? NEWLINE; definicaoClasse - : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + - -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) + : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) ; superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; -membroClasse - : '.field' ID tipo -> ^(FIELD_DECL ID tipo) +membroClasse + : '.field' ID tipo -> ^(FIELD_DECL ID tipo) | '.method' INIT '()' VOID NEWLINE operacao* 'return' NEWLINE '.end method' - -> ^('.method' INIT ^(BODY operacao*)) + -> ^(METHOD_DECL INIT ^(BODY operacao*)) | '.method' MAIN '()' VOID NEWLINE operacao* ret = retorno NEWLINE '.end method' - -> ^('.method' MAIN ^(BODY operacao*) $ret) - | '.method' ID '(' (tipos += tipo)* ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' - -> ^('.method' ID $tipos ^(BODY operacao*) $ret) - ; + -> ^(METHOD_DECL MAIN ^(BODY operacao*) $ret) + | '.method' ID '()' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) + | '.method' ID '(' params ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) + ; +params : (ID | TIPO_REF)+; -retorno : 'areturn' | 'ireturn' | 'return'; +retorno : 'areturn' | 'ireturn' | 'return'; manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) - | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) - | a = 'invokespecial' c = classe '/' d = chamadaMetodo + | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) + | a = 'invokespecial' c = classe '/' d = chamadaMetodo -> ^('invokespecial' $c $d) | a = 'new'c = classe -> ^('new' $c) ; + tipo : INT | VOID | TIPO_REF; -aritmetica : ( a = 'iadd' +aritmetica : ( a = 'iadd' | a = 'isub' | a = 'imul' | a = 'idiv' | a = 'irem' | a = 'iinc' - | a = 'ineg' + | a = 'ineg' ) -> ^(ARITMETICA $a) ; -load : ( a = 'iconst_m1' +load : ( a = 'iconst_m1' | a = 'iconst_0' | a = 'iconst_1' - | a = 'iconst_2' + | a = 'iconst_2' | a = 'iconst_3' | a = 'iconst_4' | a = 'iconst_5' - | a = 'aconst_null' - | a = 'iload_0' + | a = 'aconst_null' + | a = 'iload_0' | a = 'iload_1' | a = 'iload_2' | a = 'iload_3' | a = 'aload_0' - | a = 'aload_1' + | a = 'aload_1' | a = 'aload_2' - | a = 'aload_3' - ) + | a = 'aload_3' + ) -> ^(LOAD $a) ; -loadint : ( a = 'iload' b = INTEIRO +loadint : ( a = 'iload' b = INTEIRO | a = 'ldc' b = INTEIRO - | a = 'aload' b = INTEIRO - ) + | a = 'aload' b = INTEIRO + ) -> ^(LOAD $a $b) - ; + ; -store : ( a = 'istore_0' - | a = 'istore_1' - | a = 'istore_2' - | a = 'istore_3' +store : ( a = 'istore_0' + | a = 'istore_1' + | a = 'istore_2' + | a = 'istore_3' | a = 'astore_0' - | a = 'astore_1' - | a = 'astore_2' + | a = 'astore_1' + | a = 'astore_2' | a = 'astore_3' - ) + ) -> ^(STORE $a) ; -storeint : ( a = 'istore' b = INTEIRO - | a = 'astore' b = INTEIRO - ) +storeint : ( a = 'istore' b = INTEIRO + | a = 'astore' b = INTEIRO + ) -> ^(STORE $a $b) ; -logica : ( a = 'iand' +logica : ( a = 'iand' | a = 'ior' | a = 'ixor' ) -> ^(LOGICA $a) ; -desvio : ( a = 'ifeq' b = ID - | a = 'ifne' b = ID +desvio : ( a = 'ifeq' b = ID + | a = 'ifne' b = ID | a = 'iflt' b = ID | a = 'ifge' b = ID - | a = 'ifgt' b = ID - | a = 'ifle' b = ID - | a = 'if_icmpeq' b = ID + | a = 'ifgt' b = ID + | a = 'ifle' b = ID + | a = 'if_icmpeq' b = ID | a = 'if_icmpne' b = ID - | a = 'if_icmplt' b = ID - | a = 'if_icmpge' b = ID + | a = 'if_icmplt' b = ID + | a = 'if_icmpge' b = ID | a = 'if_icmpgt' b = ID - | a = 'if_icmple' b = ID - | a = 'goto' b = ID - ) + | a = 'if_icmple' b = ID + | a = 'goto' b = ID + ) -> ^(DESVIO $a $b) ; -pilha : ( a = 'pop' +pilha : ( a = 'pop' | a = 'pop2' | a = 'dup' ) @@ -210,7 +215,7 @@ campo returns [List classe, String campo] INIT : ''; -MAIN : 'main'; +MAIN : 'main'; INT : 'I'; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index b14a133..d9c66ca 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -1,10 +1,9 @@ - tree grammar Def; options { tokenVocab=Assembler; ASTLabelType=BytecodesAST; - filter=true; + filter=true; } @header{ @@ -38,25 +37,25 @@ bottomup : saiDaClasse ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) - { + : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + { System.out.println("linha "+$nome.getLine()+ ": def class "+$nome.text); - if ( $sup!=null ) - $sup.escopo = escopoAtual; + if ( $sup!=null ) + $sup.escopo = escopoAtual; SimboloClasse classe = new SimboloClasse("L" + $nome.text,escopoAtual,null); classe.def = $nome; $nome.simbolo = classe; - escopoAtual.definir(classe); - escopoAtual = classe; + escopoAtual.definir(classe); + escopoAtual = classe; } ; declaracaoVariavel - : ^(FIELD_DECL ID tipo =.) + : ^(FIELD_DECL ID tipo =.) { System.out.println("linha "+$ID.getLine()+": def "+$ID.text); - $tipo.escopo = escopoAtual; + $tipo.escopo = escopoAtual; SimboloVariavel variavel = new SimboloVariavel($ID.text,null); variavel.def = $ID; $ID.simbolo = variavel; @@ -68,30 +67,30 @@ declaracaoVariavel saiDaClasse : '.class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } ; -getfield +getfield : 'getfield' { System.out.println("Saindo do getfield.."); } ; -putfield - : 'putfield' +putfield + : 'putfield' { System.out.println("Saindo do putfield.."); } ; -invokespecial - : 'invokespecial' +invokespecial + : 'invokespecial' { System.out.println("Saindo do invokespecial.."); } - ; + ; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g b/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g index e3d8dec..2055079 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Intermediario.g @@ -45,4 +45,4 @@ INT : '-'? '0'..'9'+ ; ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; -WS : (' ' | '\t' | '\r' | '\n') {skip();} ; +WS : (' ' | '\t' | '\r' | '\n') {skip();} ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 2edf1ce..c18475b 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -22,7 +22,7 @@ options { TabelaSimbolos tabelaSimbolos; SimboloClasse simboloClasse; BytecodeAssembler assembler; - public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, BytecodeAssembler assembler) { this(input); this.tabelaSimbolos = tabelaSimbolos; @@ -39,17 +39,17 @@ options { assembler.escreverOpcode(operacao); - SimboloClasse simboloClasse = + SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ - SimboloVariavel simboloVariavel = + SimboloVariavel simboloVariavel = (SimboloVariavel) simboloClasse.resolver(nomeCampo); if (!simboloClasse.getConstantPool().contains(simboloVariavel)) @@ -57,7 +57,7 @@ options { simboloClasse.getConstantPool().add(simboloVariavel); BytecodeAssembler.escreverInteiro( - BytecodeAssembler.codigo, BytecodeAssembler.ip, + BytecodeAssembler.codigo, BytecodeAssembler.ip, simboloClasse.getConstantPool().indexOf(simboloVariavel)); } @@ -66,14 +66,14 @@ options { assembler.escreverOpcode("invokespecial"); - SimboloClasse simboloClasse = + SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); } @@ -82,14 +82,14 @@ options { assembler.escreverOpcode("new"); - SimboloClasse simboloClasse = + SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); } @@ -97,25 +97,25 @@ options { } topdown - : entraNaClasse + : entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse - | aritmetica + | aritmetica | load - | loadint + | loadint | store - | storeint - | desvio + | storeint + | desvio | logica | pilha - | label + | label ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) { simboloClasse = ((SimboloClasse)$nome.simbolo); if ( $sup!=null ) { @@ -132,28 +132,28 @@ entraNaClasse ; declaracaoVariavel - : ^(FIELD_DECL ID tip =.) + : ^(FIELD_DECL ID tip =.) { $ID.simbolo.tipo = resolverTipo($tip.getText()); System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); } ; -getfield +getfield : ^('getfield' classe = . . campo = . tipo = .) - { - acessarCampo("getfield", $classe.getText(), $campo.getText()); + { + acessarCampo("getfield", $classe.getText(), $campo.getText()); } ; -putfield +putfield : ^('putfield' classe = . . campo = . tipo = .) { - acessarCampo("putfield", $classe.getText(), $campo.getText()); + acessarCampo("putfield", $classe.getText(), $campo.getText()); } ; -invokespecial +invokespecial : ^('invokespecial' classe = . metodo = . args = . tipo = .) { chamarConstrutorDefault($classe.getText()); @@ -182,7 +182,7 @@ load ; loadint - : ^(LOAD operacao = . operando = .) + : ^(LOAD operacao = . operando = .) { assembler.escreverOpcode($operacao.token, $operando.token); } @@ -228,5 +228,4 @@ label { assembler.definirLabel($operacao.token); } - ; - \ No newline at end of file + ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index 7779d72..b4df8bc 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__25=25 T__26=26 T__27=27 T__28=28 @@ -72,6 +71,7 @@ T__95=95 T__96=96 T__97=97 T__98=98 +T__99=99 ARITMETICA=4 BODY=5 DESVIO=6 @@ -86,84 +86,85 @@ LOAD=14 LOGICA=15 MAIN=16 MEMBRO_CLASSE=17 -NEWLINE=18 -NULL=19 -PILHA=20 -STORE=21 -TIPO_REF=22 -VOID=23 -WS=24 -'('=25 -'()'=26 -')'=27 -'.class'=28 -'.end class'=29 -'.end method'=30 -'.field'=31 -'.method'=32 -'.super'=33 -'/'=34 -':'=35 -'aconst_null'=36 -'aload'=37 -'aload_0'=38 -'aload_1'=39 -'aload_2'=40 -'aload_3'=41 -'areturn'=42 -'astore'=43 -'astore_0'=44 -'astore_1'=45 -'astore_2'=46 -'astore_3'=47 -'dup'=48 -'getfield'=49 -'goto'=50 -'iadd'=51 -'iand'=52 -'iconst_0'=53 -'iconst_1'=54 -'iconst_2'=55 -'iconst_3'=56 -'iconst_4'=57 -'iconst_5'=58 -'iconst_m1'=59 -'idiv'=60 -'if_icmpeq'=61 -'if_icmpge'=62 -'if_icmpgt'=63 -'if_icmple'=64 -'if_icmplt'=65 -'if_icmpne'=66 -'ifeq'=67 -'ifge'=68 -'ifgt'=69 -'ifle'=70 -'iflt'=71 -'ifne'=72 -'iinc'=73 -'iload'=74 -'iload_0'=75 -'iload_1'=76 -'iload_2'=77 -'iload_3'=78 -'imul'=79 -'ineg'=80 -'invokespecial'=81 -'ior'=82 -'irem'=83 -'ireturn'=84 -'istore'=85 -'istore_0'=86 -'istore_1'=87 -'istore_2'=88 -'istore_3'=89 -'isub'=90 -'ixor'=91 -'ldc'=92 -'new'=93 -'nop'=94 -'pop'=95 -'pop2'=96 -'putfield'=97 -'return'=98 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PILHA=21 +STORE=22 +TIPO_REF=23 +VOID=24 +WS=25 +'('=26 +'()'=27 +')'=28 +'.class'=29 +'.end class'=30 +'.end method'=31 +'.field'=32 +'.method'=33 +'.super'=34 +'/'=35 +':'=36 +'aconst_null'=37 +'aload'=38 +'aload_0'=39 +'aload_1'=40 +'aload_2'=41 +'aload_3'=42 +'areturn'=43 +'astore'=44 +'astore_0'=45 +'astore_1'=46 +'astore_2'=47 +'astore_3'=48 +'dup'=49 +'getfield'=50 +'goto'=51 +'iadd'=52 +'iand'=53 +'iconst_0'=54 +'iconst_1'=55 +'iconst_2'=56 +'iconst_3'=57 +'iconst_4'=58 +'iconst_5'=59 +'iconst_m1'=60 +'idiv'=61 +'if_icmpeq'=62 +'if_icmpge'=63 +'if_icmpgt'=64 +'if_icmple'=65 +'if_icmplt'=66 +'if_icmpne'=67 +'ifeq'=68 +'ifge'=69 +'ifgt'=70 +'ifle'=71 +'iflt'=72 +'ifne'=73 +'iinc'=74 +'iload'=75 +'iload_0'=76 +'iload_1'=77 +'iload_2'=78 +'iload_3'=79 +'imul'=80 +'ineg'=81 +'invokespecial'=82 +'ior'=83 +'irem'=84 +'ireturn'=85 +'istore'=86 +'istore_0'=87 +'istore_1'=88 +'istore_2'=89 +'istore_3'=90 +'isub'=91 +'ixor'=92 +'ldc'=93 +'new'=94 +'nop'=95 +'pop'=96 +'pop2'=97 +'putfield'=98 +'return'=99 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 7555f51..6974447 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 16:44:56 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 22:34:38 package br.ufpb.iged.interpretador.parser; @@ -11,7 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__25=25; public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; @@ -85,6 +84,7 @@ public class AssemblerLexer extends Lexer { public static final int T__96=96; public static final int T__97=97; public static final int T__98=98; + public static final int T__99=99; public static final int ARITMETICA=4; public static final int BODY=5; public static final int DESVIO=6; @@ -99,13 +99,14 @@ public class AssemblerLexer extends Lexer { public static final int LOGICA=15; public static final int MAIN=16; public static final int MEMBRO_CLASSE=17; - public static final int NEWLINE=18; - public static final int NULL=19; - public static final int PILHA=20; - public static final int STORE=21; - public static final int TIPO_REF=22; - public static final int VOID=23; - public static final int WS=24; + public static final int METHOD_DECL=18; + public static final int NEWLINE=19; + public static final int NULL=20; + public static final int PILHA=21; + public static final int STORE=22; + public static final int TIPO_REF=23; + public static final int VOID=24; + public static final int WS=25; // delegates // delegators @@ -122,10 +123,10 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__25" - public final void mT__25() throws RecognitionException { + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { try { - int _type = T__25; + int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' @@ -141,12 +142,12 @@ public final void mT__25() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__25" + // $ANTLR end "T__26" - // $ANTLR start "T__26" - public final void mT__26() throws RecognitionException { + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { try { - int _type = T__26; + int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' @@ -155,27 +156,6 @@ public final void mT__26() throws RecognitionException { - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__26" - - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { - try { - int _type = T__27; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' - { - match(')'); - } state.type = _type; @@ -192,12 +172,10 @@ public final void mT__28() throws RecognitionException { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' { - match(".class"); - - + match(')'); } @@ -215,10 +193,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' { - match(".end class"); + match(".class"); @@ -238,10 +216,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' { - match(".end method"); + match(".end class"); @@ -261,10 +239,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' { - match(".field"); + match(".end method"); @@ -284,10 +262,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' { - match(".method"); + match(".field"); @@ -307,10 +285,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.super' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.super' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.method' { - match(".super"); + match(".method"); @@ -330,10 +308,12 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '/' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.super' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.super' { - match('/'); + match(".super"); + + } @@ -351,10 +331,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( ':' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '/' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '/' { - match(':'); + match('/'); } @@ -372,12 +352,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( ':' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ':' { - match("aconst_null"); - - + match(':'); } @@ -395,10 +373,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aconst_null' { - match("aload"); + match("aconst_null"); @@ -418,10 +396,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload' { - match("aload_0"); + match("aload"); @@ -441,10 +419,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_0' { - match("aload_1"); + match("aload_0"); @@ -464,10 +442,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_1' { - match("aload_2"); + match("aload_1"); @@ -487,10 +465,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_2' { - match("aload_3"); + match("aload_2"); @@ -510,10 +488,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'areturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_3' { - match("areturn"); + match("aload_3"); @@ -533,10 +511,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'areturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'areturn' { - match("astore"); + match("areturn"); @@ -556,10 +534,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore' { - match("astore_0"); + match("astore"); @@ -579,10 +557,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_0' { - match("astore_1"); + match("astore_0"); @@ -602,10 +580,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_1' { - match("astore_2"); + match("astore_1"); @@ -625,10 +603,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_2' { - match("astore_3"); + match("astore_2"); @@ -648,10 +626,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'dup' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_3' { - match("dup"); + match("astore_3"); @@ -671,10 +649,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'dup' { - match("getfield"); + match("dup"); @@ -694,10 +672,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'goto' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'goto' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'getfield' { - match("goto"); + match("getfield"); @@ -717,10 +695,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iadd' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'goto' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'goto' { - match("iadd"); + match("goto"); @@ -740,10 +718,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iand' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iadd' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iadd' { - match("iand"); + match("iadd"); @@ -763,10 +741,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iand' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iand' { - match("iconst_0"); + match("iand"); @@ -786,10 +764,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_0' { - match("iconst_1"); + match("iconst_0"); @@ -809,10 +787,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_1' { - match("iconst_2"); + match("iconst_1"); @@ -832,10 +810,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_2' { - match("iconst_3"); + match("iconst_2"); @@ -855,10 +833,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_3' { - match("iconst_4"); + match("iconst_3"); @@ -878,10 +856,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_4' { - match("iconst_5"); + match("iconst_4"); @@ -901,10 +879,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_5' { - match("iconst_m1"); + match("iconst_5"); @@ -924,10 +902,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'idiv' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_m1' { - match("idiv"); + match("iconst_m1"); @@ -947,10 +925,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmpeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'idiv' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'idiv' { - match("if_icmpeq"); + match("idiv"); @@ -970,10 +948,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmpeq' { - match("if_icmpge"); + match("if_icmpeq"); @@ -993,10 +971,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpge' { - match("if_icmpgt"); + match("if_icmpge"); @@ -1016,10 +994,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmple' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpgt' { - match("if_icmple"); + match("if_icmpgt"); @@ -1039,10 +1017,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmplt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmple' { - match("if_icmplt"); + match("if_icmple"); @@ -1062,10 +1040,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmpne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmplt' { - match("if_icmpne"); + match("if_icmplt"); @@ -1085,10 +1063,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ifeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmpne' { - match("ifeq"); + match("if_icmpne"); @@ -1108,10 +1086,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ifeq' { - match("ifge"); + match("ifeq"); @@ -1131,10 +1109,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifge' { - match("ifgt"); + match("ifge"); @@ -1154,10 +1132,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifle' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifle' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifgt' { - match("ifle"); + match("ifgt"); @@ -1177,10 +1155,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iflt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iflt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifle' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifle' { - match("iflt"); + match("ifle"); @@ -1200,10 +1178,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iflt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iflt' { - match("ifne"); + match("iflt"); @@ -1223,10 +1201,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iinc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifne' { - match("iinc"); + match("ifne"); @@ -1246,10 +1224,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iinc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iinc' { - match("iload"); + match("iinc"); @@ -1269,10 +1247,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload' { - match("iload_0"); + match("iload"); @@ -1292,10 +1270,10 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload_0' { - match("iload_1"); + match("iload_0"); @@ -1315,10 +1293,10 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload_1' { - match("iload_2"); + match("iload_1"); @@ -1338,10 +1316,10 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_2' { - match("iload_3"); + match("iload_2"); @@ -1361,10 +1339,10 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'imul' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_3' { - match("imul"); + match("iload_3"); @@ -1384,10 +1362,10 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'ineg' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'imul' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'imul' { - match("ineg"); + match("imul"); @@ -1407,10 +1385,10 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'ineg' { - match("invokespecial"); + match("ineg"); @@ -1430,10 +1408,10 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ior' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'invokespecial' { - match("ior"); + match("invokespecial"); @@ -1452,11 +1430,11 @@ public final void mT__82() throws RecognitionException { public final void mT__83() throws RecognitionException { try { int _type = T__83; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'irem' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'irem' + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ior' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ior' { - match("irem"); + match("ior"); @@ -1476,10 +1454,10 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ireturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'irem' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'irem' { - match("ireturn"); + match("irem"); @@ -1499,10 +1477,10 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'istore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'istore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ireturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ireturn' { - match("istore"); + match("ireturn"); @@ -1522,10 +1500,10 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'istore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'istore' { - match("istore_0"); + match("istore"); @@ -1545,10 +1523,10 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'istore_0' { - match("istore_1"); + match("istore_0"); @@ -1568,10 +1546,10 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'istore_1' { - match("istore_2"); + match("istore_1"); @@ -1591,10 +1569,10 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore_2' { - match("istore_3"); + match("istore_2"); @@ -1614,10 +1592,10 @@ public final void mT__90() throws RecognitionException { try { int _type = T__90; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'isub' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_3' { - match("isub"); + match("istore_3"); @@ -1637,10 +1615,10 @@ public final void mT__91() throws RecognitionException { try { int _type = T__91; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'ixor' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'isub' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'isub' { - match("ixor"); + match("isub"); @@ -1660,10 +1638,10 @@ public final void mT__92() throws RecognitionException { try { int _type = T__92; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'ldc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'ldc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'ixor' { - match("ldc"); + match("ixor"); @@ -1683,10 +1661,10 @@ public final void mT__93() throws RecognitionException { try { int _type = T__93; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'new' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'new' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'ldc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'ldc' { - match("new"); + match("ldc"); @@ -1706,10 +1684,10 @@ public final void mT__94() throws RecognitionException { try { int _type = T__94; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'nop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'new' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'new' { - match("nop"); + match("new"); @@ -1729,10 +1707,10 @@ public final void mT__95() throws RecognitionException { try { int _type = T__95; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: ( 'pop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:9: 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'nop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'nop' { - match("pop"); + match("nop"); @@ -1752,10 +1730,10 @@ public final void mT__96() throws RecognitionException { try { int _type = T__96; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: ( 'pop2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:9: 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: ( 'pop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:9: 'pop' { - match("pop2"); + match("pop"); @@ -1775,10 +1753,10 @@ public final void mT__97() throws RecognitionException { try { int _type = T__97; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:9: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: ( 'pop2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:9: 'pop2' { - match("putfield"); + match("pop2"); @@ -1798,6 +1776,29 @@ public final void mT__98() throws RecognitionException { try { int _type = T__98; int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:9: 'putfield' + { + match("putfield"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__98" + + // $ANTLR start "T__99" + public final void mT__99() throws RecognitionException { + try { + int _type = T__99; + int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: ( 'return' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:9: 'return' { @@ -1814,15 +1815,15 @@ public final void mT__98() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__98" + // $ANTLR end "T__99" // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:211:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:211:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:8: '' { match(""); @@ -1844,8 +1845,8 @@ public final void mMAIN() throws RecognitionException { try { int _type = MAIN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:7: ( 'main' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:10: 'main' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:6: ( 'main' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:8: 'main' { match("main"); @@ -1867,8 +1868,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:215:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:215:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:7: 'I' { match('I'); @@ -1888,8 +1889,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:8: 'V' { match('V'); @@ -1909,10 +1910,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1931,7 +1932,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:9: 'null' { match("null"); @@ -1940,7 +1941,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:18: 'NULL' { match("NULL"); @@ -1968,10 +1969,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1980,7 +1981,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: '-' { match('-'); @@ -1990,7 +1991,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2045,15 +2046,15 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:11: 'L' ID ( '/' ID )* { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:18: ( '/' ID )* loop4: do { int alt4=2; @@ -2066,7 +2067,7 @@ public final void mTIPO_REF() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:19: '/' ID { match('/'); @@ -2098,8 +2099,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2111,7 +2112,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop5: do { int alt5=2; @@ -2161,8 +2162,8 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:9: ( '\\n' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:9: ( '\\n' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:11: '\\n' { match('\n'); @@ -2182,8 +2183,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2209,598 +2210,598 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | INIT | MAIN | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | INIT | MAIN | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) int alt6=84; alt6 = dfa6.predict(input); switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__25 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__26 { - mT__25(); + mT__26(); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__26 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__27 { - mT__26(); + mT__27(); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__27 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__28 { - mT__27(); + mT__28(); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__28 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__29 { - mT__28(); + mT__29(); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__29 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__30 { - mT__29(); + mT__30(); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__30 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__31 { - mT__30(); + mT__31(); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__31 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__32 { - mT__31(); + mT__32(); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__32 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__33 { - mT__32(); + mT__33(); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__33 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__34 { - mT__33(); + mT__34(); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__34 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__35 { - mT__34(); + mT__35(); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__35 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__36 { - mT__35(); + mT__36(); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__36 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__37 { - mT__36(); + mT__37(); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__37 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__38 { - mT__37(); + mT__38(); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__38 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__39 { - mT__38(); + mT__39(); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__39 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__40 { - mT__39(); + mT__40(); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__40 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__41 { - mT__40(); + mT__41(); } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__41 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__42 { - mT__41(); + mT__42(); } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__42 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__43 { - mT__42(); + mT__43(); } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__43 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__44 { - mT__43(); + mT__44(); } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__44 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__45 { - mT__44(); + mT__45(); } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__45 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__46 { - mT__45(); + mT__46(); } break; case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__46 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__47 { - mT__46(); + mT__47(); } break; case 23 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__47 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__48 { - mT__47(); + mT__48(); } break; case 24 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__48 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__49 { - mT__48(); + mT__49(); } break; case 25 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__49 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__50 { - mT__49(); + mT__50(); } break; case 26 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__50 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__51 { - mT__50(); + mT__51(); } break; case 27 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__51 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__52 { - mT__51(); + mT__52(); } break; case 28 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__52 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__53 { - mT__52(); + mT__53(); } break; case 29 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__53 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__54 { - mT__53(); + mT__54(); } break; case 30 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__54 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__55 { - mT__54(); + mT__55(); } break; case 31 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__55 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__56 { - mT__55(); + mT__56(); } break; case 32 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__56 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__57 { - mT__56(); + mT__57(); } break; case 33 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__57 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__58 { - mT__57(); + mT__58(); } break; case 34 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__58 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__59 { - mT__58(); + mT__59(); } break; case 35 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__59 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__60 { - mT__59(); + mT__60(); } break; case 36 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__60 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__61 { - mT__60(); + mT__61(); } break; case 37 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__61 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__62 { - mT__61(); + mT__62(); } break; case 38 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__62 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__63 { - mT__62(); + mT__63(); } break; case 39 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__63 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__64 { - mT__63(); + mT__64(); } break; case 40 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__64 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__65 { - mT__64(); + mT__65(); } break; case 41 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__65 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__66 { - mT__65(); + mT__66(); } break; case 42 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__66 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__67 { - mT__66(); + mT__67(); } break; case 43 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__67 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__68 { - mT__67(); + mT__68(); } break; case 44 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__68 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__69 { - mT__68(); + mT__69(); } break; case 45 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__69 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__70 { - mT__69(); + mT__70(); } break; case 46 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__70 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__71 { - mT__70(); + mT__71(); } break; case 47 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__71 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__72 { - mT__71(); + mT__72(); } break; case 48 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__72 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__73 { - mT__72(); + mT__73(); } break; case 49 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__73 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__74 { - mT__73(); + mT__74(); } break; case 50 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__74 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__75 { - mT__74(); + mT__75(); } break; case 51 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__75 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__76 { - mT__75(); + mT__76(); } break; case 52 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__76 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__77 { - mT__76(); + mT__77(); } break; case 53 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__77 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__78 { - mT__77(); + mT__78(); } break; case 54 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__78 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__79 { - mT__78(); + mT__79(); } break; case 55 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__79 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__80 { - mT__79(); + mT__80(); } break; case 56 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__80 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__81 { - mT__80(); + mT__81(); } break; case 57 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__81 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__82 { - mT__81(); + mT__82(); } break; case 58 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__82 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__83 { - mT__82(); + mT__83(); } break; case 59 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__83 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__84 { - mT__83(); + mT__84(); } break; case 60 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__84 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__85 { - mT__84(); + mT__85(); } break; case 61 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__85 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__86 { - mT__85(); + mT__86(); } break; case 62 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__86 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__87 { - mT__86(); + mT__87(); } break; case 63 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__87 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__88 { - mT__87(); + mT__88(); } break; case 64 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__88 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__89 { - mT__88(); + mT__89(); } break; case 65 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__89 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__90 { - mT__89(); + mT__90(); } break; case 66 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__90 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__91 { - mT__90(); + mT__91(); } break; case 67 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__91 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__92 { - mT__91(); + mT__92(); } break; case 68 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__92 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__93 { - mT__92(); + mT__93(); } break; case 69 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__93 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__94 { - mT__93(); + mT__94(); } break; case 70 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__94 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__95 { - mT__94(); + mT__95(); } break; case 71 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__95 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__96 { - mT__95(); + mT__96(); } break; case 72 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:436: T__96 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:436: T__97 { - mT__96(); + mT__97(); } break; case 73 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:442: T__97 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:442: T__98 { - mT__97(); + mT__98(); } break; case 74 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:448: T__98 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:448: T__99 { - mT__98(); + mT__99(); } @@ -3247,7 +3248,7 @@ public DFA6(BaseRecognizer recognizer) { this.transition = DFA6_transition; } public String getDescription() { - return "1:1: Tokens : ( T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | INIT | MAIN | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; + return "1:1: Tokens : ( T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | INIT | MAIN | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 49a3e3f..9677194 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 16:44:55 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 22:34:37 package br.ufpb.iged.interpretador.parser; @@ -18,11 +18,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__25=25; public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; @@ -96,6 +95,7 @@ public abstract class AssemblerParser extends Parser { public static final int T__96=96; public static final int T__97=97; public static final int T__98=98; + public static final int T__99=99; public static final int ARITMETICA=4; public static final int BODY=5; public static final int DESVIO=6; @@ -110,13 +110,14 @@ public abstract class AssemblerParser extends Parser { public static final int LOGICA=15; public static final int MAIN=16; public static final int MEMBRO_CLASSE=17; - public static final int NEWLINE=18; - public static final int NULL=19; - public static final int PILHA=20; - public static final int STORE=21; - public static final int TIPO_REF=22; - public static final int VOID=23; - public static final int WS=24; + public static final int METHOD_DECL=18; + public static final int NEWLINE=19; + public static final int NULL=20; + public static final int PILHA=21; + public static final int STORE=22; + public static final int TIPO_REF=23; + public static final int VOID=24; + public static final int WS=25; // delegates public Parser[] getDelegates() { @@ -161,7 +162,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:1: programa : ( instrucao )* ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: programa : ( instrucao )* ; public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -174,28 +175,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:10: ( ( instrucao )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: ( instrucao )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: ( instrucao )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==28||(LA1_0 >= 36 && LA1_0 <= 41)||(LA1_0 >= 43 && LA1_0 <= 83)||(LA1_0 >= 85 && LA1_0 <= 97)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==29||(LA1_0 >= 37 && LA1_0 <= 42)||(LA1_0 >= 44 && LA1_0 <= 84)||(LA1_0 >= 86 && LA1_0 <= 98)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:12: instrucao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: instrucao { - pushFollow(FOLLOW_instrucao_in_programa112); + pushFollow(FOLLOW_instrucao_in_programa117); instrucao1=instrucao(); state._fsp--; @@ -242,7 +243,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -259,14 +260,14 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST string_literal4_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:11: ( operacao | definicaoClasse ( '.end class' )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:11: ( operacao | definicaoClasse ( '.end class' )? ) int alt3=2; int LA3_0 = input.LA(1); - if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 36 && LA3_0 <= 41)||(LA3_0 >= 43 && LA3_0 <= 83)||(LA3_0 >= 85 && LA3_0 <= 97)) ) { + if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 37 && LA3_0 <= 42)||(LA3_0 >= 44 && LA3_0 <= 84)||(LA3_0 >= 86 && LA3_0 <= 98)) ) { alt3=1; } - else if ( (LA3_0==28) ) { + else if ( (LA3_0==29) ) { alt3=2; } else { @@ -278,12 +279,12 @@ else if ( (LA3_0==28) ) { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:13: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:13: operacao { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_operacao_in_instrucao140); + pushFollow(FOLLOW_operacao_in_instrucao145); operacao2=operacao(); state._fsp--; @@ -293,30 +294,30 @@ else if ( (LA3_0==28) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:13: definicaoClasse ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:13: definicaoClasse ( '.end class' )? { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_definicaoClasse_in_instrucao155); + pushFollow(FOLLOW_definicaoClasse_in_instrucao159); definicaoClasse3=definicaoClasse(); state._fsp--; adaptor.addChild(root_0, definicaoClasse3.getTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:29: ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:29: ( '.end class' )? int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==29) ) { + if ( (LA2_0==30) ) { alt2=1; } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:30: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:30: '.end class' { - string_literal4=(Token)match(input,29,FOLLOW_29_in_instrucao158); + string_literal4=(Token)match(input,30,FOLLOW_30_in_instrucao162); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -362,7 +363,7 @@ public static class operacao_return extends ParserRuleReturnScope { // $ANTLR start "operacao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: operacao : ( label comando | comando ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: operacao : ( label comando | comando ) ; public final AssemblerParser.operacao_return operacao() throws RecognitionException { AssemblerParser.operacao_return retval = new AssemblerParser.operacao_return(); retval.start = input.LT(1); @@ -379,20 +380,20 @@ public final AssemblerParser.operacao_return operacao() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:10: ( ( label comando | comando ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:10: ( ( label comando | comando ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:12: ( label comando | comando ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:12: ( label comando | comando ) int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==ID) ) { alt4=1; } - else if ( (LA4_0==NEWLINE||(LA4_0 >= 36 && LA4_0 <= 41)||(LA4_0 >= 43 && LA4_0 <= 83)||(LA4_0 >= 85 && LA4_0 <= 97)) ) { + else if ( (LA4_0==NEWLINE||(LA4_0 >= 37 && LA4_0 <= 42)||(LA4_0 >= 44 && LA4_0 <= 84)||(LA4_0 >= 86 && LA4_0 <= 98)) ) { alt4=2; } else { @@ -404,16 +405,16 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 36 && LA4_0 <= 41)||(LA4_0 >= 43 && LA4_0 < } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:13: label comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:13: label comando { - pushFollow(FOLLOW_label_in_operacao180); + pushFollow(FOLLOW_label_in_operacao184); label5=label(); state._fsp--; adaptor.addChild(root_0, label5.getTree()); - pushFollow(FOLLOW_comando_in_operacao182); + pushFollow(FOLLOW_comando_in_operacao186); comando6=comando(); state._fsp--; @@ -423,9 +424,9 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 36 && LA4_0 <= 41)||(LA4_0 >= 43 && LA4_0 < } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:29: comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:29: comando { - pushFollow(FOLLOW_comando_in_operacao186); + pushFollow(FOLLOW_comando_in_operacao190); comando7=comando(); state._fsp--; @@ -469,7 +470,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: label : a= ID ':' -> ^( LABEL $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: label : a= ID ':' -> ^( LABEL $a) ; public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -483,18 +484,18 @@ public final AssemblerParser.label_return label() throws RecognitionException { BytecodesAST a_tree=null; BytecodesAST char_literal8_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: (a= ID ':' -> ^( LABEL $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: a= ID ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label208); + a=(Token)match(input,ID,FOLLOW_ID_in_label212); stream_ID.add(a); - char_literal8=(Token)match(input,35,FOLLOW_35_in_label210); - stream_35.add(char_literal8); + char_literal8=(Token)match(input,36,FOLLOW_36_in_label214); + stream_36.add(char_literal8); // AST REWRITE @@ -509,9 +510,9 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 53:20: -> ^( LABEL $a) + // 54:20: -> ^( LABEL $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:23: ^( LABEL $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:23: ^( LABEL $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -559,7 +560,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ; public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -592,81 +593,80 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio BytecodesAST NEWLINE19_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? int alt5=11; switch ( input.LA(1) ) { - case 49: - case 81: - case 93: - case 97: + case 50: + case 82: + case 94: + case 98: { alt5=1; } break; - case 51: - case 60: - case 73: - case 79: + case 52: + case 61: + case 74: case 80: - case 83: - case 90: + case 81: + case 84: + case 91: { alt5=2; } break; - case 36: - case 38: + case 37: case 39: case 40: case 41: - case 53: + case 42: case 54: case 55: case 56: case 57: case 58: case 59: - case 75: + case 60: case 76: case 77: case 78: + case 79: { alt5=3; } break; - case 37: - case 74: - case 92: + case 38: + case 75: + case 93: { alt5=4; } break; - case 44: case 45: case 46: case 47: - case 86: + case 48: case 87: case 88: case 89: + case 90: { alt5=5; } break; - case 43: - case 85: + case 44: + case 86: { alt5=6; } break; - case 50: - case 61: + case 51: case 62: case 63: case 64: @@ -678,25 +678,26 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio case 70: case 71: case 72: + case 73: { alt5=7; } break; - case 52: - case 82: - case 91: + case 53: + case 83: + case 92: { alt5=8; } break; - case 48: - case 95: + case 49: case 96: + case 97: { alt5=9; } break; - case 94: + case 95: { alt5=10; } @@ -705,9 +706,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:17: manipulacaoObjetos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:12: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_comando233); + pushFollow(FOLLOW_manipulacaoObjetos_in_comando232); manipulacaoObjetos9=manipulacaoObjetos(); state._fsp--; @@ -717,9 +718,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:17: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:17: aritmetica { - pushFollow(FOLLOW_aritmetica_in_comando252); + pushFollow(FOLLOW_aritmetica_in_comando250); aritmetica10=aritmetica(); state._fsp--; @@ -729,9 +730,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:17: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: load { - pushFollow(FOLLOW_load_in_comando271); + pushFollow(FOLLOW_load_in_comando268); load11=load(); state._fsp--; @@ -741,9 +742,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: loadint { - pushFollow(FOLLOW_loadint_in_comando289); + pushFollow(FOLLOW_loadint_in_comando286); loadint12=loadint(); state._fsp--; @@ -753,9 +754,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: store { - pushFollow(FOLLOW_store_in_comando308); + pushFollow(FOLLOW_store_in_comando304); store13=store(); state._fsp--; @@ -765,9 +766,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: storeint { - pushFollow(FOLLOW_storeint_in_comando326); + pushFollow(FOLLOW_storeint_in_comando322); storeint14=storeint(); state._fsp--; @@ -777,9 +778,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: desvio { - pushFollow(FOLLOW_desvio_in_comando345); + pushFollow(FOLLOW_desvio_in_comando340); desvio15=desvio(); state._fsp--; @@ -789,9 +790,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: logica { - pushFollow(FOLLOW_logica_in_comando364); + pushFollow(FOLLOW_logica_in_comando358); logica16=logica(); state._fsp--; @@ -801,9 +802,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: pilha { - pushFollow(FOLLOW_pilha_in_comando382); + pushFollow(FOLLOW_pilha_in_comando376); pilha17=pilha(); state._fsp--; @@ -813,9 +814,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: 'nop' { - string_literal18=(Token)match(input,94,FOLLOW_94_in_comando401); + string_literal18=(Token)match(input,95,FOLLOW_95_in_comando394); string_literal18_tree = (BytecodesAST)adaptor.create(string_literal18) ; @@ -828,7 +829,7 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } - NEWLINE19=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando417); + NEWLINE19=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando410); NEWLINE19_tree = (BytecodesAST)adaptor.create(NEWLINE19) ; @@ -866,7 +867,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -891,44 +892,44 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST NEWLINE26_tree=null; RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal20=(Token)match(input,28,FOLLOW_28_in_definicaoClasse443); - stream_28.add(string_literal20); + string_literal20=(Token)match(input,29,FOLLOW_29_in_definicaoClasse436); + stream_29.add(string_literal20); - ID21=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse445); + ID21=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse438); stream_ID.add(ID21); - NEWLINE22=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse447); + NEWLINE22=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse440); stream_NEWLINE.add(NEWLINE22); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:27: ( superClasse NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:27: ( superClasse NEWLINE )? int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==33) ) { + if ( (LA6_0==34) ) { alt6=1; } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:28: superClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:28: superClasse NEWLINE { - pushFollow(FOLLOW_superClasse_in_definicaoClasse450); + pushFollow(FOLLOW_superClasse_in_definicaoClasse443); superClasse23=superClasse(); state._fsp--; stream_superClasse.add(superClasse23.getTree()); - NEWLINE24=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse452); + NEWLINE24=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse445); stream_NEWLINE.add(NEWLINE24); @@ -938,30 +939,30 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:50: ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:50: ( membroClasse NEWLINE )+ int cnt7=0; loop7: do { int alt7=2; int LA7_0 = input.LA(1); - if ( ((LA7_0 >= 31 && LA7_0 <= 32)) ) { + if ( ((LA7_0 >= 32 && LA7_0 <= 33)) ) { alt7=1; } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:51: membroClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:51: membroClasse NEWLINE { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse457); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse450); membroClasse25=membroClasse(); state._fsp--; stream_membroClasse.add(membroClasse25.getTree()); - NEWLINE26=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse459); + NEWLINE26=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse452); stream_NEWLINE.add(NEWLINE26); @@ -979,7 +980,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 28, ID, membroClasse, superClasse + // elements: ID, superClasse, 29, membroClasse // token labels: // rule labels: retval // token list labels: @@ -989,27 +990,27 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 69:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 70:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_28.nextNode() + stream_29.nextNode() , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:29: ( superClasse )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:29: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -1067,7 +1068,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1081,17 +1082,17 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal27_tree=null; BytecodesAST TIPO_REF28_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:15: '.super' TIPO_REF { - string_literal27=(Token)match(input,33,FOLLOW_33_in_superClasse535); - stream_33.add(string_literal27); + string_literal27=(Token)match(input,34,FOLLOW_34_in_superClasse513); + stream_34.add(string_literal27); - TIPO_REF28=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse537); + TIPO_REF28=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse515); stream_TIPO_REF.add(TIPO_REF28); @@ -1106,9 +1107,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 72:33: -> ^( EXTENDS TIPO_REF ) + // 73:33: -> ^( EXTENDS TIPO_REF ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:36: ^( EXTENDS TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:36: ^( EXTENDS TIPO_REF ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1158,7 +1159,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( '.method' INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( '.method' MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '(' (tipos+= tipo )* ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( '.method' ID $tipos ^( BODY ( operacao )* ) $ret) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1185,12 +1186,17 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti Token string_literal48=null; Token string_literal49=null; Token ID50=null; - Token char_literal51=null; - Token char_literal52=null; - Token NEWLINE54=null; - Token NEWLINE56=null; + Token string_literal51=null; + Token NEWLINE53=null; + Token NEWLINE55=null; + Token string_literal56=null; Token string_literal57=null; - List list_tipos=null; + Token ID58=null; + Token char_literal59=null; + Token char_literal61=null; + Token NEWLINE63=null; + Token NEWLINE65=null; + Token string_literal66=null; AssemblerParser.retorno_return ret =null; AssemblerParser.tipo_return tipo31 =null; @@ -1199,11 +1205,17 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti AssemblerParser.operacao_return operacao46 =null; - AssemblerParser.tipo_return tipo53 =null; + AssemblerParser.tipo_return tipo52 =null; + + AssemblerParser.operacao_return operacao54 =null; + + AssemblerParser.params_return params60 =null; + + AssemblerParser.tipo_return tipo62 =null; + + AssemblerParser.operacao_return operacao64 =null; - AssemblerParser.operacao_return operacao55 =null; - RuleReturnScope tipos = null; BytecodesAST string_literal29_tree=null; BytecodesAST ID30_tree=null; BytecodesAST string_literal32_tree=null; @@ -1223,35 +1235,42 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST string_literal48_tree=null; BytecodesAST string_literal49_tree=null; BytecodesAST ID50_tree=null; - BytecodesAST char_literal51_tree=null; - BytecodesAST char_literal52_tree=null; - BytecodesAST NEWLINE54_tree=null; - BytecodesAST NEWLINE56_tree=null; + BytecodesAST string_literal51_tree=null; + BytecodesAST NEWLINE53_tree=null; + BytecodesAST NEWLINE55_tree=null; + BytecodesAST string_literal56_tree=null; BytecodesAST string_literal57_tree=null; - RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); + BytecodesAST ID58_tree=null; + BytecodesAST char_literal59_tree=null; + BytecodesAST char_literal61_tree=null; + BytecodesAST NEWLINE63_tree=null; + BytecodesAST NEWLINE65_tree=null; + BytecodesAST string_literal66_tree=null; RewriteRuleTokenStream stream_MAIN=new RewriteRuleTokenStream(adaptor,"token MAIN"); - RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); - RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); + RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); - RewriteRuleTokenStream stream_25=new RewriteRuleTokenStream(adaptor,"token 25"); RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26"); + RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); + RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); RewriteRuleSubtreeStream stream_retorno=new RewriteRuleSubtreeStream(adaptor,"rule retorno"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); + RewriteRuleSubtreeStream stream_params=new RewriteRuleSubtreeStream(adaptor,"rule params"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( '.method' INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( '.method' MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '(' (tipos+= tipo )* ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( '.method' ID $tipos ^( BODY ( operacao )* ) $ret) ) - int alt12=4; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) ) + int alt12=5; int LA12_0 = input.LA(1); - if ( (LA12_0==31) ) { + if ( (LA12_0==32) ) { alt12=1; } - else if ( (LA12_0==32) ) { + else if ( (LA12_0==33) ) { switch ( input.LA(2) ) { case INIT: { @@ -1265,7 +1284,21 @@ else if ( (LA12_0==32) ) { break; case ID: { - alt12=4; + int LA12_5 = input.LA(3); + + if ( (LA12_5==27) ) { + alt12=4; + } + else if ( (LA12_5==26) ) { + alt12=5; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 12, 5, input); + + throw nvae; + + } } break; default: @@ -1286,17 +1319,17 @@ else if ( (LA12_0==32) ) { } switch (alt12) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: '.field' ID tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: '.field' ID tipo { - string_literal29=(Token)match(input,31,FOLLOW_31_in_membroClasse559); - stream_31.add(string_literal29); + string_literal29=(Token)match(input,32,FOLLOW_32_in_membroClasse536); + stream_32.add(string_literal29); - ID30=(Token)match(input,ID,FOLLOW_ID_in_membroClasse561); + ID30=(Token)match(input,ID,FOLLOW_ID_in_membroClasse538); stream_ID.add(ID30); - pushFollow(FOLLOW_tipo_in_membroClasse563); + pushFollow(FOLLOW_tipo_in_membroClasse540); tipo31=tipo(); state._fsp--; @@ -1304,7 +1337,7 @@ else if ( (LA12_0==32) ) { stream_tipo.add(tipo31.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1314,9 +1347,9 @@ else if ( (LA12_0==32) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 75:24: -> ^( FIELD_DECL ID tipo ) + // 76:24: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:27: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:27: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1340,44 +1373,44 @@ else if ( (LA12_0==32) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' { - string_literal32=(Token)match(input,32,FOLLOW_32_in_membroClasse582); - stream_32.add(string_literal32); + string_literal32=(Token)match(input,33,FOLLOW_33_in_membroClasse558); + stream_33.add(string_literal32); - INIT33=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse584); + INIT33=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse560); stream_INIT.add(INIT33); - string_literal34=(Token)match(input,26,FOLLOW_26_in_membroClasse586); - stream_26.add(string_literal34); + string_literal34=(Token)match(input,27,FOLLOW_27_in_membroClasse562); + stream_27.add(string_literal34); - VOID35=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse588); + VOID35=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse564); stream_VOID.add(VOID35); - NEWLINE36=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse590); + NEWLINE36=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse566); stream_NEWLINE.add(NEWLINE36); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:40: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:40: ( operacao )* loop8: do { int alt8=2; int LA8_0 = input.LA(1); - if ( (LA8_0==ID||LA8_0==NEWLINE||(LA8_0 >= 36 && LA8_0 <= 41)||(LA8_0 >= 43 && LA8_0 <= 83)||(LA8_0 >= 85 && LA8_0 <= 97)) ) { + if ( (LA8_0==ID||LA8_0==NEWLINE||(LA8_0 >= 37 && LA8_0 <= 42)||(LA8_0 >= 44 && LA8_0 <= 84)||(LA8_0 >= 86 && LA8_0 <= 98)) ) { alt8=1; } switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:40: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:40: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse592); + pushFollow(FOLLOW_operacao_in_membroClasse568); operacao37=operacao(); state._fsp--; @@ -1393,20 +1426,20 @@ else if ( (LA12_0==32) ) { } while (true); - string_literal38=(Token)match(input,98,FOLLOW_98_in_membroClasse595); - stream_98.add(string_literal38); + string_literal38=(Token)match(input,99,FOLLOW_99_in_membroClasse571); + stream_99.add(string_literal38); - NEWLINE39=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse597); + NEWLINE39=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse573); stream_NEWLINE.add(NEWLINE39); - string_literal40=(Token)match(input,30,FOLLOW_30_in_membroClasse599); - stream_30.add(string_literal40); + string_literal40=(Token)match(input,31,FOLLOW_31_in_membroClasse575); + stream_31.add(string_literal40); // AST REWRITE - // elements: 32, operacao, INIT + // elements: operacao, INIT // token labels: // rule labels: retval // token list labels: @@ -1416,27 +1449,27 @@ else if ( (LA12_0==32) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 77:2: -> ^( '.method' INIT ^( BODY ( operacao )* ) ) + // 78:2: -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:5: ^( '.method' INIT ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:5: ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_32.nextNode() + (BytecodesAST)adaptor.create(METHOD_DECL, "METHOD_DECL") , root_1); adaptor.addChild(root_1, stream_INIT.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:22: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:24: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:29: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:31: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1457,44 +1490,44 @@ else if ( (LA12_0==32) ) { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' { - string_literal41=(Token)match(input,32,FOLLOW_32_in_membroClasse623); - stream_32.add(string_literal41); + string_literal41=(Token)match(input,33,FOLLOW_33_in_membroClasse599); + stream_33.add(string_literal41); - MAIN42=(Token)match(input,MAIN,FOLLOW_MAIN_in_membroClasse625); + MAIN42=(Token)match(input,MAIN,FOLLOW_MAIN_in_membroClasse601); stream_MAIN.add(MAIN42); - string_literal43=(Token)match(input,26,FOLLOW_26_in_membroClasse627); - stream_26.add(string_literal43); + string_literal43=(Token)match(input,27,FOLLOW_27_in_membroClasse603); + stream_27.add(string_literal43); - VOID44=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse629); + VOID44=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse605); stream_VOID.add(VOID44); - NEWLINE45=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse631); + NEWLINE45=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse607); stream_NEWLINE.add(NEWLINE45); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:40: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:40: ( operacao )* loop9: do { int alt9=2; int LA9_0 = input.LA(1); - if ( (LA9_0==ID||LA9_0==NEWLINE||(LA9_0 >= 36 && LA9_0 <= 41)||(LA9_0 >= 43 && LA9_0 <= 83)||(LA9_0 >= 85 && LA9_0 <= 97)) ) { + if ( (LA9_0==ID||LA9_0==NEWLINE||(LA9_0 >= 37 && LA9_0 <= 42)||(LA9_0 >= 44 && LA9_0 <= 84)||(LA9_0 >= 86 && LA9_0 <= 98)) ) { alt9=1; } switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:40: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:40: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse633); + pushFollow(FOLLOW_operacao_in_membroClasse609); operacao46=operacao(); state._fsp--; @@ -1510,23 +1543,23 @@ else if ( (LA12_0==32) ) { } while (true); - pushFollow(FOLLOW_retorno_in_membroClasse640); + pushFollow(FOLLOW_retorno_in_membroClasse616); ret=retorno(); state._fsp--; stream_retorno.add(ret.getTree()); - NEWLINE47=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse642); + NEWLINE47=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse618); stream_NEWLINE.add(NEWLINE47); - string_literal48=(Token)match(input,30,FOLLOW_30_in_membroClasse644); - stream_30.add(string_literal48); + string_literal48=(Token)match(input,31,FOLLOW_31_in_membroClasse620); + stream_31.add(string_literal48); // AST REWRITE - // elements: ret, 32, MAIN, operacao + // elements: ret, operacao, MAIN // token labels: // rule labels: ret, retval // token list labels: @@ -1537,27 +1570,27 @@ else if ( (LA12_0==32) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 79:9: -> ^( '.method' MAIN ^( BODY ( operacao )* ) $ret) + // 80:9: -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:12: ^( '.method' MAIN ^( BODY ( operacao )* ) $ret) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:12: ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_32.nextNode() + (BytecodesAST)adaptor.create(METHOD_DECL, "METHOD_DECL") , root_1); adaptor.addChild(root_1, stream_MAIN.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:29: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:31: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:36: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:38: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1580,44 +1613,52 @@ else if ( (LA12_0==32) ) { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.method' ID '(' (tipos+= tipo )* ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:7: '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' { - string_literal49=(Token)match(input,32,FOLLOW_32_in_membroClasse678); - stream_32.add(string_literal49); + string_literal49=(Token)match(input,33,FOLLOW_33_in_membroClasse654); + stream_33.add(string_literal49); - ID50=(Token)match(input,ID,FOLLOW_ID_in_membroClasse680); + ID50=(Token)match(input,ID,FOLLOW_ID_in_membroClasse656); stream_ID.add(ID50); - char_literal51=(Token)match(input,25,FOLLOW_25_in_membroClasse682); - stream_25.add(char_literal51); + string_literal51=(Token)match(input,27,FOLLOW_27_in_membroClasse658); + stream_27.add(string_literal51); + + + pushFollow(FOLLOW_tipo_in_membroClasse660); + tipo52=tipo(); + + state._fsp--; + + stream_tipo.add(tipo52.getTree()); + + NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse662); + stream_NEWLINE.add(NEWLINE53); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:24: (tipos+= tipo )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:38: ( operacao )* loop10: do { int alt10=2; int LA10_0 = input.LA(1); - if ( (LA10_0==INT||(LA10_0 >= TIPO_REF && LA10_0 <= VOID)) ) { + if ( (LA10_0==ID||LA10_0==NEWLINE||(LA10_0 >= 37 && LA10_0 <= 42)||(LA10_0 >= 44 && LA10_0 <= 84)||(LA10_0 >= 86 && LA10_0 <= 98)) ) { alt10=1; } switch (alt10) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:25: tipos+= tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:38: operacao { - pushFollow(FOLLOW_tipo_in_membroClasse689); - tipos=tipo(); + pushFollow(FOLLOW_operacao_in_membroClasse664); + operacao54=operacao(); state._fsp--; - stream_tipo.add(tipos.getTree()); - if (list_tipos==null) list_tipos=new ArrayList(); - list_tipos.add(tipos.getTree()); - + stream_operacao.add(operacao54.getTree()); } break; @@ -1628,42 +1669,133 @@ else if ( (LA12_0==32) ) { } while (true); - char_literal52=(Token)match(input,27,FOLLOW_27_in_membroClasse693); - stream_27.add(char_literal52); + pushFollow(FOLLOW_retorno_in_membroClasse671); + ret=retorno(); + + state._fsp--; + + stream_retorno.add(ret.getTree()); + + NEWLINE55=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse673); + stream_NEWLINE.add(NEWLINE55); + + + string_literal56=(Token)match(input,31,FOLLOW_31_in_membroClasse675); + stream_31.add(string_literal56); + + + // AST REWRITE + // elements: operacao, ret, ID + // token labels: + // rule labels: ret, retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_ret=new RewriteRuleSubtreeStream(adaptor,"rule ret",ret!=null?ret.tree:null); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 82:9: -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:12: ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(METHOD_DECL, "METHOD_DECL") + , root_1); + + adaptor.addChild(root_1, + stream_ID.nextNode() + ); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:29: ^( BODY ( operacao )* ) + { + BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); + root_2 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(BODY, "BODY") + , root_2); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:36: ( operacao )* + while ( stream_operacao.hasNext() ) { + adaptor.addChild(root_2, stream_operacao.nextTree()); + + } + stream_operacao.reset(); + + adaptor.addChild(root_1, root_2); + } + + adaptor.addChild(root_1, stream_ret.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 5 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.method' ID '(' params ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + { + string_literal57=(Token)match(input,33,FOLLOW_33_in_membroClasse709); + stream_33.add(string_literal57); + + + ID58=(Token)match(input,ID,FOLLOW_ID_in_membroClasse711); + stream_ID.add(ID58); + + + char_literal59=(Token)match(input,26,FOLLOW_26_in_membroClasse713); + stream_26.add(char_literal59); + + + pushFollow(FOLLOW_params_in_membroClasse715); + params60=params(); + + state._fsp--; + + stream_params.add(params60.getTree()); + + char_literal61=(Token)match(input,28,FOLLOW_28_in_membroClasse717); + stream_28.add(char_literal61); - pushFollow(FOLLOW_tipo_in_membroClasse695); - tipo53=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse719); + tipo62=tipo(); state._fsp--; - stream_tipo.add(tipo53.getTree()); + stream_tipo.add(tipo62.getTree()); - NEWLINE54=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse697); - stream_NEWLINE.add(NEWLINE54); + NEWLINE63=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse721); + stream_NEWLINE.add(NEWLINE63); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:58: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:48: ( operacao )* loop11: do { int alt11=2; int LA11_0 = input.LA(1); - if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 36 && LA11_0 <= 41)||(LA11_0 >= 43 && LA11_0 <= 83)||(LA11_0 >= 85 && LA11_0 <= 97)) ) { + if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 37 && LA11_0 <= 42)||(LA11_0 >= 44 && LA11_0 <= 84)||(LA11_0 >= 86 && LA11_0 <= 98)) ) { alt11=1; } switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:58: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:48: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse699); - operacao55=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse723); + operacao64=operacao(); state._fsp--; - stream_operacao.add(operacao55.getTree()); + stream_operacao.add(operacao64.getTree()); } break; @@ -1674,56 +1806,54 @@ else if ( (LA12_0==32) ) { } while (true); - pushFollow(FOLLOW_retorno_in_membroClasse706); + pushFollow(FOLLOW_retorno_in_membroClasse730); ret=retorno(); state._fsp--; stream_retorno.add(ret.getTree()); - NEWLINE56=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse708); - stream_NEWLINE.add(NEWLINE56); + NEWLINE65=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse732); + stream_NEWLINE.add(NEWLINE65); - string_literal57=(Token)match(input,30,FOLLOW_30_in_membroClasse710); - stream_30.add(string_literal57); + string_literal66=(Token)match(input,31,FOLLOW_31_in_membroClasse734); + stream_31.add(string_literal66); // AST REWRITE - // elements: 32, ret, operacao, tipos, ID + // elements: operacao, ret, ID // token labels: // rule labels: ret, retval // token list labels: - // rule list labels: tipos + // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_ret=new RewriteRuleSubtreeStream(adaptor,"rule ret",ret!=null?ret.tree:null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - RewriteRuleSubtreeStream stream_tipos=new RewriteRuleSubtreeStream(adaptor,"token tipos",list_tipos); + root_0 = (BytecodesAST)adaptor.nil(); - // 81:9: -> ^( '.method' ID $tipos ^( BODY ( operacao )* ) $ret) + // 84:9: -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:12: ^( '.method' ID $tipos ^( BODY ( operacao )* ) $ret) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:12: ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_32.nextNode() + (BytecodesAST)adaptor.create(METHOD_DECL, "METHOD_DECL") , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - adaptor.addChild(root_1, stream_tipos.nextTree()); - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:34: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:29: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:41: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:36: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1769,6 +1899,100 @@ else if ( (LA12_0==32) ) { // $ANTLR end "membroClasse" + public static class params_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "params" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: params : ( ID | TIPO_REF )+ ; + public final AssemblerParser.params_return params() throws RecognitionException { + AssemblerParser.params_return retval = new AssemblerParser.params_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token set67=null; + + BytecodesAST set67_tree=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: ( ( ID | TIPO_REF )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:11: ( ID | TIPO_REF )+ + { + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:11: ( ID | TIPO_REF )+ + int cnt13=0; + loop13: + do { + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { + alt13=1; + } + + + switch (alt13) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: + { + set67=(Token)input.LT(1); + + if ( input.LA(1)==ID||input.LA(1)==TIPO_REF ) { + input.consume(); + adaptor.addChild(root_0, + (BytecodesAST)adaptor.create(set67) + ); + state.errorRecovery=false; + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + + } + break; + + default : + if ( cnt13 >= 1 ) break loop13; + EarlyExitException eee = + new EarlyExitException(13, input); + throw eee; + } + cnt13++; + } while (true); + + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "params" + + public static class retorno_return extends ParserRuleReturnScope { BytecodesAST tree; public Object getTree() { return tree; } @@ -1776,7 +2000,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -1784,23 +2008,23 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST root_0 = null; - Token set58=null; + Token set68=null; - BytecodesAST set58_tree=null; + BytecodesAST set68_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:9: ( 'areturn' | 'ireturn' | 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: ( 'areturn' | 'ireturn' | 'return' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set58=(Token)input.LT(1); + set68=(Token)input.LT(1); - if ( input.LA(1)==42||input.LA(1)==84||input.LA(1)==98 ) { + if ( input.LA(1)==43||input.LA(1)==85||input.LA(1)==99 ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set58) + (BytecodesAST)adaptor.create(set68) ); state.errorRecovery=false; } @@ -1841,7 +2065,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1850,85 +2074,85 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal61=null; + Token char_literal71=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; - AssemblerParser.tipo_return tipo59 =null; + AssemblerParser.tipo_return tipo69 =null; - AssemblerParser.tipo_return tipo60 =null; + AssemblerParser.tipo_return tipo70 =null; BytecodesAST a_tree=null; - BytecodesAST char_literal61_tree=null; - RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); - RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); - RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); - RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); - RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); + BytecodesAST char_literal71_tree=null; + RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); + RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); + RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) - int alt13=4; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + int alt14=4; switch ( input.LA(1) ) { - case 49: + case 50: { - alt13=1; + alt14=1; } break; - case 97: + case 98: { - alt13=2; + alt14=2; } break; - case 81: + case 82: { - alt13=3; + alt14=3; } break; - case 93: + case 94: { - alt13=4; + alt14=4; } break; default: NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); + new NoViableAltException("", 14, 0, input); throw nvae; } - switch (alt13) { + switch (alt14) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,49,FOLLOW_49_in_manipulacaoObjetos800); - stream_49.add(a); + a=(Token)match(input,50,FOLLOW_50_in_manipulacaoObjetos826); + stream_50.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos806); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos832); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos808); - tipo59=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos834); + tipo69=tipo(); state._fsp--; - stream_tipo.add(tipo59.getTree()); + stream_tipo.add(tipo69.getTree()); // AST REWRITE - // elements: 49, tipo, b + // elements: b, 50, tipo // token labels: // rule labels: retval, b // token list labels: @@ -1939,13 +2163,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 87:52: -> ^( 'getfield' $b tipo ) + // 91:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_49.nextNode() + stream_50.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -1963,28 +2187,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,97,FOLLOW_97_in_manipulacaoObjetos846); - stream_97.add(a); + a=(Token)match(input,98,FOLLOW_98_in_manipulacaoObjetos872); + stream_98.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos852); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos878); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos854); - tipo60=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos880); + tipo70=tipo(); state._fsp--; - stream_tipo.add(tipo60.getTree()); + stream_tipo.add(tipo70.getTree()); // AST REWRITE - // elements: 97, tipo, b + // elements: b, tipo, 98 // token labels: // rule labels: retval, b // token list labels: @@ -1995,13 +2219,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 88:52: -> ^( 'putfield' $b tipo ) + // 92:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_97.nextNode() + stream_98.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2019,24 +2243,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,81,FOLLOW_81_in_manipulacaoObjetos893); - stream_81.add(a); + a=(Token)match(input,82,FOLLOW_82_in_manipulacaoObjetos918); + stream_82.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos899); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos924); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal61=(Token)match(input,34,FOLLOW_34_in_manipulacaoObjetos901); - stream_34.add(char_literal61); + char_literal71=(Token)match(input,35,FOLLOW_35_in_manipulacaoObjetos926); + stream_35.add(char_literal71); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos907); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos932); d=chamadaMetodo(); state._fsp--; @@ -2044,7 +2268,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: d, 81, c + // elements: 82, d, c // token labels: // rule labels: retval, d, c // token list labels: @@ -2056,13 +2280,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 90:23: -> ^( 'invokespecial' $c $d) + // 94:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_81.nextNode() + stream_82.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2080,13 +2304,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:22: a= 'new' c= classe + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:22: a= 'new' c= classe { - a=(Token)match(input,93,FOLLOW_93_in_manipulacaoObjetos969); - stream_93.add(a); + a=(Token)match(input,94,FOLLOW_94_in_manipulacaoObjetos993); + stream_94.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos974); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos998); c=classe(); state._fsp--; @@ -2094,7 +2318,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: 93, c + // elements: 94, c // token labels: // rule labels: retval, c // token list labels: @@ -2105,13 +2329,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 91:42: -> ^( 'new' $c) + // 95:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:45: ^( 'new' $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_93.nextNode() + stream_94.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2157,7 +2381,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2165,23 +2389,23 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set62=null; + Token set72=null; - BytecodesAST set62_tree=null; + BytecodesAST set72_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set62=(Token)input.LT(1); + set72=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set62) + (BytecodesAST)adaptor.create(set72) ); state.errorRecovery=false; } @@ -2222,7 +2446,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2233,124 +2457,124 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); - RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); - RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); - RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); + RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); + RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); - RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); - RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); + RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); + RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); + RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt14=7; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + int alt15=7; switch ( input.LA(1) ) { - case 51: + case 52: { - alt14=1; + alt15=1; } break; - case 90: + case 91: { - alt14=2; + alt15=2; } break; - case 79: + case 80: { - alt14=3; + alt15=3; } break; - case 60: + case 61: { - alt14=4; + alt15=4; } break; - case 83: + case 84: { - alt14=5; + alt15=5; } break; - case 73: + case 74: { - alt14=6; + alt15=6; } break; - case 80: + case 81: { - alt14=7; + alt15=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 14, 0, input); + new NoViableAltException("", 15, 0, input); throw nvae; } - switch (alt14) { + switch (alt15) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:19: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:16: a= 'iadd' { - a=(Token)match(input,51,FOLLOW_51_in_aritmetica1038); - stream_51.add(a); + a=(Token)match(input,52,FOLLOW_52_in_aritmetica1076); + stream_52.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:19: a= 'isub' { - a=(Token)match(input,90,FOLLOW_90_in_aritmetica1062); - stream_90.add(a); + a=(Token)match(input,91,FOLLOW_91_in_aritmetica1100); + stream_91.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:19: a= 'imul' { - a=(Token)match(input,79,FOLLOW_79_in_aritmetica1086); - stream_79.add(a); + a=(Token)match(input,80,FOLLOW_80_in_aritmetica1124); + stream_80.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:19: a= 'idiv' { - a=(Token)match(input,60,FOLLOW_60_in_aritmetica1110); - stream_60.add(a); + a=(Token)match(input,61,FOLLOW_61_in_aritmetica1148); + stream_61.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:19: a= 'irem' { - a=(Token)match(input,83,FOLLOW_83_in_aritmetica1134); - stream_83.add(a); + a=(Token)match(input,84,FOLLOW_84_in_aritmetica1172); + stream_84.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:19: a= 'iinc' { - a=(Token)match(input,73,FOLLOW_73_in_aritmetica1158); - stream_73.add(a); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica1196); + stream_74.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:19: a= 'ineg' { - a=(Token)match(input,80,FOLLOW_80_in_aritmetica1182); - stream_80.add(a); + a=(Token)match(input,81,FOLLOW_81_in_aritmetica1220); + stream_81.add(a); } @@ -2371,9 +2595,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 104:14: -> ^( ARITMETICA $a) + // 109:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2421,7 +2645,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -2432,259 +2656,259 @@ public final AssemblerParser.load_return load() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); - RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); + RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); - RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); - RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); - RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); - RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt15=16; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt16=16; switch ( input.LA(1) ) { - case 59: - { - alt15=1; - } - break; - case 53: + case 60: { - alt15=2; + alt16=1; } break; case 54: { - alt15=3; + alt16=2; } break; case 55: { - alt15=4; + alt16=3; } break; case 56: { - alt15=5; + alt16=4; } break; case 57: { - alt15=6; + alt16=5; } break; case 58: { - alt15=7; + alt16=6; } break; - case 36: + case 59: { - alt15=8; + alt16=7; } break; - case 75: + case 37: { - alt15=9; + alt16=8; } break; case 76: { - alt15=10; + alt16=9; } break; case 77: { - alt15=11; + alt16=10; } break; case 78: { - alt15=12; + alt16=11; } break; - case 38: + case 79: { - alt15=13; + alt16=12; } break; case 39: { - alt15=14; + alt16=13; } break; case 40: { - alt15=15; + alt16=14; } break; case 41: { - alt15=16; + alt16=15; + } + break; + case 42: + { + alt16=16; } break; default: NoViableAltException nvae = - new NoViableAltException("", 15, 0, input); + new NoViableAltException("", 16, 0, input); throw nvae; } - switch (alt15) { + switch (alt16) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:13: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'iconst_m1' { - a=(Token)match(input,59,FOLLOW_59_in_load1260); - stream_59.add(a); + a=(Token)match(input,60,FOLLOW_60_in_load1294); + stream_60.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:13: a= 'iconst_0' { - a=(Token)match(input,53,FOLLOW_53_in_load1278); - stream_53.add(a); + a=(Token)match(input,54,FOLLOW_54_in_load1312); + stream_54.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:13: a= 'iconst_1' { - a=(Token)match(input,54,FOLLOW_54_in_load1296); - stream_54.add(a); + a=(Token)match(input,55,FOLLOW_55_in_load1330); + stream_55.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:13: a= 'iconst_2' { - a=(Token)match(input,55,FOLLOW_55_in_load1314); - stream_55.add(a); + a=(Token)match(input,56,FOLLOW_56_in_load1348); + stream_56.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:13: a= 'iconst_3' { - a=(Token)match(input,56,FOLLOW_56_in_load1333); - stream_56.add(a); + a=(Token)match(input,57,FOLLOW_57_in_load1366); + stream_57.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:13: a= 'iconst_4' { - a=(Token)match(input,57,FOLLOW_57_in_load1351); - stream_57.add(a); + a=(Token)match(input,58,FOLLOW_58_in_load1384); + stream_58.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'iconst_5' { - a=(Token)match(input,58,FOLLOW_58_in_load1369); - stream_58.add(a); + a=(Token)match(input,59,FOLLOW_59_in_load1402); + stream_59.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'aconst_null' { - a=(Token)match(input,36,FOLLOW_36_in_load1387); - stream_36.add(a); + a=(Token)match(input,37,FOLLOW_37_in_load1420); + stream_37.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'iload_0' { - a=(Token)match(input,75,FOLLOW_75_in_load1406); - stream_75.add(a); + a=(Token)match(input,76,FOLLOW_76_in_load1438); + stream_76.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'iload_1' { - a=(Token)match(input,76,FOLLOW_76_in_load1425); - stream_76.add(a); + a=(Token)match(input,77,FOLLOW_77_in_load1456); + stream_77.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'iload_2' { - a=(Token)match(input,77,FOLLOW_77_in_load1443); - stream_77.add(a); + a=(Token)match(input,78,FOLLOW_78_in_load1474); + stream_78.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'iload_3' { - a=(Token)match(input,78,FOLLOW_78_in_load1461); - stream_78.add(a); + a=(Token)match(input,79,FOLLOW_79_in_load1492); + stream_79.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'aload_0' { - a=(Token)match(input,38,FOLLOW_38_in_load1479); - stream_38.add(a); + a=(Token)match(input,39,FOLLOW_39_in_load1510); + stream_39.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'aload_1' { - a=(Token)match(input,39,FOLLOW_39_in_load1497); - stream_39.add(a); + a=(Token)match(input,40,FOLLOW_40_in_load1528); + stream_40.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'aload_2' { - a=(Token)match(input,40,FOLLOW_40_in_load1516); - stream_40.add(a); + a=(Token)match(input,41,FOLLOW_41_in_load1546); + stream_41.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'aload_3' { - a=(Token)match(input,41,FOLLOW_41_in_load1534); - stream_41.add(a); + a=(Token)match(input,42,FOLLOW_42_in_load1564); + stream_42.add(a); } @@ -2705,9 +2929,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 124:8: -> ^( LOAD $a) + // 129:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2755,7 +2979,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -2768,76 +2992,76 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); + RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) - int alt16=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + int alt17=3; switch ( input.LA(1) ) { - case 74: + case 75: { - alt16=1; + alt17=1; } break; - case 92: + case 93: { - alt16=2; + alt17=2; } break; - case 37: + case 38: { - alt16=3; + alt17=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + new NoViableAltException("", 17, 0, input); throw nvae; } - switch (alt16) { + switch (alt17) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:15: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,74,FOLLOW_74_in_loadint1588); - stream_74.add(a); + a=(Token)match(input,75,FOLLOW_75_in_loadint1614); + stream_75.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1594); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1620); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,92,FOLLOW_92_in_loadint1615); - stream_92.add(a); + a=(Token)match(input,93,FOLLOW_93_in_loadint1640); + stream_93.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1621); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1646); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,37,FOLLOW_37_in_loadint1641); - stream_37.add(a); + a=(Token)match(input,38,FOLLOW_38_in_loadint1666); + stream_38.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1647); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1672); stream_INTEIRO.add(b); @@ -2848,7 +3072,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -2860,9 +3084,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 131:11: -> ^( LOAD $a $b) + // 136:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2912,7 +3136,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2923,139 +3147,139 @@ public final AssemblerParser.store_return store() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); - RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); - RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); + RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt17=8; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + int alt18=8; switch ( input.LA(1) ) { - case 86: - { - alt17=1; - } - break; case 87: { - alt17=2; + alt18=1; } break; case 88: { - alt17=3; + alt18=2; } break; case 89: { - alt17=4; + alt18=3; } break; - case 44: + case 90: { - alt17=5; + alt18=4; } break; case 45: { - alt17=6; + alt18=5; } break; case 46: { - alt17=7; + alt18=6; } break; case 47: { - alt17=8; + alt18=7; + } + break; + case 48: + { + alt18=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 17, 0, input); + new NoViableAltException("", 18, 0, input); throw nvae; } - switch (alt17) { + switch (alt18) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:11: a= 'istore_0' { - a=(Token)match(input,86,FOLLOW_86_in_store1714); - stream_86.add(a); + a=(Token)match(input,87,FOLLOW_87_in_store1734); + stream_87.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'istore_1' { - a=(Token)match(input,87,FOLLOW_87_in_store1733); - stream_87.add(a); + a=(Token)match(input,88,FOLLOW_88_in_store1752); + stream_88.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'istore_2' { - a=(Token)match(input,88,FOLLOW_88_in_store1752); - stream_88.add(a); + a=(Token)match(input,89,FOLLOW_89_in_store1770); + stream_89.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'istore_3' { - a=(Token)match(input,89,FOLLOW_89_in_store1771); - stream_89.add(a); + a=(Token)match(input,90,FOLLOW_90_in_store1788); + stream_90.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'astore_0' { - a=(Token)match(input,44,FOLLOW_44_in_store1790); - stream_44.add(a); + a=(Token)match(input,45,FOLLOW_45_in_store1806); + stream_45.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'astore_1' { - a=(Token)match(input,45,FOLLOW_45_in_store1808); - stream_45.add(a); + a=(Token)match(input,46,FOLLOW_46_in_store1824); + stream_46.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'astore_2' { - a=(Token)match(input,46,FOLLOW_46_in_store1827); - stream_46.add(a); + a=(Token)match(input,47,FOLLOW_47_in_store1842); + stream_47.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'astore_3' { - a=(Token)match(input,47,FOLLOW_47_in_store1846); - stream_47.add(a); + a=(Token)match(input,48,FOLLOW_48_in_store1860); + stream_48.add(a); } @@ -3076,9 +3300,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 143:9: -> ^( STORE $a) + // 148:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3126,7 +3350,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3139,53 +3363,53 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); + RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); + RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) - int alt18=2; - int LA18_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA18_0==85) ) { - alt18=1; + if ( (LA19_0==86) ) { + alt19=1; } - else if ( (LA18_0==43) ) { - alt18=2; + else if ( (LA19_0==44) ) { + alt19=2; } else { NoViableAltException nvae = - new NoViableAltException("", 18, 0, input); + new NoViableAltException("", 19, 0, input); throw nvae; } - switch (alt18) { + switch (alt19) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:16: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,85,FOLLOW_85_in_storeint1903); - stream_85.add(a); + a=(Token)match(input,86,FOLLOW_86_in_storeint1914); + stream_86.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1909); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1920); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,43,FOLLOW_43_in_storeint1931); - stream_43.add(a); + a=(Token)match(input,44,FOLLOW_44_in_storeint1941); + stream_44.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1937); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1947); stream_INTEIRO.add(b); @@ -3196,7 +3420,7 @@ else if ( (LA18_0==43) ) { // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3208,9 +3432,9 @@ else if ( (LA18_0==43) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 149:12: -> ^( STORE $a $b) + // 154:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3260,7 +3484,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -3271,64 +3495,64 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); - RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); - RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); + RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); + RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); + RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt19=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt20=3; switch ( input.LA(1) ) { - case 52: + case 53: { - alt19=1; + alt20=1; } break; - case 82: + case 83: { - alt19=2; + alt20=2; } break; - case 91: + case 92: { - alt19=3; + alt20=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 19, 0, input); + new NoViableAltException("", 20, 0, input); throw nvae; } - switch (alt19) { + switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: a= 'iand' { - a=(Token)match(input,52,FOLLOW_52_in_logica2001); - stream_52.add(a); + a=(Token)match(input,53,FOLLOW_53_in_logica2007); + stream_53.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:14: a= 'ior' { - a=(Token)match(input,82,FOLLOW_82_in_logica2020); - stream_82.add(a); + a=(Token)match(input,83,FOLLOW_83_in_logica2026); + stream_83.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'ixor' { - a=(Token)match(input,91,FOLLOW_91_in_logica2039); - stream_91.add(a); + a=(Token)match(input,92,FOLLOW_92_in_logica2045); + stream_92.add(a); } @@ -3349,9 +3573,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 156:10: -> ^( LOGICA $a) + // 161:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3399,7 +3623,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -3417,180 +3641,180 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); + RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); - RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); + RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); - RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); + RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); - RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); - RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); + RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); + RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt20=13; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt21=13; switch ( input.LA(1) ) { - case 67: - { - alt20=1; - } - break; - case 72: + case 68: { - alt20=2; + alt21=1; } break; - case 71: + case 73: { - alt20=3; + alt21=2; } break; - case 68: + case 72: { - alt20=4; + alt21=3; } break; case 69: { - alt20=5; + alt21=4; } break; case 70: { - alt20=6; + alt21=5; } break; - case 61: + case 71: { - alt20=7; + alt21=6; } break; - case 66: + case 62: { - alt20=8; + alt21=7; } break; - case 65: + case 67: { - alt20=9; + alt21=8; } break; - case 62: + case 66: { - alt20=10; + alt21=9; } break; case 63: { - alt20=11; + alt21=10; } break; case 64: { - alt20=12; + alt21=11; } break; - case 50: + case 65: + { + alt21=12; + } + break; + case 51: { - alt20=13; + alt21=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 20, 0, input); + new NoViableAltException("", 21, 0, input); throw nvae; } - switch (alt20) { + switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: a= 'ifeq' b= ID { - a=(Token)match(input,67,FOLLOW_67_in_desvio2092); - stream_67.add(a); + a=(Token)match(input,68,FOLLOW_68_in_desvio2096); + stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2098); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2102); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:14: a= 'ifne' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2118); - stream_72.add(a); + a=(Token)match(input,73,FOLLOW_73_in_desvio2121); + stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2124); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2127); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: a= 'iflt' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2144); - stream_71.add(a); + a=(Token)match(input,72,FOLLOW_72_in_desvio2146); + stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2150); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2152); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:14: a= 'ifge' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2169); - stream_68.add(a); + a=(Token)match(input,69,FOLLOW_69_in_desvio2171); + stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2175); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2177); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'ifgt' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2194); - stream_69.add(a); + a=(Token)match(input,70,FOLLOW_70_in_desvio2196); + stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2200); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2202); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:14: a= 'ifle' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2220); - stream_70.add(a); + a=(Token)match(input,71,FOLLOW_71_in_desvio2221); + stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2226); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2227); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,61,FOLLOW_61_in_desvio2246); - stream_61.add(a); + a=(Token)match(input,62,FOLLOW_62_in_desvio2246); + stream_62.add(a); b=(Token)match(input,ID,FOLLOW_ID_in_desvio2252); @@ -3600,78 +3824,78 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio2272); - stream_66.add(a); + a=(Token)match(input,67,FOLLOW_67_in_desvio2271); + stream_67.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2278); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2277); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio2297); - stream_65.add(a); + a=(Token)match(input,66,FOLLOW_66_in_desvio2296); + stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2303); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2302); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio2323); - stream_62.add(a); + a=(Token)match(input,63,FOLLOW_63_in_desvio2321); + stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2329); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2327); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2349); - stream_63.add(a); + a=(Token)match(input,64,FOLLOW_64_in_desvio2346); + stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2355); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2352); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'if_icmple' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2374); - stream_64.add(a); + a=(Token)match(input,65,FOLLOW_65_in_desvio2371); + stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2380); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2377); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'goto' b= ID { - a=(Token)match(input,50,FOLLOW_50_in_desvio2400); - stream_50.add(a); + a=(Token)match(input,51,FOLLOW_51_in_desvio2396); + stream_51.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2406); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2402); stream_ID.add(b); @@ -3694,9 +3918,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 173:10: -> ^( DESVIO $a $b) + // 178:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3746,7 +3970,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -3757,64 +3981,64 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); + RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); + RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); - RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) - int alt21=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + int alt22=3; switch ( input.LA(1) ) { - case 95: + case 96: { - alt21=1; + alt22=1; } break; - case 96: + case 97: { - alt21=2; + alt22=2; } break; - case 48: + case 49: { - alt21=3; + alt22=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 21, 0, input); + new NoViableAltException("", 22, 0, input); throw nvae; } - switch (alt21) { + switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:13: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:11: a= 'pop' { - a=(Token)match(input,95,FOLLOW_95_in_pilha2471); - stream_95.add(a); + a=(Token)match(input,96,FOLLOW_96_in_pilha2463); + stream_96.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:13: a= 'pop2' { - a=(Token)match(input,96,FOLLOW_96_in_pilha2489); - stream_96.add(a); + a=(Token)match(input,97,FOLLOW_97_in_pilha2481); + stream_97.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:13: a= 'dup' { - a=(Token)match(input,48,FOLLOW_48_in_pilha2507); - stream_48.add(a); + a=(Token)match(input,49,FOLLOW_49_in_pilha2499); + stream_49.add(a); } @@ -3835,9 +4059,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 180:9: -> ^( PILHA $a) + // 185:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3886,7 +4110,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -3894,37 +4118,37 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal63=null; + Token char_literal73=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal63_tree=null; + BytecodesAST char_literal73_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:8: (cls+= ID '/' )* - loop22: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:8: (cls+= ID '/' )* + loop23: do { - int alt22=2; - int LA22_0 = input.LA(1); + int alt23=2; + int LA23_0 = input.LA(1); - if ( (LA22_0==ID) ) { - int LA22_1 = input.LA(2); + if ( (LA23_0==ID) ) { + int LA23_1 = input.LA(2); - if ( (LA22_1==34) ) { - int LA22_2 = input.LA(3); + if ( (LA23_1==35) ) { + int LA23_2 = input.LA(3); - if ( (LA22_2==ID) ) { - alt22=1; + if ( (LA23_2==ID) ) { + alt23=1; } @@ -3934,11 +4158,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } - switch (alt22) { + switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2573); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2565); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -3948,26 +4172,26 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal63=(Token)match(input,34,FOLLOW_34_in_classe2575); - char_literal63_tree = - (BytecodesAST)adaptor.create(char_literal63) + char_literal73=(Token)match(input,35,FOLLOW_35_in_classe2567); + char_literal73_tree = + (BytecodesAST)adaptor.create(char_literal73) ; - adaptor.addChild(root_0, char_literal63_tree); + adaptor.addChild(root_0, char_literal73_tree); } break; default : - break loop22; + break loop23; } } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:25: (cls+= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:26: cls+= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:25: (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2584); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2576); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4016,7 +4240,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -4038,27 +4262,27 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:6: (n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:8: n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:6: (n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:8: n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2624); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2616); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,26,FOLLOW_26_in_chamadaMetodo2630); + par=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2622); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2636); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2628); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -4104,7 +4328,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:203:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -4113,12 +4337,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal64=null; + Token char_literal74=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal64_tree=null; + BytecodesAST char_literal74_tree=null; BytecodesAST cls_tree=null; @@ -4126,35 +4350,35 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:8: (cls+= ID '/' )+ - int cnt23=0; - loop23: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:8: (cls+= ID '/' )+ + int cnt24=0; + loop24: do { - int alt23=2; - int LA23_0 = input.LA(1); + int alt24=2; + int LA24_0 = input.LA(1); - if ( (LA23_0==ID) ) { - int LA23_1 = input.LA(2); + if ( (LA24_0==ID) ) { + int LA24_1 = input.LA(2); - if ( (LA23_1==34) ) { - alt23=1; + if ( (LA24_1==35) ) { + alt24=1; } } - switch (alt23) { + switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2676); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2668); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4164,27 +4388,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal64=(Token)match(input,34,FOLLOW_34_in_campo2678); - char_literal64_tree = - (BytecodesAST)adaptor.create(char_literal64) + char_literal74=(Token)match(input,35,FOLLOW_35_in_campo2670); + char_literal74_tree = + (BytecodesAST)adaptor.create(char_literal74) ; - adaptor.addChild(root_0, char_literal64_tree); + adaptor.addChild(root_0, char_literal74_tree); } break; default : - if ( cnt23 >= 1 ) break loop23; + if ( cnt24 >= 1 ) break loop24; EarlyExitException eee = - new EarlyExitException(23, input); + new EarlyExitException(24, input); throw eee; } - cnt23++; + cnt24++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2686); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2678); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -4221,160 +4445,169 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { - public static final BitSet FOLLOW_instrucao_in_programa112 = new BitSet(new long[]{0xFFFFFBF010040202L,0x00000003FFEFFFFFL}); - public static final BitSet FOLLOW_operacao_in_instrucao140 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao155 = new BitSet(new long[]{0x0000000020000002L}); - public static final BitSet FOLLOW_29_in_instrucao158 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_operacao180 = new BitSet(new long[]{0xFFFFFBF000040000L,0x00000003FFEFFFFFL}); - public static final BitSet FOLLOW_comando_in_operacao182 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_programa117 = new BitSet(new long[]{0xFFFFF7E020080202L,0x00000007FFDFFFFFL}); + public static final BitSet FOLLOW_operacao_in_instrucao145 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao159 = new BitSet(new long[]{0x0000000040000002L}); + public static final BitSet FOLLOW_30_in_instrucao162 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_operacao184 = new BitSet(new long[]{0xFFFFF7E000080000L,0x00000007FFDFFFFFL}); public static final BitSet FOLLOW_comando_in_operacao186 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label208 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_label210 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_comando233 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_aritmetica_in_comando252 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_load_in_comando271 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_loadint_in_comando289 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_store_in_comando308 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_storeint_in_comando326 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_desvio_in_comando345 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_logica_in_comando364 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_pilha_in_comando382 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_94_in_comando401 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_comando417 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_definicaoClasse443 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse445 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse447 = new BitSet(new long[]{0x0000000380000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse450 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse452 = new BitSet(new long[]{0x0000000180000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse457 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse459 = new BitSet(new long[]{0x0000000180000002L}); - public static final BitSet FOLLOW_33_in_superClasse535 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse537 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_membroClasse559 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse561 = new BitSet(new long[]{0x0000000000C00800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse563 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_membroClasse582 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INIT_in_membroClasse584 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_26_in_membroClasse586 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse588 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse590 = new BitSet(new long[]{0xFFFFFBF000040200L,0x00000007FFEFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse592 = new BitSet(new long[]{0xFFFFFBF000040200L,0x00000007FFEFFFFFL}); - public static final BitSet FOLLOW_98_in_membroClasse595 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse597 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_30_in_membroClasse599 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_membroClasse623 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_MAIN_in_membroClasse625 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_26_in_membroClasse627 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse629 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse631 = new BitSet(new long[]{0xFFFFFFF000040200L,0x00000007FFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse633 = new BitSet(new long[]{0xFFFFFFF000040200L,0x00000007FFFFFFFFL}); - public static final BitSet FOLLOW_retorno_in_membroClasse640 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse642 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_30_in_membroClasse644 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_membroClasse678 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse680 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_25_in_membroClasse682 = new BitSet(new long[]{0x0000000008C00800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse689 = new BitSet(new long[]{0x0000000008C00800L}); - public static final BitSet FOLLOW_27_in_membroClasse693 = new BitSet(new long[]{0x0000000000C00800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse695 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse697 = new BitSet(new long[]{0xFFFFFFF000040200L,0x00000007FFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse699 = new BitSet(new long[]{0xFFFFFFF000040200L,0x00000007FFFFFFFFL}); - public static final BitSet FOLLOW_retorno_in_membroClasse706 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse708 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_30_in_membroClasse710 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_manipulacaoObjetos800 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos806 = new BitSet(new long[]{0x0000000000C00800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos808 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_manipulacaoObjetos846 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos852 = new BitSet(new long[]{0x0000000000C00800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos854 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_manipulacaoObjetos893 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos899 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_34_in_manipulacaoObjetos901 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos907 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_manipulacaoObjetos969 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos974 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_aritmetica1038 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_aritmetica1062 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_aritmetica1086 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_aritmetica1110 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_aritmetica1134 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_aritmetica1158 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_aritmetica1182 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load1260 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_load1278 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load1296 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load1314 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load1333 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load1351 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load1369 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_load1387 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_load1406 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load1425 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_load1443 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_load1461 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load1479 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load1497 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load1516 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load1534 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_loadint1588 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1594 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_loadint1615 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1621 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_loadint1641 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1647 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_store1714 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_store1733 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_operacao190 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label212 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_label214 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_comando232 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_aritmetica_in_comando250 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_load_in_comando268 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_loadint_in_comando286 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_store_in_comando304 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_storeint_in_comando322 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_desvio_in_comando340 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_logica_in_comando358 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_pilha_in_comando376 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_95_in_comando394 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando410 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_definicaoClasse436 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse438 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse440 = new BitSet(new long[]{0x0000000700000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse443 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse445 = new BitSet(new long[]{0x0000000300000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse450 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse452 = new BitSet(new long[]{0x0000000300000002L}); + public static final BitSet FOLLOW_34_in_superClasse513 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse515 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_membroClasse536 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse538 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse540 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse558 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INIT_in_membroClasse560 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_membroClasse562 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse564 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse566 = new BitSet(new long[]{0xFFFFF7E000080200L,0x0000000FFFDFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse568 = new BitSet(new long[]{0xFFFFF7E000080200L,0x0000000FFFDFFFFFL}); + public static final BitSet FOLLOW_99_in_membroClasse571 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse573 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_31_in_membroClasse575 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse599 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_MAIN_in_membroClasse601 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_membroClasse603 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse605 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse607 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse609 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_retorno_in_membroClasse616 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse618 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_31_in_membroClasse620 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse654 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse656 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_membroClasse658 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse660 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse662 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse664 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_retorno_in_membroClasse671 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse673 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_31_in_membroClasse675 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse709 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse711 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_membroClasse713 = new BitSet(new long[]{0x0000000000800200L}); + public static final BitSet FOLLOW_params_in_membroClasse715 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_membroClasse717 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse719 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse721 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse723 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_retorno_in_membroClasse730 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse732 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_31_in_membroClasse734 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_manipulacaoObjetos826 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos832 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos834 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_manipulacaoObjetos872 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos878 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos880 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_manipulacaoObjetos918 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos924 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_manipulacaoObjetos926 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos932 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_manipulacaoObjetos993 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos998 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_aritmetica1076 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_aritmetica1100 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_aritmetica1124 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_aritmetica1148 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_aritmetica1172 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica1196 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_aritmetica1220 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load1294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load1312 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load1330 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load1348 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load1366 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load1384 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load1402 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load1420 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load1438 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_load1456 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_load1474 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_load1492 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load1510 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load1528 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load1546 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load1564 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_loadint1614 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1620 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_loadint1640 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1646 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_loadint1666 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1672 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_store1734 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_88_in_store1752 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_store1771 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_store1790 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_store1808 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_store1827 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_store1846 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_storeint1903 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1909 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_storeint1931 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1937 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_logica2001 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_logica2020 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_logica2039 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_desvio2092 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2098 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2118 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2124 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2144 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2150 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2169 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2175 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2194 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2200 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2220 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2226 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_desvio2246 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_89_in_store1770 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_store1788 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_store1806 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_store1824 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_store1842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_store1860 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_storeint1914 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1920 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_storeint1941 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1947 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_logica2007 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_logica2026 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_logica2045 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2096 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2102 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2121 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2127 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2146 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2171 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2177 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2196 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2221 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2227 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio2246 = new BitSet(new long[]{0x0000000000000200L}); public static final BitSet FOLLOW_ID_in_desvio2252 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio2272 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2278 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio2297 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2303 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio2323 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2329 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2349 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2355 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2374 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2380 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_desvio2400 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2406 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_pilha2471 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_pilha2489 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_pilha2507 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2573 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_34_in_classe2575 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_classe2584 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2624 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_26_in_chamadaMetodo2630 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2636 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2676 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_34_in_campo2678 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_campo2686 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_desvio2271 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2277 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio2296 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2302 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2321 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2327 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2346 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2352 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio2371 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2377 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio2396 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2402 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_pilha2463 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_pilha2481 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_pilha2499 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2565 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_classe2567 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_classe2576 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2616 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_chamadaMetodo2622 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2628 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2668 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_campo2670 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_campo2678 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 2595896..04e8e27 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 16:44:57 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 22:34:39 package br.ufpb.iged.interpretador.parser; @@ -20,11 +20,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__25=25; public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; @@ -98,6 +97,7 @@ public class Def extends TreeFilter { public static final int T__96=96; public static final int T__97=97; public static final int T__98=98; + public static final int T__99=99; public static final int ARITMETICA=4; public static final int BODY=5; public static final int DESVIO=6; @@ -112,13 +112,14 @@ public class Def extends TreeFilter { public static final int LOGICA=15; public static final int MAIN=16; public static final int MEMBRO_CLASSE=17; - public static final int NEWLINE=18; - public static final int NULL=19; - public static final int PILHA=20; - public static final int STORE=21; - public static final int TIPO_REF=22; - public static final int VOID=23; - public static final int WS=24; + public static final int METHOD_DECL=18; + public static final int NEWLINE=19; + public static final int NULL=20; + public static final int PILHA=21; + public static final int STORE=22; + public static final int TIPO_REF=23; + public static final int VOID=24; + public static final int WS=25; // delegates public TreeFilter[] getDelegates() { @@ -150,14 +151,14 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:1: topdown : ( entraNaClasse | declaracaoVariavel ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:1: topdown : ( entraNaClasse | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:9: ( entraNaClasse | declaracaoVariavel ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:9: ( entraNaClasse | declaracaoVariavel ) int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==28) ) { + if ( (LA1_0==29) ) { alt1=1; } else if ( (LA1_0==FIELD_DECL) ) { @@ -173,9 +174,9 @@ else if ( (LA1_0==FIELD_DECL) ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:11: entraNaClasse { - pushFollow(FOLLOW_entraNaClasse_in_topdown52); + pushFollow(FOLLOW_entraNaClasse_in_topdown49); entraNaClasse(); state._fsp--; @@ -184,9 +185,9 @@ else if ( (LA1_0==FIELD_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown64); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown61); declaracaoVariavel(); state._fsp--; @@ -212,28 +213,28 @@ else if ( (LA1_0==FIELD_DECL) ) { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:1: bottomup : ( saiDaClasse | getfield | putfield | invokespecial ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:1: bottomup : ( saiDaClasse | getfield | putfield | invokespecial ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:10: ( saiDaClasse | getfield | putfield | invokespecial ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:10: ( saiDaClasse | getfield | putfield | invokespecial ) int alt2=4; switch ( input.LA(1) ) { - case 28: + case 29: { alt2=1; } break; - case 49: + case 50: { alt2=2; } break; - case 97: + case 98: { alt2=3; } break; - case 81: + case 82: { alt2=4; } @@ -249,9 +250,9 @@ public final void bottomup() throws RecognitionException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: saiDaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup81); + pushFollow(FOLLOW_saiDaClasse_in_bottomup78); saiDaClasse(); state._fsp--; @@ -260,9 +261,9 @@ public final void bottomup() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:12: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: getfield { - pushFollow(FOLLOW_getfield_in_bottomup94); + pushFollow(FOLLOW_getfield_in_bottomup91); getfield(); state._fsp--; @@ -271,9 +272,9 @@ public final void bottomup() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:12: putfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:12: putfield { - pushFollow(FOLLOW_putfield_in_bottomup107); + pushFollow(FOLLOW_putfield_in_bottomup104); putfield(); state._fsp--; @@ -282,9 +283,9 @@ public final void bottomup() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:12: invokespecial + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:12: invokespecial { - pushFollow(FOLLOW_invokespecial_in_bottomup120); + pushFollow(FOLLOW_invokespecial_in_bottomup117); invokespecial(); state._fsp--; @@ -310,21 +311,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:9: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,28,FOLLOW_28_in_entraNaClasse154); if (state.failed) return ; + match(input,29,FOLLOW_29_in_entraNaClasse149); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse158); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse153); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:28: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -340,7 +341,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 98)) ) { + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 99)) ) { alt3=1; } } @@ -349,12 +350,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:29: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse162); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse157); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse166); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse161); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -370,16 +371,16 @@ public final void entraNaClasse() throws RecognitionException { match(input, Token.UP, null); if (state.failed) return ; - if ( state.backtracking==1 ) { + if ( state.backtracking==1 ) { System.out.println("linha "+nome.getLine()+ ": def class "+(nome!=null?nome.getText():null)); - if ( sup!=null ) - sup.escopo = escopoAtual; + if ( sup!=null ) + sup.escopo = escopoAtual; SimboloClasse classe = new SimboloClasse("L" + (nome!=null?nome.getText():null),escopoAtual,null); classe.def = nome; nome.simbolo = classe; - escopoAtual.definir(classe); - escopoAtual = classe; + escopoAtual.definir(classe); + escopoAtual = classe; } } @@ -400,19 +401,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:55:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:54:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:56:9: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:55:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:55:7: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel202); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel195); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel204); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel197); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -423,7 +424,7 @@ public final void declaracaoVariavel() throws RecognitionException { if ( state.backtracking==1 ) { System.out.println("linha "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); - tipo.escopo = escopoAtual; + tipo.escopo = escopoAtual; SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),null); variavel.def = ID1; ID1.simbolo = variavel; @@ -449,17 +450,17 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:15: '.class' { - match(input,28,FOLLOW_28_in_saiDaClasse237); if (state.failed) return ; + match(input,29,FOLLOW_29_in_saiDaClasse230); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } } @@ -480,13 +481,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:1: getfield : 'getfield' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:1: getfield : 'getfield' ; public final void getfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:5: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:7: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:5: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:7: 'getfield' { - match(input,49,FOLLOW_49_in_getfield277); if (state.failed) return ; + match(input,50,FOLLOW_50_in_getfield269); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do getfield.."); @@ -510,13 +511,13 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:1: putfield : 'putfield' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:1: putfield : 'putfield' ; public final void putfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:5: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:83:7: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:5: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:7: 'putfield' { - match(input,97,FOLLOW_97_in_putfield305); if (state.failed) return ; + match(input,98,FOLLOW_98_in_putfield296); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do putfield.."); @@ -540,13 +541,13 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:1: invokespecial : 'invokespecial' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: invokespecial : 'invokespecial' ; public final void invokespecial() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:5: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:7: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:5: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:7: 'invokespecial' { - match(input,81,FOLLOW_81_in_invokespecial334); if (state.failed) return ; + match(input,82,FOLLOW_82_in_invokespecial323); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do invokespecial.."); @@ -572,21 +573,21 @@ public final void invokespecial() throws RecognitionException { - public static final BitSet FOLLOW_entraNaClasse_in_topdown52 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown64 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDaClasse_in_bottomup81 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getfield_in_bottomup94 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_bottomup107 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_entraNaClasse154 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse158 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000007FFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse162 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse166 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel202 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel204 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000007FFFFFFFFL}); - public static final BitSet FOLLOW_28_in_saiDaClasse237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_getfield277 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_putfield305 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_invokespecial334 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown49 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup78 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getfield_in_bottomup91 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_bottomup104 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_bottomup117 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_entraNaClasse149 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse153 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse157 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse161 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel195 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel197 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_29_in_saiDaClasse230 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_getfield269 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_putfield296 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_invokespecial323 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index 7779d72..b4df8bc 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,4 +1,3 @@ -T__25=25 T__26=26 T__27=27 T__28=28 @@ -72,6 +71,7 @@ T__95=95 T__96=96 T__97=97 T__98=98 +T__99=99 ARITMETICA=4 BODY=5 DESVIO=6 @@ -86,84 +86,85 @@ LOAD=14 LOGICA=15 MAIN=16 MEMBRO_CLASSE=17 -NEWLINE=18 -NULL=19 -PILHA=20 -STORE=21 -TIPO_REF=22 -VOID=23 -WS=24 -'('=25 -'()'=26 -')'=27 -'.class'=28 -'.end class'=29 -'.end method'=30 -'.field'=31 -'.method'=32 -'.super'=33 -'/'=34 -':'=35 -'aconst_null'=36 -'aload'=37 -'aload_0'=38 -'aload_1'=39 -'aload_2'=40 -'aload_3'=41 -'areturn'=42 -'astore'=43 -'astore_0'=44 -'astore_1'=45 -'astore_2'=46 -'astore_3'=47 -'dup'=48 -'getfield'=49 -'goto'=50 -'iadd'=51 -'iand'=52 -'iconst_0'=53 -'iconst_1'=54 -'iconst_2'=55 -'iconst_3'=56 -'iconst_4'=57 -'iconst_5'=58 -'iconst_m1'=59 -'idiv'=60 -'if_icmpeq'=61 -'if_icmpge'=62 -'if_icmpgt'=63 -'if_icmple'=64 -'if_icmplt'=65 -'if_icmpne'=66 -'ifeq'=67 -'ifge'=68 -'ifgt'=69 -'ifle'=70 -'iflt'=71 -'ifne'=72 -'iinc'=73 -'iload'=74 -'iload_0'=75 -'iload_1'=76 -'iload_2'=77 -'iload_3'=78 -'imul'=79 -'ineg'=80 -'invokespecial'=81 -'ior'=82 -'irem'=83 -'ireturn'=84 -'istore'=85 -'istore_0'=86 -'istore_1'=87 -'istore_2'=88 -'istore_3'=89 -'isub'=90 -'ixor'=91 -'ldc'=92 -'new'=93 -'nop'=94 -'pop'=95 -'pop2'=96 -'putfield'=97 -'return'=98 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PILHA=21 +STORE=22 +TIPO_REF=23 +VOID=24 +WS=25 +'('=26 +'()'=27 +')'=28 +'.class'=29 +'.end class'=30 +'.end method'=31 +'.field'=32 +'.method'=33 +'.super'=34 +'/'=35 +':'=36 +'aconst_null'=37 +'aload'=38 +'aload_0'=39 +'aload_1'=40 +'aload_2'=41 +'aload_3'=42 +'areturn'=43 +'astore'=44 +'astore_0'=45 +'astore_1'=46 +'astore_2'=47 +'astore_3'=48 +'dup'=49 +'getfield'=50 +'goto'=51 +'iadd'=52 +'iand'=53 +'iconst_0'=54 +'iconst_1'=55 +'iconst_2'=56 +'iconst_3'=57 +'iconst_4'=58 +'iconst_5'=59 +'iconst_m1'=60 +'idiv'=61 +'if_icmpeq'=62 +'if_icmpge'=63 +'if_icmpgt'=64 +'if_icmple'=65 +'if_icmplt'=66 +'if_icmpne'=67 +'ifeq'=68 +'ifge'=69 +'ifgt'=70 +'ifle'=71 +'iflt'=72 +'ifne'=73 +'iinc'=74 +'iload'=75 +'iload_0'=76 +'iload_1'=77 +'iload_2'=78 +'iload_3'=79 +'imul'=80 +'ineg'=81 +'invokespecial'=82 +'ior'=83 +'irem'=84 +'ireturn'=85 +'istore'=86 +'istore_0'=87 +'istore_1'=88 +'istore_2'=89 +'istore_3'=90 +'isub'=91 +'ixor'=92 +'ldc'=93 +'new'=94 +'nop'=95 +'pop'=96 +'pop2'=97 +'putfield'=98 +'return'=99 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 5f5a8e9..d846dd5 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 16:44:57 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 22:34:39 package br.ufpb.iged.interpretador.parser; @@ -24,11 +24,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__25=25; public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; @@ -102,6 +101,7 @@ public class Ref extends TreeFilter { public static final int T__96=96; public static final int T__97=97; public static final int T__98=98; + public static final int T__99=99; public static final int ARITMETICA=4; public static final int BODY=5; public static final int DESVIO=6; @@ -116,13 +116,14 @@ public class Ref extends TreeFilter { public static final int LOGICA=15; public static final int MAIN=16; public static final int MEMBRO_CLASSE=17; - public static final int NEWLINE=18; - public static final int NULL=19; - public static final int PILHA=20; - public static final int STORE=21; - public static final int TIPO_REF=22; - public static final int VOID=23; - public static final int WS=24; + public static final int METHOD_DECL=18; + public static final int NEWLINE=19; + public static final int NULL=20; + public static final int PILHA=21; + public static final int STORE=22; + public static final int TIPO_REF=23; + public static final int VOID=24; + public static final int WS=25; // delegates public TreeFilter[] getDelegates() { @@ -146,7 +147,7 @@ public Ref(TreeNodeStream input, RecognizerSharedState state) { TabelaSimbolos tabelaSimbolos; SimboloClasse simboloClasse; BytecodeAssembler assembler; - public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, + public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, BytecodeAssembler assembler) { this(input); this.tabelaSimbolos = tabelaSimbolos; @@ -163,17 +164,17 @@ private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) assembler.escreverOpcode(operacao); - SimboloClasse simboloClasse = + SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ - SimboloVariavel simboloVariavel = + SimboloVariavel simboloVariavel = (SimboloVariavel) simboloClasse.resolver(nomeCampo); if (!simboloClasse.getConstantPool().contains(simboloVariavel)) @@ -181,7 +182,7 @@ private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) simboloClasse.getConstantPool().add(simboloVariavel); BytecodeAssembler.escreverInteiro( - BytecodeAssembler.codigo, BytecodeAssembler.ip, + BytecodeAssembler.codigo, BytecodeAssembler.ip, simboloClasse.getConstantPool().indexOf(simboloVariavel)); } @@ -190,14 +191,14 @@ private void chamarConstrutorDefault(String nomeClasse) { assembler.escreverOpcode("invokespecial"); - SimboloClasse simboloClasse = + SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); } @@ -206,14 +207,14 @@ private void newClass(String nomeClasse) { assembler.escreverOpcode("new"); - SimboloClasse simboloClasse = + SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, + BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); } @@ -230,9 +231,9 @@ public final void topdown() throws RecognitionException { alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:9: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:100:7: entraNaClasse { - pushFollow(FOLLOW_entraNaClasse_in_topdown61); + pushFollow(FOLLOW_entraNaClasse_in_topdown59); entraNaClasse(); state._fsp--; @@ -243,7 +244,7 @@ public final void topdown() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:101:9: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown71); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown69); declaracaoVariavel(); state._fsp--; @@ -254,7 +255,7 @@ public final void topdown() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:9: getfield { - pushFollow(FOLLOW_getfield_in_topdown81); + pushFollow(FOLLOW_getfield_in_topdown79); getfield(); state._fsp--; @@ -265,7 +266,7 @@ public final void topdown() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:103:9: putfield { - pushFollow(FOLLOW_putfield_in_topdown91); + pushFollow(FOLLOW_putfield_in_topdown89); putfield(); state._fsp--; @@ -276,7 +277,7 @@ public final void topdown() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:104:9: invokespecial { - pushFollow(FOLLOW_invokespecial_in_topdown101); + pushFollow(FOLLOW_invokespecial_in_topdown99); invokespecial(); state._fsp--; @@ -287,7 +288,7 @@ public final void topdown() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:105:9: novaClasse { - pushFollow(FOLLOW_novaClasse_in_topdown111); + pushFollow(FOLLOW_novaClasse_in_topdown109); novaClasse(); state._fsp--; @@ -298,7 +299,7 @@ public final void topdown() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:106:9: aritmetica { - pushFollow(FOLLOW_aritmetica_in_topdown121); + pushFollow(FOLLOW_aritmetica_in_topdown119); aritmetica(); state._fsp--; @@ -309,7 +310,7 @@ public final void topdown() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:107:9: load { - pushFollow(FOLLOW_load_in_topdown132); + pushFollow(FOLLOW_load_in_topdown129); load(); state._fsp--; @@ -320,7 +321,7 @@ public final void topdown() throws RecognitionException { case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:108:9: loadint { - pushFollow(FOLLOW_loadint_in_topdown142); + pushFollow(FOLLOW_loadint_in_topdown139); loadint(); state._fsp--; @@ -331,7 +332,7 @@ public final void topdown() throws RecognitionException { case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:109:9: store { - pushFollow(FOLLOW_store_in_topdown153); + pushFollow(FOLLOW_store_in_topdown149); store(); state._fsp--; @@ -342,7 +343,7 @@ public final void topdown() throws RecognitionException { case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:9: storeint { - pushFollow(FOLLOW_storeint_in_topdown163); + pushFollow(FOLLOW_storeint_in_topdown159); storeint(); state._fsp--; @@ -353,7 +354,7 @@ public final void topdown() throws RecognitionException { case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:9: desvio { - pushFollow(FOLLOW_desvio_in_topdown174); + pushFollow(FOLLOW_desvio_in_topdown169); desvio(); state._fsp--; @@ -364,7 +365,7 @@ public final void topdown() throws RecognitionException { case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:112:9: logica { - pushFollow(FOLLOW_logica_in_topdown185); + pushFollow(FOLLOW_logica_in_topdown179); logica(); state._fsp--; @@ -375,7 +376,7 @@ public final void topdown() throws RecognitionException { case 14 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:113:9: pilha { - pushFollow(FOLLOW_pilha_in_topdown195); + pushFollow(FOLLOW_pilha_in_topdown189); pilha(); state._fsp--; @@ -386,7 +387,7 @@ public final void topdown() throws RecognitionException { case 15 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:114:9: label { - pushFollow(FOLLOW_label_in_topdown205); + pushFollow(FOLLOW_label_in_topdown199); label(); state._fsp--; @@ -400,10 +401,10 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } catch (LabelException e) { + } catch (AcessoIndevidoMemoriaException e) { // TODO Auto-generated catch block e.printStackTrace(); - } catch (AcessoIndevidoMemoriaException e) { + } catch (LabelException e) { // TODO Auto-generated catch block e.printStackTrace(); } @@ -425,14 +426,14 @@ public final void entraNaClasse() throws RecognitionException { try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,28,FOLLOW_28_in_entraNaClasse230); if (state.failed) return ; + match(input,29,FOLLOW_29_in_entraNaClasse221); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse234); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse225); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:28: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt2=2; int LA2_0 = input.LA(1); @@ -448,7 +449,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_4==UP) ) { int LA2_5 = input.LA(5); - if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 98)) ) { + if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 99)) ) { alt2=1; } } @@ -457,12 +458,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:29: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse238); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse229); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse242); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse233); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -517,12 +518,12 @@ public final void declaracaoVariavel() throws RecognitionException { try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:9: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:7: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel282); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel271); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel284); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel273); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -564,7 +565,7 @@ public final void getfield() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,49,FOLLOW_49_in_getfield323); if (state.failed) return ; + match(input,50,FOLLOW_50_in_getfield311); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -584,8 +585,8 @@ public final void getfield() throws RecognitionException { match(input, Token.UP, null); if (state.failed) return ; - if ( state.backtracking==1 ) { - acessarCampo("getfield", classe.getText(), campo.getText()); + if ( state.backtracking==1 ) { + acessarCampo("getfield", classe.getText(), campo.getText()); } } @@ -616,7 +617,7 @@ public final void putfield() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,97,FOLLOW_97_in_putfield373); if (state.failed) return ; + match(input,98,FOLLOW_98_in_putfield360); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -637,7 +638,7 @@ public final void putfield() throws RecognitionException { if ( state.backtracking==1 ) { - acessarCampo("putfield", classe.getText(), campo.getText()); + acessarCampo("putfield", classe.getText(), campo.getText()); } } @@ -669,7 +670,7 @@ public final void invokespecial() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) { - match(input,81,FOLLOW_81_in_invokespecial423); if (state.failed) return ; + match(input,82,FOLLOW_82_in_invokespecial409); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -721,7 +722,7 @@ public final void novaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:3: ( ^( 'new' classe= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:5: ^( 'new' classe= . ) { - match(input,93,FOLLOW_93_in_novaClasse474); if (state.failed) return ; + match(input,94,FOLLOW_94_in_novaClasse460); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -761,7 +762,7 @@ public final void aritmetica() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:5: ( ^( ARITMETICA operacao= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:7: ^( ARITMETICA operacao= . ) { - match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica505); if (state.failed) return ; + match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica491); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -801,7 +802,7 @@ public final void load() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:3: ( ^( LOAD operacao= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:5: ^( LOAD operacao= . ) { - match(input,LOAD,FOLLOW_LOAD_in_load539); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_load525); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -842,7 +843,7 @@ public final void loadint() throws RecognitionException, LabelException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:5: ( ^( LOAD operacao= . operando= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:7: ^( LOAD operacao= . operando= . ) { - match(input,LOAD,FOLLOW_LOAD_in_loadint568); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_loadint554); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -886,7 +887,7 @@ public final void store() throws RecognitionException, AcessoIndevidoMemoriaExce // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:4: ( ^( STORE operacao= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:6: ^( STORE operacao= . ) { - match(input,STORE,FOLLOW_STORE_in_store611); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_store596); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -927,7 +928,7 @@ public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaE // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: ( ^( STORE operacao= . operando= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:7: ^( STORE operacao= . operando= . ) { - match(input,STORE,FOLLOW_STORE_in_storeint640); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_storeint625); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -972,7 +973,7 @@ public final void desvio() throws RecognitionException, LabelException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:5: ( ^( DESVIO operacao= . operando= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:7: ^( DESVIO operacao= . operando= . ) { - match(input,DESVIO,FOLLOW_DESVIO_in_desvio681); if (state.failed) return ; + match(input,DESVIO,FOLLOW_DESVIO_in_desvio666); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1016,7 +1017,7 @@ public final void logica() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:5: ( ^( LOGICA operacao= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:7: ^( LOGICA operacao= . ) { - match(input,LOGICA,FOLLOW_LOGICA_in_logica722); if (state.failed) return ; + match(input,LOGICA,FOLLOW_LOGICA_in_logica707); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1056,7 +1057,7 @@ public final void pilha() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:4: ( ^( PILHA operacao= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:6: ^( PILHA operacao= . ) { - match(input,PILHA,FOLLOW_PILHA_in_pilha756); if (state.failed) return ; + match(input,PILHA,FOLLOW_PILHA_in_pilha741); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1096,7 +1097,7 @@ public final void label() throws RecognitionException, LabelException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:4: ( ^( LABEL operacao= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:6: ^( LABEL operacao= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label784); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label769); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1136,14 +1137,14 @@ public final void label() throws RecognitionException, LabelException { static final String DFA1_minS = "\1\4\7\uffff\2\2\4\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; static final String DFA1_maxS = - "\1\141\7\uffff\2\2\4\uffff\5\142\2\uffff\1\142\2\uffff\4\142"; + "\1\142\7\uffff\2\2\4\uffff\5\143\2\uffff\1\143\2\uffff\4\143"; static final String DFA1_acceptS = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\uffff\1\14\1\15\1\16\1\17"+ "\5\uffff\1\10\1\11\1\uffff\1\12\1\13\4\uffff"; static final String DFA1_specialS = "\34\uffff}>"; static final String[] DFA1_transitionS = { - "\1\7\1\uffff\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\4\uffff"+ + "\1\7\1\uffff\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\5\uffff"+ "\1\14\1\11\6\uffff\1\1\24\uffff\1\3\37\uffff\1\5\13\uffff\1"+ "\6\3\uffff\1\4", "", @@ -1159,20 +1160,20 @@ public final void label() throws RecognitionException, LabelException { "", "", "", - "\137\20", - "\137\21", - "\1\22\1\23\137\24", - "\1\25\1\26\137\27", - "\137\30", + "\140\20", + "\140\21", + "\1\22\1\23\140\24", + "\1\25\1\26\140\27", + "\140\30", "", "", - "\137\31", + "\140\31", "", "", - "\1\32\137\30", - "\1\33\137\31", - "\1\23\137\24", - "\1\26\137\27" + "\1\32\140\30", + "\1\33\140\31", + "\1\23\140\24", + "\1\26\140\27" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -1210,39 +1211,39 @@ public String getDescription() { } - public static final BitSet FOLLOW_entraNaClasse_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown71 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getfield_in_topdown81 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_topdown91 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_topdown101 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_novaClasse_in_topdown111 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_aritmetica_in_topdown121 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_load_in_topdown132 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_loadint_in_topdown142 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_store_in_topdown153 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_storeint_in_topdown163 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_desvio_in_topdown174 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_logica_in_topdown185 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_pilha_in_topdown195 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_topdown205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_entraNaClasse230 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse234 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000007FFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse238 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse242 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel282 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000007FFFFFFFFL}); - public static final BitSet FOLLOW_49_in_getfield323 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_97_in_putfield373 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_81_in_invokespecial423 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_93_in_novaClasse474 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARITMETICA_in_aritmetica505 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_load539 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_loadint568 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_store611 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_storeint640 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_DESVIO_in_desvio681 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOGICA_in_logica722 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PILHA_in_pilha756 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label784 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown59 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown69 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getfield_in_topdown79 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_topdown89 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_topdown99 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_novaClasse_in_topdown109 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_aritmetica_in_topdown119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_load_in_topdown129 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_loadint_in_topdown139 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_store_in_topdown149 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_storeint_in_topdown159 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_desvio_in_topdown169 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_logica_in_topdown179 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_pilha_in_topdown189 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_topdown199 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_entraNaClasse221 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse225 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse229 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse233 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel271 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel273 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_50_in_getfield311 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_98_in_putfield360 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_82_in_invokespecial409 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_94_in_novaClasse460 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARITMETICA_in_aritmetica491 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_load525 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_loadint554 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_store596 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_storeint625 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_DESVIO_in_desvio666 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOGICA_in_logica707 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PILHA_in_pilha741 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label769 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index 7779d72..b4df8bc 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__25=25 T__26=26 T__27=27 T__28=28 @@ -72,6 +71,7 @@ T__95=95 T__96=96 T__97=97 T__98=98 +T__99=99 ARITMETICA=4 BODY=5 DESVIO=6 @@ -86,84 +86,85 @@ LOAD=14 LOGICA=15 MAIN=16 MEMBRO_CLASSE=17 -NEWLINE=18 -NULL=19 -PILHA=20 -STORE=21 -TIPO_REF=22 -VOID=23 -WS=24 -'('=25 -'()'=26 -')'=27 -'.class'=28 -'.end class'=29 -'.end method'=30 -'.field'=31 -'.method'=32 -'.super'=33 -'/'=34 -':'=35 -'aconst_null'=36 -'aload'=37 -'aload_0'=38 -'aload_1'=39 -'aload_2'=40 -'aload_3'=41 -'areturn'=42 -'astore'=43 -'astore_0'=44 -'astore_1'=45 -'astore_2'=46 -'astore_3'=47 -'dup'=48 -'getfield'=49 -'goto'=50 -'iadd'=51 -'iand'=52 -'iconst_0'=53 -'iconst_1'=54 -'iconst_2'=55 -'iconst_3'=56 -'iconst_4'=57 -'iconst_5'=58 -'iconst_m1'=59 -'idiv'=60 -'if_icmpeq'=61 -'if_icmpge'=62 -'if_icmpgt'=63 -'if_icmple'=64 -'if_icmplt'=65 -'if_icmpne'=66 -'ifeq'=67 -'ifge'=68 -'ifgt'=69 -'ifle'=70 -'iflt'=71 -'ifne'=72 -'iinc'=73 -'iload'=74 -'iload_0'=75 -'iload_1'=76 -'iload_2'=77 -'iload_3'=78 -'imul'=79 -'ineg'=80 -'invokespecial'=81 -'ior'=82 -'irem'=83 -'ireturn'=84 -'istore'=85 -'istore_0'=86 -'istore_1'=87 -'istore_2'=88 -'istore_3'=89 -'isub'=90 -'ixor'=91 -'ldc'=92 -'new'=93 -'nop'=94 -'pop'=95 -'pop2'=96 -'putfield'=97 -'return'=98 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PILHA=21 +STORE=22 +TIPO_REF=23 +VOID=24 +WS=25 +'('=26 +'()'=27 +')'=28 +'.class'=29 +'.end class'=30 +'.end method'=31 +'.field'=32 +'.method'=33 +'.super'=34 +'/'=35 +':'=36 +'aconst_null'=37 +'aload'=38 +'aload_0'=39 +'aload_1'=40 +'aload_2'=41 +'aload_3'=42 +'areturn'=43 +'astore'=44 +'astore_0'=45 +'astore_1'=46 +'astore_2'=47 +'astore_3'=48 +'dup'=49 +'getfield'=50 +'goto'=51 +'iadd'=52 +'iand'=53 +'iconst_0'=54 +'iconst_1'=55 +'iconst_2'=56 +'iconst_3'=57 +'iconst_4'=58 +'iconst_5'=59 +'iconst_m1'=60 +'idiv'=61 +'if_icmpeq'=62 +'if_icmpge'=63 +'if_icmpgt'=64 +'if_icmple'=65 +'if_icmplt'=66 +'if_icmpne'=67 +'ifeq'=68 +'ifge'=69 +'ifgt'=70 +'ifle'=71 +'iflt'=72 +'ifne'=73 +'iinc'=74 +'iload'=75 +'iload_0'=76 +'iload_1'=77 +'iload_2'=78 +'iload_3'=79 +'imul'=80 +'ineg'=81 +'invokespecial'=82 +'ior'=83 +'irem'=84 +'ireturn'=85 +'istore'=86 +'istore_0'=87 +'istore_1'=88 +'istore_2'=89 +'istore_3'=90 +'isub'=91 +'ixor'=92 +'ldc'=93 +'new'=94 +'nop'=95 +'pop'=96 +'pop2'=97 +'putfield'=98 +'return'=99 diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java index b863eac..d3a676c 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -2,7 +2,7 @@ import java.util.*; -public class SimboloClasse extends SimboloComEscopo implements Escopo, Tipo { +public class SimboloClasse extends SimboloComEscopo implements Tipo { /** This is the superclass not escopoEnvolvente field. We still record * the enclosing Escopo so we can push in and pop out of class defs. */ diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java new file mode 100644 index 0000000..0bddb0a --- /dev/null +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -0,0 +1,28 @@ +package br.ufpb.iged.interpretador.symboltable.classes; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class SimboloMetodo extends SimboloComEscopo{ + + Map argumentos = new LinkedHashMap(); + + public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; + + public byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; + + public Object[] memoriaLocal; + + public SimboloMetodo(String nome, Tipo tipoRet, Escopo parent) { + super(nome, tipoRet, parent); + } + + public Map obterMembros() { + return argumentos; + } + + public String obterNome() { + return nome+"("+stripBrackets(argumentos.keySet().toString())+")"; + } + +} From 69a367f3c1435cdd0b0de8d203a960f42603d555 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 3 Sep 2012 22:54:52 -0300 Subject: [PATCH 52/79] commit --- .../iged/interpretador/gramaticas/Assembler.g | 6 +- .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 75084 -> 75797 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 23890 -> 23890 bytes .../iged/interpretador/gramaticas/Assembler.g | 6 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 577 +++++++++--------- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 6 +- 21 files changed, 301 insertions(+), 298 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index d41d761..b9cd96d 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -80,11 +80,11 @@ membroClasse -> ^(METHOD_DECL MAIN ^(BODY operacao*) $ret) | '.method' ID '()' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) - | '.method' ID '(' params ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' - -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) + | '.method' ID '(' params = parametros ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^(METHOD_DECL ID $params ^(BODY operacao*) $ret) ; -params : (ID | TIPO_REF)+; +parametros : (ID | TIPO_REF)+; retorno : 'areturn' | 'ireturn' | 'return'; diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index 5cf2aa6325792052a35b9d87a0750ca15ff2bdaa..96123d500459a5b0f5c00cf2bc7f54359aafbec3 100644 GIT binary patch delta 19 acmZ3-x{h^&3ln4SWLG8|#{S7oOgaEQBn8v} delta 19 acmZ3-x{h^&3ln44WLG8|#-7PdOgaEP^aaiU diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class index 18d2f8b35f4f3793472739896183ff7043d4c7e8..8dff739598ba51ca7dda684dc62aeb298ee4c4d9 100644 GIT binary patch delta 19 bcmaFC`hs;s9TVfz$@NS&j4vneVbTErQMw1H delta 19 bcmaFC`hs;s9TVfD$@NS&jL#~L4AbP9Od^vDm^2yrC(mNi0RT~q27mwn delta 21 dcmX@cdW>~L3=<>gOgaEGoCL%G diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index 73908ad675a1d45bb2b9927e03fb3dd86c74c554..8b7d36b5c5287c553f902d05f04b6f939d15cc4a 100644 GIT binary patch delta 19 acmbQkI)`+jj7uh0GU)&SJw^r5 delta 19 bcmZ3=x|DT;H523f$u>+jj0-1MGU)&SJr)Ja diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class index 002630849a0e29d1f14f16193ba7b4e230d955bc..39c750b75b803f840bdf963643b14cce13e85916 100644 GIT binary patch delta 19 bcmZ3)x`=gy1ry`!$(BqujB_WKG3fvRJRAkI delta 19 bcmZ3)x`=gy1ry_p$(BqujI$<}G3fvRJM0Cn diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class index 4636966d4674ea7327b5485b382915505e975a00..93873593114f2a16c46d89b194aa6b97f7d2b92f 100644 GIT binary patch delta 19 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 Q1!0&@#`H~0r-1x_02>j?iU0rr diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index 458e8f48c26c99e6dd99de72460a119e78b09566..6b12aba22465c3ad790cc3a70c875cf1bac4c0a3 100644 GIT binary patch delta 106 zcmcb#i}BJf#tqjL7>yKIakqk@<&BeW<~~=$sfgK zfT}>^@{84!3>g(Ss|U|vocujneDkdkTSjIzX2s1?VRIOP65GQaSSBA15#P)gH)eQ&Ex82+HG}d_j?Ka;~E7 ^(METHOD_DECL MAIN ^(BODY operacao*) $ret) | '.method' ID '()' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) - | '.method' ID '(' params ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' - -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) + | '.method' ID '(' params = parametros ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + -> ^(METHOD_DECL ID $params ^(BODY operacao*) $ret) ; -params : (ID | TIPO_REF)+; +parametros : (ID | TIPO_REF)+; retorno : 'areturn' | 'ireturn' | 'return'; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 6974447..ce87c42 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 22:34:38 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 22:52:04 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 9677194..a3ca402 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 22:34:37 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 22:52:03 package br.ufpb.iged.interpretador.parser; @@ -980,7 +980,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: ID, superClasse, 29, membroClasse + // elements: 29, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1159,7 +1159,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params= parametros ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1193,12 +1193,14 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti Token string_literal57=null; Token ID58=null; Token char_literal59=null; - Token char_literal61=null; - Token NEWLINE63=null; - Token NEWLINE65=null; - Token string_literal66=null; + Token char_literal60=null; + Token NEWLINE62=null; + Token NEWLINE64=null; + Token string_literal65=null; AssemblerParser.retorno_return ret =null; + AssemblerParser.parametros_return params =null; + AssemblerParser.tipo_return tipo31 =null; AssemblerParser.operacao_return operacao37 =null; @@ -1209,11 +1211,9 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti AssemblerParser.operacao_return operacao54 =null; - AssemblerParser.params_return params60 =null; - - AssemblerParser.tipo_return tipo62 =null; + AssemblerParser.tipo_return tipo61 =null; - AssemblerParser.operacao_return operacao64 =null; + AssemblerParser.operacao_return operacao63 =null; BytecodesAST string_literal29_tree=null; @@ -1242,10 +1242,10 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST string_literal57_tree=null; BytecodesAST ID58_tree=null; BytecodesAST char_literal59_tree=null; - BytecodesAST char_literal61_tree=null; - BytecodesAST NEWLINE63_tree=null; - BytecodesAST NEWLINE65_tree=null; - BytecodesAST string_literal66_tree=null; + BytecodesAST char_literal60_tree=null; + BytecodesAST NEWLINE62_tree=null; + BytecodesAST NEWLINE64_tree=null; + BytecodesAST string_literal65_tree=null; RewriteRuleTokenStream stream_MAIN=new RewriteRuleTokenStream(adaptor,"token MAIN"); RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); @@ -1258,12 +1258,12 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_retorno=new RewriteRuleSubtreeStream(adaptor,"rule retorno"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); - RewriteRuleSubtreeStream stream_params=new RewriteRuleSubtreeStream(adaptor,"rule params"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params= parametros ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) ) int alt12=5; int LA12_0 = input.LA(1); @@ -1559,7 +1559,7 @@ else if ( (LA12_5==26) ) { // AST REWRITE - // elements: ret, operacao, MAIN + // elements: MAIN, operacao, ret // token labels: // rule labels: ret, retval // token list labels: @@ -1685,7 +1685,7 @@ else if ( (LA12_5==26) ) { // AST REWRITE - // elements: operacao, ret, ID + // elements: ret, operacao, ID // token labels: // rule labels: ret, retval // token list labels: @@ -1739,7 +1739,7 @@ else if ( (LA12_5==26) ) { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.method' ID '(' params ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.method' ID '(' params= parametros ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' { string_literal57=(Token)match(input,33,FOLLOW_33_in_membroClasse709); stream_33.add(string_literal57); @@ -1753,29 +1753,29 @@ else if ( (LA12_5==26) ) { stream_26.add(char_literal59); - pushFollow(FOLLOW_params_in_membroClasse715); - params60=params(); + pushFollow(FOLLOW_parametros_in_membroClasse719); + params=parametros(); state._fsp--; - stream_params.add(params60.getTree()); + stream_parametros.add(params.getTree()); - char_literal61=(Token)match(input,28,FOLLOW_28_in_membroClasse717); - stream_28.add(char_literal61); + char_literal60=(Token)match(input,28,FOLLOW_28_in_membroClasse721); + stream_28.add(char_literal60); - pushFollow(FOLLOW_tipo_in_membroClasse719); - tipo62=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse723); + tipo61=tipo(); state._fsp--; - stream_tipo.add(tipo62.getTree()); + stream_tipo.add(tipo61.getTree()); - NEWLINE63=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse721); - stream_NEWLINE.add(NEWLINE63); + NEWLINE62=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse725); + stream_NEWLINE.add(NEWLINE62); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:48: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:61: ( operacao )* loop11: do { int alt11=2; @@ -1788,14 +1788,14 @@ else if ( (LA12_5==26) ) { switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:48: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:61: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse723); - operacao64=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse727); + operacao63=operacao(); state._fsp--; - stream_operacao.add(operacao64.getTree()); + stream_operacao.add(operacao63.getTree()); } break; @@ -1806,36 +1806,37 @@ else if ( (LA12_5==26) ) { } while (true); - pushFollow(FOLLOW_retorno_in_membroClasse730); + pushFollow(FOLLOW_retorno_in_membroClasse734); ret=retorno(); state._fsp--; stream_retorno.add(ret.getTree()); - NEWLINE65=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse732); - stream_NEWLINE.add(NEWLINE65); + NEWLINE64=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse736); + stream_NEWLINE.add(NEWLINE64); - string_literal66=(Token)match(input,31,FOLLOW_31_in_membroClasse734); - stream_31.add(string_literal66); + string_literal65=(Token)match(input,31,FOLLOW_31_in_membroClasse738); + stream_31.add(string_literal65); // AST REWRITE - // elements: operacao, ret, ID + // elements: params, ID, operacao, ret // token labels: - // rule labels: ret, retval + // rule labels: ret, retval, params // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_ret=new RewriteRuleSubtreeStream(adaptor,"rule ret",ret!=null?ret.tree:null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_params=new RewriteRuleSubtreeStream(adaptor,"rule params",params!=null?params.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 84:9: -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) + // 84:9: -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:12: ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:12: ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1846,14 +1847,16 @@ else if ( (LA12_5==26) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:29: ^( BODY ( operacao )* ) + adaptor.addChild(root_1, stream_params.nextTree()); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:37: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:36: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:44: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1899,33 +1902,33 @@ else if ( (LA12_5==26) ) { // $ANTLR end "membroClasse" - public static class params_return extends ParserRuleReturnScope { + public static class parametros_return extends ParserRuleReturnScope { BytecodesAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "params" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: params : ( ID | TIPO_REF )+ ; - public final AssemblerParser.params_return params() throws RecognitionException { - AssemblerParser.params_return retval = new AssemblerParser.params_return(); + // $ANTLR start "parametros" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: parametros : ( ID | TIPO_REF )+ ; + public final AssemblerParser.parametros_return parametros() throws RecognitionException { + AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - Token set67=null; + Token set66=null; - BytecodesAST set67_tree=null; + BytecodesAST set66_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:9: ( ( ID | TIPO_REF )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:11: ( ID | TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:12: ( ( ID | TIPO_REF )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: ( ID | TIPO_REF )+ { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:11: ( ID | TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: ( ID | TIPO_REF )+ int cnt13=0; loop13: do { @@ -1941,12 +1944,12 @@ public final AssemblerParser.params_return params() throws RecognitionException case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { - set67=(Token)input.LT(1); + set66=(Token)input.LT(1); if ( input.LA(1)==ID||input.LA(1)==TIPO_REF ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set67) + (BytecodesAST)adaptor.create(set66) ); state.errorRecovery=false; } @@ -1990,7 +1993,7 @@ public final AssemblerParser.params_return params() throws RecognitionException } return retval; } - // $ANTLR end "params" + // $ANTLR end "parametros" public static class retorno_return extends ParserRuleReturnScope { @@ -2008,9 +2011,9 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST root_0 = null; - Token set68=null; + Token set67=null; - BytecodesAST set68_tree=null; + BytecodesAST set67_tree=null; try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: ( 'areturn' | 'ireturn' | 'return' ) @@ -2019,12 +2022,12 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio root_0 = (BytecodesAST)adaptor.nil(); - set68=(Token)input.LT(1); + set67=(Token)input.LT(1); if ( input.LA(1)==43||input.LA(1)==85||input.LA(1)==99 ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set68) + (BytecodesAST)adaptor.create(set67) ); state.errorRecovery=false; } @@ -2074,20 +2077,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal71=null; + Token char_literal70=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; - AssemblerParser.tipo_return tipo69 =null; + AssemblerParser.tipo_return tipo68 =null; - AssemblerParser.tipo_return tipo70 =null; + AssemblerParser.tipo_return tipo69 =null; BytecodesAST a_tree=null; - BytecodesAST char_literal71_tree=null; + BytecodesAST char_literal70_tree=null; RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); @@ -2133,26 +2136,26 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,50,FOLLOW_50_in_manipulacaoObjetos826); + a=(Token)match(input,50,FOLLOW_50_in_manipulacaoObjetos832); stream_50.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos832); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos838); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos834); - tipo69=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos840); + tipo68=tipo(); state._fsp--; - stream_tipo.add(tipo69.getTree()); + stream_tipo.add(tipo68.getTree()); // AST REWRITE - // elements: b, 50, tipo + // elements: 50, b, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2189,26 +2192,26 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,98,FOLLOW_98_in_manipulacaoObjetos872); + a=(Token)match(input,98,FOLLOW_98_in_manipulacaoObjetos878); stream_98.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos878); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos884); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos880); - tipo70=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos886); + tipo69=tipo(); state._fsp--; - stream_tipo.add(tipo70.getTree()); + stream_tipo.add(tipo69.getTree()); // AST REWRITE - // elements: b, tipo, 98 + // elements: tipo, 98, b // token labels: // rule labels: retval, b // token list labels: @@ -2245,22 +2248,22 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,82,FOLLOW_82_in_manipulacaoObjetos918); + a=(Token)match(input,82,FOLLOW_82_in_manipulacaoObjetos924); stream_82.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos924); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos930); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal71=(Token)match(input,35,FOLLOW_35_in_manipulacaoObjetos926); - stream_35.add(char_literal71); + char_literal70=(Token)match(input,35,FOLLOW_35_in_manipulacaoObjetos932); + stream_35.add(char_literal70); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos932); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos938); d=chamadaMetodo(); state._fsp--; @@ -2268,7 +2271,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: 82, d, c + // elements: c, 82, d // token labels: // rule labels: retval, d, c // token list labels: @@ -2306,11 +2309,11 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:22: a= 'new' c= classe { - a=(Token)match(input,94,FOLLOW_94_in_manipulacaoObjetos993); + a=(Token)match(input,94,FOLLOW_94_in_manipulacaoObjetos999); stream_94.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos998); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1004); c=classe(); state._fsp--; @@ -2389,9 +2392,9 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set72=null; + Token set71=null; - BytecodesAST set72_tree=null; + BytecodesAST set71_tree=null; try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:6: ( INT | VOID | TIPO_REF ) @@ -2400,12 +2403,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { root_0 = (BytecodesAST)adaptor.nil(); - set72=(Token)input.LT(1); + set71=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set72) + (BytecodesAST)adaptor.create(set71) ); state.errorRecovery=false; } @@ -2519,7 +2522,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:16: a= 'iadd' { - a=(Token)match(input,52,FOLLOW_52_in_aritmetica1076); + a=(Token)match(input,52,FOLLOW_52_in_aritmetica1082); stream_52.add(a); @@ -2528,7 +2531,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:19: a= 'isub' { - a=(Token)match(input,91,FOLLOW_91_in_aritmetica1100); + a=(Token)match(input,91,FOLLOW_91_in_aritmetica1106); stream_91.add(a); @@ -2537,7 +2540,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:19: a= 'imul' { - a=(Token)match(input,80,FOLLOW_80_in_aritmetica1124); + a=(Token)match(input,80,FOLLOW_80_in_aritmetica1130); stream_80.add(a); @@ -2546,7 +2549,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:19: a= 'idiv' { - a=(Token)match(input,61,FOLLOW_61_in_aritmetica1148); + a=(Token)match(input,61,FOLLOW_61_in_aritmetica1154); stream_61.add(a); @@ -2555,7 +2558,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:19: a= 'irem' { - a=(Token)match(input,84,FOLLOW_84_in_aritmetica1172); + a=(Token)match(input,84,FOLLOW_84_in_aritmetica1178); stream_84.add(a); @@ -2564,7 +2567,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:19: a= 'iinc' { - a=(Token)match(input,74,FOLLOW_74_in_aritmetica1196); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica1202); stream_74.add(a); @@ -2573,7 +2576,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:19: a= 'ineg' { - a=(Token)match(input,81,FOLLOW_81_in_aritmetica1220); + a=(Token)match(input,81,FOLLOW_81_in_aritmetica1226); stream_81.add(a); @@ -2772,7 +2775,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'iconst_m1' { - a=(Token)match(input,60,FOLLOW_60_in_load1294); + a=(Token)match(input,60,FOLLOW_60_in_load1300); stream_60.add(a); @@ -2781,7 +2784,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:13: a= 'iconst_0' { - a=(Token)match(input,54,FOLLOW_54_in_load1312); + a=(Token)match(input,54,FOLLOW_54_in_load1318); stream_54.add(a); @@ -2790,7 +2793,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:13: a= 'iconst_1' { - a=(Token)match(input,55,FOLLOW_55_in_load1330); + a=(Token)match(input,55,FOLLOW_55_in_load1336); stream_55.add(a); @@ -2799,7 +2802,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:13: a= 'iconst_2' { - a=(Token)match(input,56,FOLLOW_56_in_load1348); + a=(Token)match(input,56,FOLLOW_56_in_load1354); stream_56.add(a); @@ -2808,7 +2811,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:13: a= 'iconst_3' { - a=(Token)match(input,57,FOLLOW_57_in_load1366); + a=(Token)match(input,57,FOLLOW_57_in_load1372); stream_57.add(a); @@ -2817,7 +2820,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:13: a= 'iconst_4' { - a=(Token)match(input,58,FOLLOW_58_in_load1384); + a=(Token)match(input,58,FOLLOW_58_in_load1390); stream_58.add(a); @@ -2826,7 +2829,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'iconst_5' { - a=(Token)match(input,59,FOLLOW_59_in_load1402); + a=(Token)match(input,59,FOLLOW_59_in_load1408); stream_59.add(a); @@ -2835,7 +2838,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'aconst_null' { - a=(Token)match(input,37,FOLLOW_37_in_load1420); + a=(Token)match(input,37,FOLLOW_37_in_load1426); stream_37.add(a); @@ -2844,7 +2847,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'iload_0' { - a=(Token)match(input,76,FOLLOW_76_in_load1438); + a=(Token)match(input,76,FOLLOW_76_in_load1444); stream_76.add(a); @@ -2853,7 +2856,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'iload_1' { - a=(Token)match(input,77,FOLLOW_77_in_load1456); + a=(Token)match(input,77,FOLLOW_77_in_load1462); stream_77.add(a); @@ -2862,7 +2865,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'iload_2' { - a=(Token)match(input,78,FOLLOW_78_in_load1474); + a=(Token)match(input,78,FOLLOW_78_in_load1480); stream_78.add(a); @@ -2871,7 +2874,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'iload_3' { - a=(Token)match(input,79,FOLLOW_79_in_load1492); + a=(Token)match(input,79,FOLLOW_79_in_load1498); stream_79.add(a); @@ -2880,7 +2883,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'aload_0' { - a=(Token)match(input,39,FOLLOW_39_in_load1510); + a=(Token)match(input,39,FOLLOW_39_in_load1516); stream_39.add(a); @@ -2889,7 +2892,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 14 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'aload_1' { - a=(Token)match(input,40,FOLLOW_40_in_load1528); + a=(Token)match(input,40,FOLLOW_40_in_load1534); stream_40.add(a); @@ -2898,7 +2901,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 15 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'aload_2' { - a=(Token)match(input,41,FOLLOW_41_in_load1546); + a=(Token)match(input,41,FOLLOW_41_in_load1552); stream_41.add(a); @@ -2907,7 +2910,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 16 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'aload_3' { - a=(Token)match(input,42,FOLLOW_42_in_load1564); + a=(Token)match(input,42,FOLLOW_42_in_load1570); stream_42.add(a); @@ -3031,11 +3034,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,75,FOLLOW_75_in_loadint1614); + a=(Token)match(input,75,FOLLOW_75_in_loadint1620); stream_75.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1620); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1626); stream_INTEIRO.add(b); @@ -3044,11 +3047,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,93,FOLLOW_93_in_loadint1640); + a=(Token)match(input,93,FOLLOW_93_in_loadint1646); stream_93.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1646); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1652); stream_INTEIRO.add(b); @@ -3057,11 +3060,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,38,FOLLOW_38_in_loadint1666); + a=(Token)match(input,38,FOLLOW_38_in_loadint1672); stream_38.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1672); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1678); stream_INTEIRO.add(b); @@ -3072,7 +3075,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3215,7 +3218,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:11: a= 'istore_0' { - a=(Token)match(input,87,FOLLOW_87_in_store1734); + a=(Token)match(input,87,FOLLOW_87_in_store1740); stream_87.add(a); @@ -3224,7 +3227,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'istore_1' { - a=(Token)match(input,88,FOLLOW_88_in_store1752); + a=(Token)match(input,88,FOLLOW_88_in_store1758); stream_88.add(a); @@ -3233,7 +3236,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'istore_2' { - a=(Token)match(input,89,FOLLOW_89_in_store1770); + a=(Token)match(input,89,FOLLOW_89_in_store1776); stream_89.add(a); @@ -3242,7 +3245,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'istore_3' { - a=(Token)match(input,90,FOLLOW_90_in_store1788); + a=(Token)match(input,90,FOLLOW_90_in_store1794); stream_90.add(a); @@ -3251,7 +3254,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'astore_0' { - a=(Token)match(input,45,FOLLOW_45_in_store1806); + a=(Token)match(input,45,FOLLOW_45_in_store1812); stream_45.add(a); @@ -3260,7 +3263,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'astore_1' { - a=(Token)match(input,46,FOLLOW_46_in_store1824); + a=(Token)match(input,46,FOLLOW_46_in_store1830); stream_46.add(a); @@ -3269,7 +3272,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'astore_2' { - a=(Token)match(input,47,FOLLOW_47_in_store1842); + a=(Token)match(input,47,FOLLOW_47_in_store1848); stream_47.add(a); @@ -3278,7 +3281,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'astore_3' { - a=(Token)match(input,48,FOLLOW_48_in_store1860); + a=(Token)match(input,48,FOLLOW_48_in_store1866); stream_48.add(a); @@ -3392,11 +3395,11 @@ else if ( (LA19_0==44) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,86,FOLLOW_86_in_storeint1914); + a=(Token)match(input,86,FOLLOW_86_in_storeint1920); stream_86.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1920); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1926); stream_INTEIRO.add(b); @@ -3405,11 +3408,11 @@ else if ( (LA19_0==44) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,44,FOLLOW_44_in_storeint1941); + a=(Token)match(input,44,FOLLOW_44_in_storeint1947); stream_44.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1947); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1953); stream_INTEIRO.add(b); @@ -3420,7 +3423,7 @@ else if ( (LA19_0==44) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3533,7 +3536,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: a= 'iand' { - a=(Token)match(input,53,FOLLOW_53_in_logica2007); + a=(Token)match(input,53,FOLLOW_53_in_logica2013); stream_53.add(a); @@ -3542,7 +3545,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:14: a= 'ior' { - a=(Token)match(input,83,FOLLOW_83_in_logica2026); + a=(Token)match(input,83,FOLLOW_83_in_logica2032); stream_83.add(a); @@ -3551,7 +3554,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'ixor' { - a=(Token)match(input,92,FOLLOW_92_in_logica2045); + a=(Token)match(input,92,FOLLOW_92_in_logica2051); stream_92.add(a); @@ -3735,11 +3738,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: a= 'ifeq' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2096); + a=(Token)match(input,68,FOLLOW_68_in_desvio2102); stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2102); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2108); stream_ID.add(b); @@ -3748,11 +3751,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:14: a= 'ifne' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2121); + a=(Token)match(input,73,FOLLOW_73_in_desvio2127); stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2127); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2133); stream_ID.add(b); @@ -3761,11 +3764,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: a= 'iflt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2146); + a=(Token)match(input,72,FOLLOW_72_in_desvio2152); stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2152); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2158); stream_ID.add(b); @@ -3774,11 +3777,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:14: a= 'ifge' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2171); + a=(Token)match(input,69,FOLLOW_69_in_desvio2177); stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2177); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2183); stream_ID.add(b); @@ -3787,11 +3790,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'ifgt' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2196); + a=(Token)match(input,70,FOLLOW_70_in_desvio2202); stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2202); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2208); stream_ID.add(b); @@ -3800,11 +3803,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:14: a= 'ifle' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2221); + a=(Token)match(input,71,FOLLOW_71_in_desvio2227); stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2227); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2233); stream_ID.add(b); @@ -3813,11 +3816,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio2246); + a=(Token)match(input,62,FOLLOW_62_in_desvio2252); stream_62.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2252); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2258); stream_ID.add(b); @@ -3826,11 +3829,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,67,FOLLOW_67_in_desvio2271); + a=(Token)match(input,67,FOLLOW_67_in_desvio2277); stream_67.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2277); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2283); stream_ID.add(b); @@ -3839,11 +3842,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio2296); + a=(Token)match(input,66,FOLLOW_66_in_desvio2302); stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2302); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2308); stream_ID.add(b); @@ -3852,11 +3855,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2321); + a=(Token)match(input,63,FOLLOW_63_in_desvio2327); stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2327); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2333); stream_ID.add(b); @@ -3865,11 +3868,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2346); + a=(Token)match(input,64,FOLLOW_64_in_desvio2352); stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2352); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2358); stream_ID.add(b); @@ -3878,11 +3881,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'if_icmple' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio2371); + a=(Token)match(input,65,FOLLOW_65_in_desvio2377); stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2377); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2383); stream_ID.add(b); @@ -3891,11 +3894,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'goto' b= ID { - a=(Token)match(input,51,FOLLOW_51_in_desvio2396); + a=(Token)match(input,51,FOLLOW_51_in_desvio2402); stream_51.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2402); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2408); stream_ID.add(b); @@ -4019,7 +4022,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:11: a= 'pop' { - a=(Token)match(input,96,FOLLOW_96_in_pilha2463); + a=(Token)match(input,96,FOLLOW_96_in_pilha2469); stream_96.add(a); @@ -4028,7 +4031,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:13: a= 'pop2' { - a=(Token)match(input,97,FOLLOW_97_in_pilha2481); + a=(Token)match(input,97,FOLLOW_97_in_pilha2487); stream_97.add(a); @@ -4037,7 +4040,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:13: a= 'dup' { - a=(Token)match(input,49,FOLLOW_49_in_pilha2499); + a=(Token)match(input,49,FOLLOW_49_in_pilha2505); stream_49.add(a); @@ -4118,11 +4121,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal73=null; + Token char_literal72=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal73_tree=null; + BytecodesAST char_literal72_tree=null; BytecodesAST cls_tree=null; @@ -4162,7 +4165,7 @@ public final AssemblerParser.classe_return classe() throws RecognitionException case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2565); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2571); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4172,11 +4175,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal73=(Token)match(input,35,FOLLOW_35_in_classe2567); - char_literal73_tree = - (BytecodesAST)adaptor.create(char_literal73) + char_literal72=(Token)match(input,35,FOLLOW_35_in_classe2573); + char_literal72_tree = + (BytecodesAST)adaptor.create(char_literal72) ; - adaptor.addChild(root_0, char_literal73_tree); + adaptor.addChild(root_0, char_literal72_tree); } @@ -4191,7 +4194,7 @@ public final AssemblerParser.classe_return classe() throws RecognitionException // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:25: (cls+= ID ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2576); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2582); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4268,21 +4271,21 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2616); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2622); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2622); + par=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2628); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2628); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2634); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -4337,12 +4340,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal74=null; + Token char_literal73=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal74_tree=null; + BytecodesAST char_literal73_tree=null; BytecodesAST cls_tree=null; @@ -4378,7 +4381,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2668); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2674); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4388,11 +4391,11 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal74=(Token)match(input,35,FOLLOW_35_in_campo2670); - char_literal74_tree = - (BytecodesAST)adaptor.create(char_literal74) + char_literal73=(Token)match(input,35,FOLLOW_35_in_campo2676); + char_literal73_tree = + (BytecodesAST)adaptor.create(char_literal73) ; - adaptor.addChild(root_0, char_literal74_tree); + adaptor.addChild(root_0, char_literal73_tree); } @@ -4408,7 +4411,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2678); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2684); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -4507,107 +4510,107 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { public static final BitSet FOLLOW_33_in_membroClasse709 = new BitSet(new long[]{0x0000000000000200L}); public static final BitSet FOLLOW_ID_in_membroClasse711 = new BitSet(new long[]{0x0000000004000000L}); public static final BitSet FOLLOW_26_in_membroClasse713 = new BitSet(new long[]{0x0000000000800200L}); - public static final BitSet FOLLOW_params_in_membroClasse715 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_membroClasse717 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse719 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse721 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse723 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_retorno_in_membroClasse730 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse732 = new BitSet(new long[]{0x0000000080000000L}); - public static final BitSet FOLLOW_31_in_membroClasse734 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_manipulacaoObjetos826 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos832 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos834 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_manipulacaoObjetos872 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos878 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos880 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_manipulacaoObjetos918 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos924 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_manipulacaoObjetos926 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos932 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_manipulacaoObjetos993 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos998 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_aritmetica1076 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_aritmetica1100 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_aritmetica1124 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_aritmetica1148 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_aritmetica1172 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica1196 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_aritmetica1220 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load1294 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load1312 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load1330 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load1348 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load1366 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load1384 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load1402 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load1420 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load1438 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_load1456 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_load1474 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_load1492 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load1510 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load1528 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load1546 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load1564 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_loadint1614 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1620 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_loadint1640 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1646 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_loadint1666 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1672 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_store1734 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_store1752 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_store1770 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_store1788 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_store1806 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_store1824 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_store1842 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_store1860 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_storeint1914 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1920 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_storeint1941 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1947 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_logica2007 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_logica2026 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_logica2045 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2096 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2102 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2121 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2127 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2146 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2152 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2171 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2177 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2196 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2202 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2221 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2227 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio2246 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2252 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_desvio2271 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2277 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio2296 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2302 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2321 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2327 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2346 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2352 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio2371 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2377 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio2396 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2402 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_pilha2463 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_pilha2481 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_pilha2499 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2565 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_classe2567 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_classe2576 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2616 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_chamadaMetodo2622 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2628 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2668 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_campo2670 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_campo2678 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parametros_in_membroClasse719 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_membroClasse721 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse723 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse725 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse727 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_retorno_in_membroClasse734 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse736 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_31_in_membroClasse738 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_manipulacaoObjetos832 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos838 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_manipulacaoObjetos878 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos884 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos886 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_manipulacaoObjetos924 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos930 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_manipulacaoObjetos932 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos938 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_manipulacaoObjetos999 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1004 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_aritmetica1082 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_aritmetica1106 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_aritmetica1130 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_aritmetica1154 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_aritmetica1178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica1202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_aritmetica1226 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load1300 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load1318 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load1336 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load1354 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load1372 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load1390 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load1408 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load1426 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load1444 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_load1462 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_load1480 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_load1498 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load1516 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load1534 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load1552 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load1570 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_loadint1620 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1626 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_loadint1646 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1652 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_loadint1672 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1678 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_store1740 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_store1758 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_store1776 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_store1794 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_store1812 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_store1830 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_store1848 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_store1866 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_storeint1920 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1926 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_storeint1947 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1953 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_logica2013 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_logica2032 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_logica2051 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2102 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2108 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2127 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2133 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2152 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2158 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2177 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2183 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2202 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2208 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2227 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2233 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio2252 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2258 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_desvio2277 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2283 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio2302 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2308 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2327 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2333 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2352 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2358 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio2377 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2383 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio2402 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2408 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_pilha2469 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_pilha2487 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_pilha2505 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2571 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_classe2573 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_classe2582 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2622 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_chamadaMetodo2628 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2634 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2674 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_campo2676 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_campo2684 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 04e8e27..207cf35 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 22:34:39 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 22:52:05 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index d846dd5..c880a48 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 22:34:39 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 22:52:05 package br.ufpb.iged.interpretador.parser; @@ -401,10 +401,10 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } catch (AcessoIndevidoMemoriaException e) { + } catch (LabelException e) { // TODO Auto-generated catch block e.printStackTrace(); - } catch (LabelException e) { + } catch (AcessoIndevidoMemoriaException e) { // TODO Auto-generated catch block e.printStackTrace(); } From 3525997629cb5e8f0258153c4f0873606b49d004 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 3 Sep 2012 23:06:27 -0300 Subject: [PATCH 53/79] commit --- .../iged/interpretador/gramaticas/Assembler.g | 11 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 7 + .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes ...semblerParser$definicaoClasse_return.class | Bin 701 -> 701 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 692 -> 692 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../AssemblerParser$superClasse_return.class | Bin 689 -> 689 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 75797 -> 72588 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 14214 -> 14297 bytes .../iged/interpretador/gramaticas/Assembler.g | 11 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 7 + .../interpretador/parser/AssemblerLexer.java | 60 +- .../interpretador/parser/AssemblerParser.java | 1396 ++++++++--------- .../ufpb/iged/interpretador/parser/Def.java | 61 +- .../ufpb/iged/interpretador/parser/Ref.java | 2 +- 26 files changed, 774 insertions(+), 781 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index b9cd96d..53ea15b 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -62,6 +62,7 @@ comando: ( manipulacaoObjetos | desvio | logica | pilha + | retorno | 'nop' )? NEWLINE; @@ -74,13 +75,13 @@ superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) - | '.method' INIT '()' VOID NEWLINE operacao* 'return' NEWLINE '.end method' + | '.method' INIT '()' VOID NEWLINE operacao* '.end method' -> ^(METHOD_DECL INIT ^(BODY operacao*)) - | '.method' MAIN '()' VOID NEWLINE operacao* ret = retorno NEWLINE '.end method' - -> ^(METHOD_DECL MAIN ^(BODY operacao*) $ret) - | '.method' ID '()' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + | '.method' MAIN '()' VOID NEWLINE operacao* '.end method' + -> ^(METHOD_DECL MAIN ^(BODY operacao*) VOID) + | '.method' ID '()' ret = tipo NEWLINE operacao* '.end method' -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) - | '.method' ID '(' params = parametros ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + | '.method' ID '(' params = parametros ')' ret = tipo NEWLINE operacao* '.end method' -> ^(METHOD_DECL ID $params ^(BODY operacao*) $ret) ; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index d9c66ca..8fa26f7 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -64,6 +64,13 @@ declaracaoVariavel } ; +entraNoMetodo + : + + + + ; + saiDaClasse : '.class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index 96123d500459a5b0f5c00cf2bc7f54359aafbec3..073bb7e06093d39e4fb17de7693351187ea8cbd6 100644 GIT binary patch delta 19 acmZ3-x{h^&3ln43WLG8|#+=DbOgaEN^aYLp delta 19 acmZ3-x{h^&3ln4SWLG8|#{S7oOgaEQBn8v} diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class index 8dff739598ba51ca7dda684dc62aeb298ee4c4d9..a5c31b41b1b2b3d11f8676e0933af73fcbf2375c 100644 GIT binary patch delta 19 bcmaFC`hs;s9TVfB$@NS&jK?PLVbTErPl^X( delta 19 bcmaFC`hs;s9TVfz$@NS&j4vneVbTErQMw1H diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class index a60db235d35a445036013ea64132907f1ff100d8..ab4a6c4b86414b6b07cc23646b518e75cedc15ec 100644 GIT binary patch delta 19 acmZo-Yhv3lgNZS7@=PWh#=Obbm~;R>Z3Z;} delta 19 bcmZo-Yhv3lgNd~LG!qm5%gM1!)=d0wCeLEh0RU1r2O|Ig delta 21 ccmX@cdW>~LG!v5m&*WGpYbF8y$+MVr07IPxYXATM diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$definicaoClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$definicaoClasse_return.class index 3cd51a76d36c064eef835feb393f70ac5e03fe26..1869ea67de8cdf9aa1cc6dc079807af75add424e 100644 GIT binary patch delta 23 dcmdnXx|elBFcV|RUB&OgaEN76pp{ delta 19 bcmZ3=x|DT;H522a$u>+jj7uh0GU)&SJw^r5 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class index 39c750b75b803f840bdf963643b14cce13e85916..2485a7c0701dbd9837ddb217c0ec42a2fe244ded 100644 GIT binary patch delta 19 acmZ3)x`=gy1ruY%WJ@L+#;VC>OgaEL>;-NB delta 19 bcmZ3)x`=gy1ry`!$(BqujB_WKG3fvRJRAkI diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class index 93873593114f2a16c46d89b194aa6b97f7d2b92f..aa86a9ee794b39cd363750d11c792425819d0d8d 100644 GIT binary patch delta 21 dcmX@cdW>~LG!qm1+sUy^)=cd0C(mNi0RU0n2O0nX delta 21 ccmX@cdW>~LG!qktz~opaYbFk%$+MVr07FCtVgLXD diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class index 55d0fa9128fd4aee8351c0358406e830e33d977e..b38e9f8deeb00d00039c09c1601d815e9cc0c9b5 100644 GIT binary patch delta 19 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 vZIu1dz82-#Xupke0Is(d7t0 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 MRFpTPypzoT1K!`gEC2ui diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index eb3568128c6600cab3e33626a9af2cb98570a42c..2dcceb1bd479132d1370ea7625981f4f107793a1 100644 GIT binary patch delta 519 zcmXZX%WG3n5C-s>@08n1jiOYcw@Hf7s8B<&$xTeqYVk#tHlg;Zw#I0#5?XSLjjp8V z#(&^|Zhc$pGe#o@bZ?>3(v=%&yYT^qiVIghCarL0m~*}#9Ok%wNw>=>xLMc49X;u7HtuJ)@JAw@w7Z&azroR#SG-)t-7<#CNVimPZ}EWXH81O{(MCOQH~2r3 z#S0YRMcT(pl;p3J;&0T;-)Wdvv>7e%lx~mNjr?2SUkZR|7Yu4eEyZBcer(X)yMy{y zw1b}rj9Ol@;1|~$V(7${Z+Ka)T~sTU;X`e_EM)|ysL4XCJ~5=5hXD2ZU&QE=&0 zy1avHtJYdCwGxRJ&_AH!WwFIU&`A)T)JYIuQFxZa^W!YfQQ~vL`uA>gn}~c^S+Qno z@VTW^)2odjQ+_BC4o5np!K$bkkB)v!4w|u%0dLS?az0g6-iOMJe@YC;#ztfPX5Wa< z>r0Jk-W;LfyIi*yTBdDi#f&_)`z^CJ{KTBJJ38$1Ou21+W_%#=Qe`Oi_}t~vuqeMc zbpD;1b(~rFdFpFnUPg5-Hc^LNyuk_TafP?Sf(D@@B+BtlG~m7HLZcW)lNd*{m_%62 zxlH7bn9=;}nZ>WZE<*DJ4VI#x~%J~bRkq#>r tA&cC|CJ$bafgGxVu3(av9?>g>N)#$ps6rvPLLP-G6)MkUEUR&VKlgZvcKrYV diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index b9cd96d..53ea15b 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -62,6 +62,7 @@ comando: ( manipulacaoObjetos | desvio | logica | pilha + | retorno | 'nop' )? NEWLINE; @@ -74,13 +75,13 @@ superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) - | '.method' INIT '()' VOID NEWLINE operacao* 'return' NEWLINE '.end method' + | '.method' INIT '()' VOID NEWLINE operacao* '.end method' -> ^(METHOD_DECL INIT ^(BODY operacao*)) - | '.method' MAIN '()' VOID NEWLINE operacao* ret = retorno NEWLINE '.end method' - -> ^(METHOD_DECL MAIN ^(BODY operacao*) $ret) - | '.method' ID '()' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + | '.method' MAIN '()' VOID NEWLINE operacao* '.end method' + -> ^(METHOD_DECL MAIN ^(BODY operacao*) VOID) + | '.method' ID '()' ret = tipo NEWLINE operacao* '.end method' -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) - | '.method' ID '(' params = parametros ')' tipo NEWLINE operacao* ret = retorno NEWLINE '.end method' + | '.method' ID '(' params = parametros ')' ret = tipo NEWLINE operacao* '.end method' -> ^(METHOD_DECL ID $params ^(BODY operacao*) $ret) ; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index d9c66ca..8fa26f7 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -64,6 +64,13 @@ declaracaoVariavel } ; +entraNoMetodo + : + + + + ; + saiDaClasse : '.class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index ce87c42..3471b87 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 22:52:04 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 23:03:16 package br.ufpb.iged.interpretador.parser; @@ -1822,8 +1822,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:8: '' { match(""); @@ -1845,8 +1845,8 @@ public final void mMAIN() throws RecognitionException { try { int _type = MAIN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:6: ( 'main' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:8: 'main' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:6: ( 'main' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: 'main' { match("main"); @@ -1868,8 +1868,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:7: 'I' { match('I'); @@ -1889,8 +1889,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:8: 'V' { match('V'); @@ -1910,10 +1910,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1932,7 +1932,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:9: 'null' { match("null"); @@ -1941,7 +1941,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:18: 'NULL' { match("NULL"); @@ -1969,10 +1969,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1981,7 +1981,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:11: '-' { match('-'); @@ -1991,7 +1991,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2046,15 +2046,15 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:11: 'L' ID ( '/' ID )* { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:18: ( '/' ID )* loop4: do { int alt4=2; @@ -2067,7 +2067,7 @@ public final void mTIPO_REF() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:19: '/' ID { match('/'); @@ -2099,8 +2099,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2112,7 +2112,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop5: do { int alt5=2; @@ -2162,8 +2162,8 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:9: ( '\\n' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: ( '\\n' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:11: '\\n' { match('\n'); @@ -2183,8 +2183,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index a3ca402..ed4ff5e 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 22:52:03 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 23:03:15 package br.ufpb.iged.interpretador.parser; @@ -187,7 +187,7 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==29||(LA1_0 >= 37 && LA1_0 <= 42)||(LA1_0 >= 44 && LA1_0 <= 84)||(LA1_0 >= 86 && LA1_0 <= 98)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==29||(LA1_0 >= 37 && LA1_0 <= 99)) ) { alt1=1; } @@ -264,7 +264,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce int alt3=2; int LA3_0 = input.LA(1); - if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 37 && LA3_0 <= 42)||(LA3_0 >= 44 && LA3_0 <= 84)||(LA3_0 >= 86 && LA3_0 <= 98)) ) { + if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 37 && LA3_0 <= 99)) ) { alt3=1; } else if ( (LA3_0==29) ) { @@ -393,7 +393,7 @@ public final AssemblerParser.operacao_return operacao() throws RecognitionExcept if ( (LA4_0==ID) ) { alt4=1; } - else if ( (LA4_0==NEWLINE||(LA4_0 >= 37 && LA4_0 <= 42)||(LA4_0 >= 44 && LA4_0 <= 84)||(LA4_0 >= 86 && LA4_0 <= 98)) ) { + else if ( (LA4_0==NEWLINE||(LA4_0 >= 37 && LA4_0 <= 99)) ) { alt4=2; } else { @@ -560,7 +560,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -568,8 +568,8 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio BytecodesAST root_0 = null; - Token string_literal18=null; - Token NEWLINE19=null; + Token string_literal19=null; + Token NEWLINE20=null; AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos9 =null; AssemblerParser.aritmetica_return aritmetica10 =null; @@ -588,19 +588,21 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio AssemblerParser.pilha_return pilha17 =null; + AssemblerParser.retorno_return retorno18 =null; - BytecodesAST string_literal18_tree=null; - BytecodesAST NEWLINE19_tree=null; + + BytecodesAST string_literal19_tree=null; + BytecodesAST NEWLINE20_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | 'nop' )? - int alt5=11; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? + int alt5=12; switch ( input.LA(1) ) { case 50: case 82: @@ -697,11 +699,18 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio alt5=9; } break; - case 95: + case 43: + case 85: + case 99: { alt5=10; } break; + case 95: + { + alt5=11; + } + break; } switch (alt5) { @@ -814,13 +823,25 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: retorno + { + pushFollow(FOLLOW_retorno_in_comando394); + retorno18=retorno(); + + state._fsp--; + + adaptor.addChild(root_0, retorno18.getTree()); + + } + break; + case 11 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: 'nop' { - string_literal18=(Token)match(input,95,FOLLOW_95_in_comando394); - string_literal18_tree = - (BytecodesAST)adaptor.create(string_literal18) + string_literal19=(Token)match(input,95,FOLLOW_95_in_comando412); + string_literal19_tree = + (BytecodesAST)adaptor.create(string_literal19) ; - adaptor.addChild(root_0, string_literal18_tree); + adaptor.addChild(root_0, string_literal19_tree); } @@ -829,11 +850,11 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } - NEWLINE19=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando410); - NEWLINE19_tree = - (BytecodesAST)adaptor.create(NEWLINE19) + NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando428); + NEWLINE20_tree = + (BytecodesAST)adaptor.create(NEWLINE20) ; - adaptor.addChild(root_0, NEWLINE19_tree); + adaptor.addChild(root_0, NEWLINE20_tree); } @@ -867,7 +888,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -875,43 +896,43 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST root_0 = null; - Token string_literal20=null; - Token ID21=null; - Token NEWLINE22=null; - Token NEWLINE24=null; - Token NEWLINE26=null; - AssemblerParser.superClasse_return superClasse23 =null; + Token string_literal21=null; + Token ID22=null; + Token NEWLINE23=null; + Token NEWLINE25=null; + Token NEWLINE27=null; + AssemblerParser.superClasse_return superClasse24 =null; - AssemblerParser.membroClasse_return membroClasse25 =null; + AssemblerParser.membroClasse_return membroClasse26 =null; - BytecodesAST string_literal20_tree=null; - BytecodesAST ID21_tree=null; - BytecodesAST NEWLINE22_tree=null; - BytecodesAST NEWLINE24_tree=null; - BytecodesAST NEWLINE26_tree=null; + BytecodesAST string_literal21_tree=null; + BytecodesAST ID22_tree=null; + BytecodesAST NEWLINE23_tree=null; + BytecodesAST NEWLINE25_tree=null; + BytecodesAST NEWLINE27_tree=null; RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal20=(Token)match(input,29,FOLLOW_29_in_definicaoClasse436); - stream_29.add(string_literal20); + string_literal21=(Token)match(input,29,FOLLOW_29_in_definicaoClasse454); + stream_29.add(string_literal21); - ID21=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse438); - stream_ID.add(ID21); + ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse456); + stream_ID.add(ID22); - NEWLINE22=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse440); - stream_NEWLINE.add(NEWLINE22); + NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse458); + stream_NEWLINE.add(NEWLINE23); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:27: ( superClasse NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:27: ( superClasse NEWLINE )? int alt6=2; int LA6_0 = input.LA(1); @@ -920,17 +941,17 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:28: superClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:28: superClasse NEWLINE { - pushFollow(FOLLOW_superClasse_in_definicaoClasse443); - superClasse23=superClasse(); + pushFollow(FOLLOW_superClasse_in_definicaoClasse461); + superClasse24=superClasse(); state._fsp--; - stream_superClasse.add(superClasse23.getTree()); + stream_superClasse.add(superClasse24.getTree()); - NEWLINE24=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse445); - stream_NEWLINE.add(NEWLINE24); + NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse463); + stream_NEWLINE.add(NEWLINE25); } @@ -939,7 +960,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:50: ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:50: ( membroClasse NEWLINE )+ int cnt7=0; loop7: do { @@ -953,17 +974,17 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:51: membroClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:51: membroClasse NEWLINE { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse450); - membroClasse25=membroClasse(); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse468); + membroClasse26=membroClasse(); state._fsp--; - stream_membroClasse.add(membroClasse25.getTree()); + stream_membroClasse.add(membroClasse26.getTree()); - NEWLINE26=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse452); - stream_NEWLINE.add(NEWLINE26); + NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse470); + stream_NEWLINE.add(NEWLINE27); } @@ -980,7 +1001,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 29, membroClasse, superClasse, ID + // elements: membroClasse, superClasse, ID, 29 // token labels: // rule labels: retval // token list labels: @@ -990,9 +1011,9 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 70:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 71:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1003,14 +1024,14 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:29: ( superClasse )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:29: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -1068,7 +1089,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1076,24 +1097,24 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST root_0 = null; - Token string_literal27=null; - Token TIPO_REF28=null; + Token string_literal28=null; + Token TIPO_REF29=null; - BytecodesAST string_literal27_tree=null; - BytecodesAST TIPO_REF28_tree=null; + BytecodesAST string_literal28_tree=null; + BytecodesAST TIPO_REF29_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:15: '.super' TIPO_REF { - string_literal27=(Token)match(input,34,FOLLOW_34_in_superClasse513); - stream_34.add(string_literal27); + string_literal28=(Token)match(input,34,FOLLOW_34_in_superClasse531); + stream_34.add(string_literal28); - TIPO_REF28=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse515); - stream_TIPO_REF.add(TIPO_REF28); + TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse533); + stream_TIPO_REF.add(TIPO_REF29); // AST REWRITE @@ -1107,9 +1128,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 73:33: -> ^( EXTENDS TIPO_REF ) + // 74:33: -> ^( EXTENDS TIPO_REF ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:36: ^( EXTENDS TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:36: ^( EXTENDS TIPO_REF ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1159,7 +1180,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params= parametros ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) VOID ) | '.method' ID '()' ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params= parametros ')' ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1167,85 +1188,71 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST root_0 = null; - Token string_literal29=null; - Token ID30=null; - Token string_literal32=null; - Token INIT33=null; - Token string_literal34=null; - Token VOID35=null; - Token NEWLINE36=null; - Token string_literal38=null; - Token NEWLINE39=null; + Token string_literal30=null; + Token ID31=null; + Token string_literal33=null; + Token INIT34=null; + Token string_literal35=null; + Token VOID36=null; + Token NEWLINE37=null; + Token string_literal39=null; Token string_literal40=null; - Token string_literal41=null; - Token MAIN42=null; - Token string_literal43=null; - Token VOID44=null; - Token NEWLINE45=null; - Token NEWLINE47=null; - Token string_literal48=null; + Token MAIN41=null; + Token string_literal42=null; + Token VOID43=null; + Token NEWLINE44=null; + Token string_literal46=null; + Token string_literal47=null; + Token ID48=null; Token string_literal49=null; - Token ID50=null; - Token string_literal51=null; - Token NEWLINE53=null; - Token NEWLINE55=null; - Token string_literal56=null; - Token string_literal57=null; - Token ID58=null; - Token char_literal59=null; - Token char_literal60=null; - Token NEWLINE62=null; - Token NEWLINE64=null; - Token string_literal65=null; - AssemblerParser.retorno_return ret =null; + Token NEWLINE50=null; + Token string_literal52=null; + Token string_literal53=null; + Token ID54=null; + Token char_literal55=null; + Token char_literal56=null; + Token NEWLINE57=null; + Token string_literal59=null; + AssemblerParser.tipo_return ret =null; AssemblerParser.parametros_return params =null; - AssemblerParser.tipo_return tipo31 =null; - - AssemblerParser.operacao_return operacao37 =null; + AssemblerParser.tipo_return tipo32 =null; - AssemblerParser.operacao_return operacao46 =null; + AssemblerParser.operacao_return operacao38 =null; - AssemblerParser.tipo_return tipo52 =null; + AssemblerParser.operacao_return operacao45 =null; - AssemblerParser.operacao_return operacao54 =null; + AssemblerParser.operacao_return operacao51 =null; - AssemblerParser.tipo_return tipo61 =null; + AssemblerParser.operacao_return operacao58 =null; - AssemblerParser.operacao_return operacao63 =null; - - BytecodesAST string_literal29_tree=null; - BytecodesAST ID30_tree=null; - BytecodesAST string_literal32_tree=null; - BytecodesAST INIT33_tree=null; - BytecodesAST string_literal34_tree=null; - BytecodesAST VOID35_tree=null; - BytecodesAST NEWLINE36_tree=null; - BytecodesAST string_literal38_tree=null; - BytecodesAST NEWLINE39_tree=null; + BytecodesAST string_literal30_tree=null; + BytecodesAST ID31_tree=null; + BytecodesAST string_literal33_tree=null; + BytecodesAST INIT34_tree=null; + BytecodesAST string_literal35_tree=null; + BytecodesAST VOID36_tree=null; + BytecodesAST NEWLINE37_tree=null; + BytecodesAST string_literal39_tree=null; BytecodesAST string_literal40_tree=null; - BytecodesAST string_literal41_tree=null; - BytecodesAST MAIN42_tree=null; - BytecodesAST string_literal43_tree=null; - BytecodesAST VOID44_tree=null; - BytecodesAST NEWLINE45_tree=null; - BytecodesAST NEWLINE47_tree=null; - BytecodesAST string_literal48_tree=null; + BytecodesAST MAIN41_tree=null; + BytecodesAST string_literal42_tree=null; + BytecodesAST VOID43_tree=null; + BytecodesAST NEWLINE44_tree=null; + BytecodesAST string_literal46_tree=null; + BytecodesAST string_literal47_tree=null; + BytecodesAST ID48_tree=null; BytecodesAST string_literal49_tree=null; - BytecodesAST ID50_tree=null; - BytecodesAST string_literal51_tree=null; - BytecodesAST NEWLINE53_tree=null; - BytecodesAST NEWLINE55_tree=null; - BytecodesAST string_literal56_tree=null; - BytecodesAST string_literal57_tree=null; - BytecodesAST ID58_tree=null; - BytecodesAST char_literal59_tree=null; - BytecodesAST char_literal60_tree=null; - BytecodesAST NEWLINE62_tree=null; - BytecodesAST NEWLINE64_tree=null; - BytecodesAST string_literal65_tree=null; + BytecodesAST NEWLINE50_tree=null; + BytecodesAST string_literal52_tree=null; + BytecodesAST string_literal53_tree=null; + BytecodesAST ID54_tree=null; + BytecodesAST char_literal55_tree=null; + BytecodesAST char_literal56_tree=null; + BytecodesAST NEWLINE57_tree=null; + BytecodesAST string_literal59_tree=null; RewriteRuleTokenStream stream_MAIN=new RewriteRuleTokenStream(adaptor,"token MAIN"); RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); @@ -1255,15 +1262,13 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26"); - RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); - RewriteRuleSubtreeStream stream_retorno=new RewriteRuleSubtreeStream(adaptor,"rule retorno"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) | '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params= parametros ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) VOID ) | '.method' ID '()' ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params= parametros ')' ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) ) int alt12=5; int LA12_0 = input.LA(1); @@ -1319,25 +1324,25 @@ else if ( (LA12_5==26) ) { } switch (alt12) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: '.field' ID tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: '.field' ID tipo { - string_literal29=(Token)match(input,32,FOLLOW_32_in_membroClasse536); - stream_32.add(string_literal29); + string_literal30=(Token)match(input,32,FOLLOW_32_in_membroClasse554); + stream_32.add(string_literal30); - ID30=(Token)match(input,ID,FOLLOW_ID_in_membroClasse538); - stream_ID.add(ID30); + ID31=(Token)match(input,ID,FOLLOW_ID_in_membroClasse556); + stream_ID.add(ID31); - pushFollow(FOLLOW_tipo_in_membroClasse540); - tipo31=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse558); + tipo32=tipo(); state._fsp--; - stream_tipo.add(tipo31.getTree()); + stream_tipo.add(tipo32.getTree()); // AST REWRITE - // elements: ID, tipo + // elements: tipo, ID // token labels: // rule labels: retval // token list labels: @@ -1347,9 +1352,9 @@ else if ( (LA12_5==26) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 76:24: -> ^( FIELD_DECL ID tipo ) + // 77:24: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:27: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:27: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1373,49 +1378,49 @@ else if ( (LA12_5==26) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: '.method' INIT '()' VOID NEWLINE ( operacao )* 'return' NEWLINE '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' { - string_literal32=(Token)match(input,33,FOLLOW_33_in_membroClasse558); - stream_33.add(string_literal32); + string_literal33=(Token)match(input,33,FOLLOW_33_in_membroClasse576); + stream_33.add(string_literal33); - INIT33=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse560); - stream_INIT.add(INIT33); + INIT34=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse578); + stream_INIT.add(INIT34); - string_literal34=(Token)match(input,27,FOLLOW_27_in_membroClasse562); - stream_27.add(string_literal34); + string_literal35=(Token)match(input,27,FOLLOW_27_in_membroClasse580); + stream_27.add(string_literal35); - VOID35=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse564); - stream_VOID.add(VOID35); + VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse582); + stream_VOID.add(VOID36); - NEWLINE36=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse566); - stream_NEWLINE.add(NEWLINE36); + NEWLINE37=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse584); + stream_NEWLINE.add(NEWLINE37); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:40: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:40: ( operacao )* loop8: do { int alt8=2; int LA8_0 = input.LA(1); - if ( (LA8_0==ID||LA8_0==NEWLINE||(LA8_0 >= 37 && LA8_0 <= 42)||(LA8_0 >= 44 && LA8_0 <= 84)||(LA8_0 >= 86 && LA8_0 <= 98)) ) { + if ( (LA8_0==ID||LA8_0==NEWLINE||(LA8_0 >= 37 && LA8_0 <= 99)) ) { alt8=1; } switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:40: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:40: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse568); - operacao37=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse586); + operacao38=operacao(); state._fsp--; - stream_operacao.add(operacao37.getTree()); + stream_operacao.add(operacao38.getTree()); } break; @@ -1426,16 +1431,8 @@ else if ( (LA12_5==26) ) { } while (true); - string_literal38=(Token)match(input,99,FOLLOW_99_in_membroClasse571); - stream_99.add(string_literal38); - - - NEWLINE39=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse573); - stream_NEWLINE.add(NEWLINE39); - - - string_literal40=(Token)match(input,31,FOLLOW_31_in_membroClasse575); - stream_31.add(string_literal40); + string_literal39=(Token)match(input,31,FOLLOW_31_in_membroClasse589); + stream_31.add(string_literal39); // AST REWRITE @@ -1449,9 +1446,9 @@ else if ( (LA12_5==26) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 78:2: -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) + // 79:2: -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:5: ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:5: ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1462,14 +1459,14 @@ else if ( (LA12_5==26) ) { stream_INIT.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:24: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:24: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:31: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:31: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1490,49 +1487,49 @@ else if ( (LA12_5==26) ) { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: '.method' MAIN '()' VOID NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.method' MAIN '()' VOID NEWLINE ( operacao )* '.end method' { - string_literal41=(Token)match(input,33,FOLLOW_33_in_membroClasse599); - stream_33.add(string_literal41); + string_literal40=(Token)match(input,33,FOLLOW_33_in_membroClasse613); + stream_33.add(string_literal40); - MAIN42=(Token)match(input,MAIN,FOLLOW_MAIN_in_membroClasse601); - stream_MAIN.add(MAIN42); + MAIN41=(Token)match(input,MAIN,FOLLOW_MAIN_in_membroClasse615); + stream_MAIN.add(MAIN41); - string_literal43=(Token)match(input,27,FOLLOW_27_in_membroClasse603); - stream_27.add(string_literal43); + string_literal42=(Token)match(input,27,FOLLOW_27_in_membroClasse617); + stream_27.add(string_literal42); - VOID44=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse605); - stream_VOID.add(VOID44); + VOID43=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse619); + stream_VOID.add(VOID43); - NEWLINE45=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse607); - stream_NEWLINE.add(NEWLINE45); + NEWLINE44=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse621); + stream_NEWLINE.add(NEWLINE44); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:40: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:40: ( operacao )* loop9: do { int alt9=2; int LA9_0 = input.LA(1); - if ( (LA9_0==ID||LA9_0==NEWLINE||(LA9_0 >= 37 && LA9_0 <= 42)||(LA9_0 >= 44 && LA9_0 <= 84)||(LA9_0 >= 86 && LA9_0 <= 98)) ) { + if ( (LA9_0==ID||LA9_0==NEWLINE||(LA9_0 >= 37 && LA9_0 <= 99)) ) { alt9=1; } switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:40: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:40: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse609); - operacao46=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse623); + operacao45=operacao(); state._fsp--; - stream_operacao.add(operacao46.getTree()); + stream_operacao.add(operacao45.getTree()); } break; @@ -1543,36 +1540,24 @@ else if ( (LA12_5==26) ) { } while (true); - pushFollow(FOLLOW_retorno_in_membroClasse616); - ret=retorno(); - - state._fsp--; - - stream_retorno.add(ret.getTree()); - - NEWLINE47=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse618); - stream_NEWLINE.add(NEWLINE47); - - - string_literal48=(Token)match(input,31,FOLLOW_31_in_membroClasse620); - stream_31.add(string_literal48); + string_literal46=(Token)match(input,31,FOLLOW_31_in_membroClasse627); + stream_31.add(string_literal46); // AST REWRITE - // elements: MAIN, operacao, ret + // elements: VOID, operacao, MAIN // token labels: - // rule labels: ret, retval + // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; - RewriteRuleSubtreeStream stream_ret=new RewriteRuleSubtreeStream(adaptor,"rule ret",ret!=null?ret.tree:null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 80:9: -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) + // 81:9: -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) VOID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:12: ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) $ret) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:12: ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) VOID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1583,14 +1568,14 @@ else if ( (LA12_5==26) ) { stream_MAIN.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:31: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:31: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:38: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:38: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1600,7 +1585,9 @@ else if ( (LA12_5==26) ) { adaptor.addChild(root_1, root_2); } - adaptor.addChild(root_1, stream_ret.nextTree()); + adaptor.addChild(root_1, + stream_VOID.nextNode() + ); adaptor.addChild(root_0, root_1); } @@ -1613,52 +1600,52 @@ else if ( (LA12_5==26) ) { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:7: '.method' ID '()' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:7: '.method' ID '()' ret= tipo NEWLINE ( operacao )* '.end method' { - string_literal49=(Token)match(input,33,FOLLOW_33_in_membroClasse654); - stream_33.add(string_literal49); + string_literal47=(Token)match(input,33,FOLLOW_33_in_membroClasse660); + stream_33.add(string_literal47); - ID50=(Token)match(input,ID,FOLLOW_ID_in_membroClasse656); - stream_ID.add(ID50); + ID48=(Token)match(input,ID,FOLLOW_ID_in_membroClasse662); + stream_ID.add(ID48); - string_literal51=(Token)match(input,27,FOLLOW_27_in_membroClasse658); - stream_27.add(string_literal51); + string_literal49=(Token)match(input,27,FOLLOW_27_in_membroClasse664); + stream_27.add(string_literal49); - pushFollow(FOLLOW_tipo_in_membroClasse660); - tipo52=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse670); + ret=tipo(); state._fsp--; - stream_tipo.add(tipo52.getTree()); + stream_tipo.add(ret.getTree()); - NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse662); - stream_NEWLINE.add(NEWLINE53); + NEWLINE50=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse672); + stream_NEWLINE.add(NEWLINE50); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:38: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:44: ( operacao )* loop10: do { int alt10=2; int LA10_0 = input.LA(1); - if ( (LA10_0==ID||LA10_0==NEWLINE||(LA10_0 >= 37 && LA10_0 <= 42)||(LA10_0 >= 44 && LA10_0 <= 84)||(LA10_0 >= 86 && LA10_0 <= 98)) ) { + if ( (LA10_0==ID||LA10_0==NEWLINE||(LA10_0 >= 37 && LA10_0 <= 99)) ) { alt10=1; } switch (alt10) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:38: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:44: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse664); - operacao54=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse674); + operacao51=operacao(); state._fsp--; - stream_operacao.add(operacao54.getTree()); + stream_operacao.add(operacao51.getTree()); } break; @@ -1669,19 +1656,8 @@ else if ( (LA12_5==26) ) { } while (true); - pushFollow(FOLLOW_retorno_in_membroClasse671); - ret=retorno(); - - state._fsp--; - - stream_retorno.add(ret.getTree()); - - NEWLINE55=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse673); - stream_NEWLINE.add(NEWLINE55); - - - string_literal56=(Token)match(input,31,FOLLOW_31_in_membroClasse675); - stream_31.add(string_literal56); + string_literal52=(Token)match(input,31,FOLLOW_31_in_membroClasse677); + stream_31.add(string_literal52); // AST REWRITE @@ -1696,9 +1672,9 @@ else if ( (LA12_5==26) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 82:9: -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) + // 83:9: -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:12: ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:12: ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1709,14 +1685,14 @@ else if ( (LA12_5==26) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:29: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:29: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:36: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:36: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1739,63 +1715,63 @@ else if ( (LA12_5==26) ) { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.method' ID '(' params= parametros ')' tipo NEWLINE ( operacao )* ret= retorno NEWLINE '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:7: '.method' ID '(' params= parametros ')' ret= tipo NEWLINE ( operacao )* '.end method' { - string_literal57=(Token)match(input,33,FOLLOW_33_in_membroClasse709); - stream_33.add(string_literal57); + string_literal53=(Token)match(input,33,FOLLOW_33_in_membroClasse711); + stream_33.add(string_literal53); - ID58=(Token)match(input,ID,FOLLOW_ID_in_membroClasse711); - stream_ID.add(ID58); + ID54=(Token)match(input,ID,FOLLOW_ID_in_membroClasse713); + stream_ID.add(ID54); - char_literal59=(Token)match(input,26,FOLLOW_26_in_membroClasse713); - stream_26.add(char_literal59); + char_literal55=(Token)match(input,26,FOLLOW_26_in_membroClasse715); + stream_26.add(char_literal55); - pushFollow(FOLLOW_parametros_in_membroClasse719); + pushFollow(FOLLOW_parametros_in_membroClasse721); params=parametros(); state._fsp--; stream_parametros.add(params.getTree()); - char_literal60=(Token)match(input,28,FOLLOW_28_in_membroClasse721); - stream_28.add(char_literal60); + char_literal56=(Token)match(input,28,FOLLOW_28_in_membroClasse723); + stream_28.add(char_literal56); - pushFollow(FOLLOW_tipo_in_membroClasse723); - tipo61=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse729); + ret=tipo(); state._fsp--; - stream_tipo.add(tipo61.getTree()); + stream_tipo.add(ret.getTree()); - NEWLINE62=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse725); - stream_NEWLINE.add(NEWLINE62); + NEWLINE57=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse731); + stream_NEWLINE.add(NEWLINE57); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:61: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:67: ( operacao )* loop11: do { int alt11=2; int LA11_0 = input.LA(1); - if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 37 && LA11_0 <= 42)||(LA11_0 >= 44 && LA11_0 <= 84)||(LA11_0 >= 86 && LA11_0 <= 98)) ) { + if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 37 && LA11_0 <= 99)) ) { alt11=1; } switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:61: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:67: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse727); - operacao63=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse733); + operacao58=operacao(); state._fsp--; - stream_operacao.add(operacao63.getTree()); + stream_operacao.add(operacao58.getTree()); } break; @@ -1806,23 +1782,12 @@ else if ( (LA12_5==26) ) { } while (true); - pushFollow(FOLLOW_retorno_in_membroClasse734); - ret=retorno(); - - state._fsp--; - - stream_retorno.add(ret.getTree()); - - NEWLINE64=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse736); - stream_NEWLINE.add(NEWLINE64); - - - string_literal65=(Token)match(input,31,FOLLOW_31_in_membroClasse738); - stream_31.add(string_literal65); + string_literal59=(Token)match(input,31,FOLLOW_31_in_membroClasse736); + stream_31.add(string_literal59); // AST REWRITE - // elements: params, ID, operacao, ret + // elements: operacao, params, ID, ret // token labels: // rule labels: ret, retval, params // token list labels: @@ -1834,9 +1799,9 @@ else if ( (LA12_5==26) ) { RewriteRuleSubtreeStream stream_params=new RewriteRuleSubtreeStream(adaptor,"rule params",params!=null?params.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 84:9: -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) + // 85:9: -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:12: ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:12: ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1849,14 +1814,14 @@ else if ( (LA12_5==26) ) { adaptor.addChild(root_1, stream_params.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:37: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:37: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:44: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:44: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1909,7 +1874,7 @@ public static class parametros_return extends ParserRuleReturnScope { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: parametros : ( ID | TIPO_REF )+ ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:1: parametros : ( ID | TIPO_REF )+ ; public final AssemblerParser.parametros_return parametros() throws RecognitionException { AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); @@ -1917,18 +1882,18 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx BytecodesAST root_0 = null; - Token set66=null; + Token set60=null; - BytecodesAST set66_tree=null; + BytecodesAST set60_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:12: ( ( ID | TIPO_REF )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: ( ID | TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:12: ( ( ID | TIPO_REF )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:14: ( ID | TIPO_REF )+ { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:14: ( ID | TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:14: ( ID | TIPO_REF )+ int cnt13=0; loop13: do { @@ -1944,12 +1909,12 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { - set66=(Token)input.LT(1); + set60=(Token)input.LT(1); if ( input.LA(1)==ID||input.LA(1)==TIPO_REF ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set66) + (BytecodesAST)adaptor.create(set60) ); state.errorRecovery=false; } @@ -2003,7 +1968,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -2011,23 +1976,23 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST root_0 = null; - Token set67=null; + Token set61=null; - BytecodesAST set67_tree=null; + BytecodesAST set61_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: ( 'areturn' | 'ireturn' | 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: ( 'areturn' | 'ireturn' | 'return' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set67=(Token)input.LT(1); + set61=(Token)input.LT(1); if ( input.LA(1)==43||input.LA(1)==85||input.LA(1)==99 ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set67) + (BytecodesAST)adaptor.create(set61) ); state.errorRecovery=false; } @@ -2068,7 +2033,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -2077,20 +2042,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal70=null; + Token char_literal64=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; - AssemblerParser.tipo_return tipo68 =null; + AssemblerParser.tipo_return tipo62 =null; - AssemblerParser.tipo_return tipo69 =null; + AssemblerParser.tipo_return tipo63 =null; BytecodesAST a_tree=null; - BytecodesAST char_literal70_tree=null; + BytecodesAST char_literal64_tree=null; RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); @@ -2101,7 +2066,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) int alt14=4; switch ( input.LA(1) ) { case 50: @@ -2134,28 +2099,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt14) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,50,FOLLOW_50_in_manipulacaoObjetos832); + a=(Token)match(input,50,FOLLOW_50_in_manipulacaoObjetos830); stream_50.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos838); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos836); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos840); - tipo68=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos838); + tipo62=tipo(); state._fsp--; - stream_tipo.add(tipo68.getTree()); + stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: 50, b, tipo + // elements: tipo, 50, b // token labels: // rule labels: retval, b // token list labels: @@ -2166,9 +2131,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 91:52: -> ^( 'getfield' $b tipo ) + // 92:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2190,28 +2155,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,98,FOLLOW_98_in_manipulacaoObjetos878); + a=(Token)match(input,98,FOLLOW_98_in_manipulacaoObjetos876); stream_98.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos884); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos882); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos886); - tipo69=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos884); + tipo63=tipo(); state._fsp--; - stream_tipo.add(tipo69.getTree()); + stream_tipo.add(tipo63.getTree()); // AST REWRITE - // elements: tipo, 98, b + // elements: b, 98, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2222,9 +2187,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 92:52: -> ^( 'putfield' $b tipo ) + // 93:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2246,24 +2211,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,82,FOLLOW_82_in_manipulacaoObjetos924); + a=(Token)match(input,82,FOLLOW_82_in_manipulacaoObjetos922); stream_82.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos930); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos928); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal70=(Token)match(input,35,FOLLOW_35_in_manipulacaoObjetos932); - stream_35.add(char_literal70); + char_literal64=(Token)match(input,35,FOLLOW_35_in_manipulacaoObjetos930); + stream_35.add(char_literal64); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos938); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos936); d=chamadaMetodo(); state._fsp--; @@ -2271,7 +2236,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, 82, d + // elements: c, d, 82 // token labels: // rule labels: retval, d, c // token list labels: @@ -2283,9 +2248,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 94:23: -> ^( 'invokespecial' $c $d) + // 95:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2307,13 +2272,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:22: a= 'new' c= classe + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:22: a= 'new' c= classe { - a=(Token)match(input,94,FOLLOW_94_in_manipulacaoObjetos999); + a=(Token)match(input,94,FOLLOW_94_in_manipulacaoObjetos997); stream_94.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1004); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1002); c=classe(); state._fsp--; @@ -2321,7 +2286,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: 94, c + // elements: c, 94 // token labels: // rule labels: retval, c // token list labels: @@ -2332,9 +2297,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 95:42: -> ^( 'new' $c) + // 96:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:45: ^( 'new' $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2384,7 +2349,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2392,23 +2357,23 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set71=null; + Token set65=null; - BytecodesAST set71_tree=null; + BytecodesAST set65_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set71=(Token)input.LT(1); + set65=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set71) + (BytecodesAST)adaptor.create(set65) ); state.errorRecovery=false; } @@ -2449,7 +2414,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2469,10 +2434,10 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt15=7; switch ( input.LA(1) ) { case 52: @@ -2520,63 +2485,63 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt15) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:16: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:16: a= 'iadd' { - a=(Token)match(input,52,FOLLOW_52_in_aritmetica1082); + a=(Token)match(input,52,FOLLOW_52_in_aritmetica1080); stream_52.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:19: a= 'isub' { - a=(Token)match(input,91,FOLLOW_91_in_aritmetica1106); + a=(Token)match(input,91,FOLLOW_91_in_aritmetica1104); stream_91.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:19: a= 'imul' { - a=(Token)match(input,80,FOLLOW_80_in_aritmetica1130); + a=(Token)match(input,80,FOLLOW_80_in_aritmetica1128); stream_80.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:19: a= 'idiv' { - a=(Token)match(input,61,FOLLOW_61_in_aritmetica1154); + a=(Token)match(input,61,FOLLOW_61_in_aritmetica1152); stream_61.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:19: a= 'irem' { - a=(Token)match(input,84,FOLLOW_84_in_aritmetica1178); + a=(Token)match(input,84,FOLLOW_84_in_aritmetica1176); stream_84.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:19: a= 'iinc' { - a=(Token)match(input,74,FOLLOW_74_in_aritmetica1202); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica1200); stream_74.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:19: a= 'ineg' { - a=(Token)match(input,81,FOLLOW_81_in_aritmetica1226); + a=(Token)match(input,81,FOLLOW_81_in_aritmetica1224); stream_81.add(a); @@ -2598,9 +2563,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 109:14: -> ^( ARITMETICA $a) + // 110:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2648,7 +2613,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -2677,10 +2642,10 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt16=16; switch ( input.LA(1) ) { case 60: @@ -2773,144 +2738,144 @@ public final AssemblerParser.load_return load() throws RecognitionException { switch (alt16) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:10: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'iconst_m1' { - a=(Token)match(input,60,FOLLOW_60_in_load1300); + a=(Token)match(input,60,FOLLOW_60_in_load1298); stream_60.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:13: a= 'iconst_0' { - a=(Token)match(input,54,FOLLOW_54_in_load1318); + a=(Token)match(input,54,FOLLOW_54_in_load1316); stream_54.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:13: a= 'iconst_1' { - a=(Token)match(input,55,FOLLOW_55_in_load1336); + a=(Token)match(input,55,FOLLOW_55_in_load1334); stream_55.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:13: a= 'iconst_2' { - a=(Token)match(input,56,FOLLOW_56_in_load1354); + a=(Token)match(input,56,FOLLOW_56_in_load1352); stream_56.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:13: a= 'iconst_3' { - a=(Token)match(input,57,FOLLOW_57_in_load1372); + a=(Token)match(input,57,FOLLOW_57_in_load1370); stream_57.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'iconst_4' { - a=(Token)match(input,58,FOLLOW_58_in_load1390); + a=(Token)match(input,58,FOLLOW_58_in_load1388); stream_58.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'iconst_5' { - a=(Token)match(input,59,FOLLOW_59_in_load1408); + a=(Token)match(input,59,FOLLOW_59_in_load1406); stream_59.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'aconst_null' { - a=(Token)match(input,37,FOLLOW_37_in_load1426); + a=(Token)match(input,37,FOLLOW_37_in_load1424); stream_37.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'iload_0' { - a=(Token)match(input,76,FOLLOW_76_in_load1444); + a=(Token)match(input,76,FOLLOW_76_in_load1442); stream_76.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'iload_1' { - a=(Token)match(input,77,FOLLOW_77_in_load1462); + a=(Token)match(input,77,FOLLOW_77_in_load1460); stream_77.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'iload_2' { - a=(Token)match(input,78,FOLLOW_78_in_load1480); + a=(Token)match(input,78,FOLLOW_78_in_load1478); stream_78.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'iload_3' { - a=(Token)match(input,79,FOLLOW_79_in_load1498); + a=(Token)match(input,79,FOLLOW_79_in_load1496); stream_79.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'aload_0' { - a=(Token)match(input,39,FOLLOW_39_in_load1516); + a=(Token)match(input,39,FOLLOW_39_in_load1514); stream_39.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'aload_1' { - a=(Token)match(input,40,FOLLOW_40_in_load1534); + a=(Token)match(input,40,FOLLOW_40_in_load1532); stream_40.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'aload_2' { - a=(Token)match(input,41,FOLLOW_41_in_load1552); + a=(Token)match(input,41,FOLLOW_41_in_load1550); stream_41.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'aload_3' { - a=(Token)match(input,42,FOLLOW_42_in_load1570); + a=(Token)match(input,42,FOLLOW_42_in_load1568); stream_42.add(a); @@ -2932,9 +2897,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 129:8: -> ^( LOAD $a) + // 130:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2982,7 +2947,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -3001,10 +2966,10 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) int alt17=3; switch ( input.LA(1) ) { case 75: @@ -3032,39 +2997,39 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio switch (alt17) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,75,FOLLOW_75_in_loadint1620); + a=(Token)match(input,75,FOLLOW_75_in_loadint1618); stream_75.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1626); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1624); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,93,FOLLOW_93_in_loadint1646); + a=(Token)match(input,93,FOLLOW_93_in_loadint1644); stream_93.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1652); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1650); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,38,FOLLOW_38_in_loadint1672); + a=(Token)match(input,38,FOLLOW_38_in_loadint1670); stream_38.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1678); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1676); stream_INTEIRO.add(b); @@ -3087,9 +3052,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 136:11: -> ^( LOAD $a $b) + // 137:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3139,7 +3104,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -3160,10 +3125,10 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt18=8; switch ( input.LA(1) ) { case 87: @@ -3216,72 +3181,72 @@ public final AssemblerParser.store_return store() throws RecognitionException { switch (alt18) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:11: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:11: a= 'istore_0' { - a=(Token)match(input,87,FOLLOW_87_in_store1740); + a=(Token)match(input,87,FOLLOW_87_in_store1738); stream_87.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'istore_1' { - a=(Token)match(input,88,FOLLOW_88_in_store1758); + a=(Token)match(input,88,FOLLOW_88_in_store1756); stream_88.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'istore_2' { - a=(Token)match(input,89,FOLLOW_89_in_store1776); + a=(Token)match(input,89,FOLLOW_89_in_store1774); stream_89.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'istore_3' { - a=(Token)match(input,90,FOLLOW_90_in_store1794); + a=(Token)match(input,90,FOLLOW_90_in_store1792); stream_90.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'astore_0' { - a=(Token)match(input,45,FOLLOW_45_in_store1812); + a=(Token)match(input,45,FOLLOW_45_in_store1810); stream_45.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'astore_1' { - a=(Token)match(input,46,FOLLOW_46_in_store1830); + a=(Token)match(input,46,FOLLOW_46_in_store1828); stream_46.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'astore_2' { - a=(Token)match(input,47,FOLLOW_47_in_store1848); + a=(Token)match(input,47,FOLLOW_47_in_store1846); stream_47.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'astore_3' { - a=(Token)match(input,48,FOLLOW_48_in_store1866); + a=(Token)match(input,48,FOLLOW_48_in_store1864); stream_48.add(a); @@ -3303,9 +3268,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 148:9: -> ^( STORE $a) + // 149:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3353,7 +3318,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3371,10 +3336,10 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) int alt19=2; int LA19_0 = input.LA(1); @@ -3393,26 +3358,26 @@ else if ( (LA19_0==44) ) { } switch (alt19) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:14: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,86,FOLLOW_86_in_storeint1920); + a=(Token)match(input,86,FOLLOW_86_in_storeint1918); stream_86.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1926); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1924); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,44,FOLLOW_44_in_storeint1947); + a=(Token)match(input,44,FOLLOW_44_in_storeint1945); stream_44.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1953); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1951); stream_INTEIRO.add(b); @@ -3423,7 +3388,7 @@ else if ( (LA19_0==44) ) { // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3435,9 +3400,9 @@ else if ( (LA19_0==44) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 154:12: -> ^( STORE $a $b) + // 155:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3487,7 +3452,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -3503,10 +3468,10 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt20=3; switch ( input.LA(1) ) { case 53: @@ -3534,27 +3499,27 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:12: a= 'iand' { - a=(Token)match(input,53,FOLLOW_53_in_logica2013); + a=(Token)match(input,53,FOLLOW_53_in_logica2011); stream_53.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'ior' { - a=(Token)match(input,83,FOLLOW_83_in_logica2032); + a=(Token)match(input,83,FOLLOW_83_in_logica2030); stream_83.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: a= 'ixor' { - a=(Token)match(input,92,FOLLOW_92_in_logica2051); + a=(Token)match(input,92,FOLLOW_92_in_logica2049); stream_92.add(a); @@ -3576,9 +3541,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 161:10: -> ^( LOGICA $a) + // 162:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3626,7 +3591,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -3655,10 +3620,10 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt21=13; switch ( input.LA(1) ) { case 68: @@ -3736,169 +3701,169 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:12: a= 'ifeq' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2102); + a=(Token)match(input,68,FOLLOW_68_in_desvio2100); stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2108); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2106); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: a= 'ifne' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2127); + a=(Token)match(input,73,FOLLOW_73_in_desvio2125); stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2133); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2131); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:14: a= 'iflt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2152); + a=(Token)match(input,72,FOLLOW_72_in_desvio2150); stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2158); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2156); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'ifge' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2177); + a=(Token)match(input,69,FOLLOW_69_in_desvio2175); stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2183); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2181); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:14: a= 'ifgt' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2202); + a=(Token)match(input,70,FOLLOW_70_in_desvio2200); stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2208); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2206); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:14: a= 'ifle' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2227); + a=(Token)match(input,71,FOLLOW_71_in_desvio2225); stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2233); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2231); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio2252); + a=(Token)match(input,62,FOLLOW_62_in_desvio2250); stream_62.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2258); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2256); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,67,FOLLOW_67_in_desvio2277); + a=(Token)match(input,67,FOLLOW_67_in_desvio2275); stream_67.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2283); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2281); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio2302); + a=(Token)match(input,66,FOLLOW_66_in_desvio2300); stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2308); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2306); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2327); + a=(Token)match(input,63,FOLLOW_63_in_desvio2325); stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2333); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2331); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2352); + a=(Token)match(input,64,FOLLOW_64_in_desvio2350); stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2358); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2356); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'if_icmple' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio2377); + a=(Token)match(input,65,FOLLOW_65_in_desvio2375); stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2383); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2381); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:14: a= 'goto' b= ID { - a=(Token)match(input,51,FOLLOW_51_in_desvio2402); + a=(Token)match(input,51,FOLLOW_51_in_desvio2400); stream_51.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2408); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2406); stream_ID.add(b); @@ -3909,7 +3874,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3921,9 +3886,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 178:10: -> ^( DESVIO $a $b) + // 179:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3973,7 +3938,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -3989,10 +3954,10 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) int alt22=3; switch ( input.LA(1) ) { case 96: @@ -4020,27 +3985,27 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:11: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:11: a= 'pop' { - a=(Token)match(input,96,FOLLOW_96_in_pilha2469); + a=(Token)match(input,96,FOLLOW_96_in_pilha2467); stream_96.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:13: a= 'pop2' { - a=(Token)match(input,97,FOLLOW_97_in_pilha2487); + a=(Token)match(input,97,FOLLOW_97_in_pilha2485); stream_97.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:13: a= 'dup' { - a=(Token)match(input,49,FOLLOW_49_in_pilha2505); + a=(Token)match(input,49,FOLLOW_49_in_pilha2503); stream_49.add(a); @@ -4062,9 +4027,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 185:9: -> ^( PILHA $a) + // 186:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4113,7 +4078,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -4121,24 +4086,24 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal72=null; + Token char_literal66=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal72_tree=null; + BytecodesAST char_literal66_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:8: (cls+= ID '/' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:8: (cls+= ID '/' )* loop23: do { int alt23=2; @@ -4163,9 +4128,9 @@ public final AssemblerParser.classe_return classe() throws RecognitionException switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2571); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2569); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4175,11 +4140,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal72=(Token)match(input,35,FOLLOW_35_in_classe2573); - char_literal72_tree = - (BytecodesAST)adaptor.create(char_literal72) + char_literal66=(Token)match(input,35,FOLLOW_35_in_classe2571); + char_literal66_tree = + (BytecodesAST)adaptor.create(char_literal66) ; - adaptor.addChild(root_0, char_literal72_tree); + adaptor.addChild(root_0, char_literal66_tree); } @@ -4191,10 +4156,10 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:25: (cls+= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:26: cls+= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:25: (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2582); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2580); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4243,7 +4208,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -4265,27 +4230,27 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:6: (n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:8: n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:6: (n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:8: n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2622); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2620); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2628); + par=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2626); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2634); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2632); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -4331,7 +4296,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -4340,12 +4305,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal73=null; + Token char_literal67=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal73_tree=null; + BytecodesAST char_literal67_tree=null; BytecodesAST cls_tree=null; @@ -4353,13 +4318,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: (cls+= ID '/' )+ int cnt24=0; loop24: do { @@ -4379,9 +4344,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2674); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2672); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4391,11 +4356,11 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal73=(Token)match(input,35,FOLLOW_35_in_campo2676); - char_literal73_tree = - (BytecodesAST)adaptor.create(char_literal73) + char_literal67=(Token)match(input,35,FOLLOW_35_in_campo2674); + char_literal67_tree = + (BytecodesAST)adaptor.create(char_literal67) ; - adaptor.addChild(root_0, char_literal73_tree); + adaptor.addChild(root_0, char_literal67_tree); } @@ -4411,7 +4376,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2684); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2682); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -4448,11 +4413,11 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { - public static final BitSet FOLLOW_instrucao_in_programa117 = new BitSet(new long[]{0xFFFFF7E020080202L,0x00000007FFDFFFFFL}); + public static final BitSet FOLLOW_instrucao_in_programa117 = new BitSet(new long[]{0xFFFFFFE020080202L,0x0000000FFFFFFFFFL}); public static final BitSet FOLLOW_operacao_in_instrucao145 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_definicaoClasse_in_instrucao159 = new BitSet(new long[]{0x0000000040000002L}); public static final BitSet FOLLOW_30_in_instrucao162 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_operacao184 = new BitSet(new long[]{0xFFFFF7E000080000L,0x00000007FFDFFFFFL}); + public static final BitSet FOLLOW_label_in_operacao184 = new BitSet(new long[]{0xFFFFFFE000080000L,0x0000000FFFFFFFFFL}); public static final BitSet FOLLOW_comando_in_operacao186 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_comando_in_operacao190 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ID_in_label212 = new BitSet(new long[]{0x0000001000000000L}); @@ -4466,151 +4431,144 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { public static final BitSet FOLLOW_desvio_in_comando340 = new BitSet(new long[]{0x0000000000080000L}); public static final BitSet FOLLOW_logica_in_comando358 = new BitSet(new long[]{0x0000000000080000L}); public static final BitSet FOLLOW_pilha_in_comando376 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_95_in_comando394 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_comando410 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_definicaoClasse436 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse438 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse440 = new BitSet(new long[]{0x0000000700000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse443 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse445 = new BitSet(new long[]{0x0000000300000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse450 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse452 = new BitSet(new long[]{0x0000000300000002L}); - public static final BitSet FOLLOW_34_in_superClasse513 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse515 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_membroClasse536 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse538 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse540 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse558 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INIT_in_membroClasse560 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_membroClasse562 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse564 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse566 = new BitSet(new long[]{0xFFFFF7E000080200L,0x0000000FFFDFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse568 = new BitSet(new long[]{0xFFFFF7E000080200L,0x0000000FFFDFFFFFL}); - public static final BitSet FOLLOW_99_in_membroClasse571 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse573 = new BitSet(new long[]{0x0000000080000000L}); - public static final BitSet FOLLOW_31_in_membroClasse575 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse599 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_MAIN_in_membroClasse601 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_membroClasse603 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse605 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse607 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse609 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_retorno_in_membroClasse616 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse618 = new BitSet(new long[]{0x0000000080000000L}); - public static final BitSet FOLLOW_31_in_membroClasse620 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse654 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse656 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_membroClasse658 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse660 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse662 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse664 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_retorno_in_membroClasse671 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse673 = new BitSet(new long[]{0x0000000080000000L}); - public static final BitSet FOLLOW_31_in_membroClasse675 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse709 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse711 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_26_in_membroClasse713 = new BitSet(new long[]{0x0000000000800200L}); - public static final BitSet FOLLOW_parametros_in_membroClasse719 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_membroClasse721 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse723 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse725 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse727 = new BitSet(new long[]{0xFFFFFFE000080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_retorno_in_membroClasse734 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse736 = new BitSet(new long[]{0x0000000080000000L}); - public static final BitSet FOLLOW_31_in_membroClasse738 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_manipulacaoObjetos832 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos838 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos840 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_manipulacaoObjetos878 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos884 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos886 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_manipulacaoObjetos924 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos930 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_manipulacaoObjetos932 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos938 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_manipulacaoObjetos999 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1004 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_aritmetica1082 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_aritmetica1106 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_aritmetica1130 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_aritmetica1154 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_aritmetica1178 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica1202 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_aritmetica1226 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load1300 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load1318 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load1336 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load1354 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load1372 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load1390 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load1408 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load1426 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load1444 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_load1462 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_load1480 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_load1498 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load1516 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load1534 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load1552 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load1570 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_loadint1620 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1626 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_loadint1646 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1652 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_loadint1672 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1678 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_store1740 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_store1758 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_store1776 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_store1794 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_store1812 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_store1830 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_store1848 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_store1866 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_storeint1920 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1926 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_storeint1947 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1953 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_logica2013 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_logica2032 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_logica2051 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2102 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2108 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2127 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2133 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2152 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2158 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2177 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2183 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2202 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2208 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2227 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2233 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio2252 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2258 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_desvio2277 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2283 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio2302 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2308 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2327 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2333 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2352 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2358 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio2377 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2383 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio2402 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2408 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_pilha2469 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_pilha2487 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_pilha2505 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2571 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_classe2573 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_classe2582 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2622 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_chamadaMetodo2628 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2634 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2674 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_campo2676 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_campo2684 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_retorno_in_comando394 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_95_in_comando412 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando428 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_definicaoClasse454 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse456 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse458 = new BitSet(new long[]{0x0000000700000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse461 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse463 = new BitSet(new long[]{0x0000000300000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse468 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse470 = new BitSet(new long[]{0x0000000300000002L}); + public static final BitSet FOLLOW_34_in_superClasse531 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse533 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_membroClasse554 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse556 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse558 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse576 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INIT_in_membroClasse578 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_membroClasse580 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse582 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse584 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse586 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_31_in_membroClasse589 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse613 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_MAIN_in_membroClasse615 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_membroClasse617 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse619 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse621 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse623 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_31_in_membroClasse627 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse660 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse662 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_membroClasse664 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse670 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse672 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse674 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_31_in_membroClasse677 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse711 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse713 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_membroClasse715 = new BitSet(new long[]{0x0000000000800200L}); + public static final BitSet FOLLOW_parametros_in_membroClasse721 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_membroClasse723 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse729 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse731 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse733 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_31_in_membroClasse736 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_manipulacaoObjetos830 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos836 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos838 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_manipulacaoObjetos876 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos882 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos884 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_manipulacaoObjetos922 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos928 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_manipulacaoObjetos930 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos936 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_manipulacaoObjetos997 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1002 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_aritmetica1080 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_aritmetica1104 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_aritmetica1128 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_aritmetica1152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_aritmetica1176 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica1200 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_aritmetica1224 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load1298 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load1316 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load1334 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load1352 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load1370 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load1388 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load1406 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load1424 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load1442 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_load1460 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_load1478 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_load1496 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load1514 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load1532 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load1550 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load1568 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_loadint1618 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1624 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_loadint1644 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1650 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_loadint1670 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1676 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_store1738 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_store1756 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_store1774 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_store1792 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_store1810 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_store1828 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_store1846 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_store1864 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_storeint1918 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1924 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_storeint1945 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1951 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_logica2011 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_logica2030 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_logica2049 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2100 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2106 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2125 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2131 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2150 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2156 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2175 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2200 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2206 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2225 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio2250 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2256 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_desvio2275 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2281 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio2300 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2306 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2325 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2331 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2350 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio2375 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2381 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio2400 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2406 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_pilha2467 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_pilha2485 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_pilha2503 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2569 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_classe2571 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_classe2580 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2620 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_chamadaMetodo2626 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2632 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2672 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_campo2674 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_campo2682 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 207cf35..14b66ac 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 22:52:05 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 23:03:17 package br.ufpb.iged.interpretador.parser; @@ -449,14 +449,33 @@ public final void declaracaoVariavel() throws RecognitionException { + // $ANTLR start "entraNoMetodo" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:1: entraNoMetodo :; + public final void entraNoMetodo() throws RecognitionException { + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:2: () + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:72:2: + { + } + + } + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "entraNoMetodo" + + + // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:15: '.class' { - match(input,29,FOLLOW_29_in_saiDaClasse230); if (state.failed) return ; + match(input,29,FOLLOW_29_in_saiDaClasse249); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -481,13 +500,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:1: getfield : 'getfield' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:1: getfield : 'getfield' ; public final void getfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:5: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:75:7: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:5: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:7: 'getfield' { - match(input,50,FOLLOW_50_in_getfield269); if (state.failed) return ; + match(input,50,FOLLOW_50_in_getfield288); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do getfield.."); @@ -511,13 +530,13 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:1: putfield : 'putfield' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: putfield : 'putfield' ; public final void putfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:5: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:7: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:5: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:7: 'putfield' { - match(input,98,FOLLOW_98_in_putfield296); if (state.failed) return ; + match(input,98,FOLLOW_98_in_putfield315); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do putfield.."); @@ -541,13 +560,13 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: invokespecial : 'invokespecial' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:1: invokespecial : 'invokespecial' ; public final void invokespecial() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:5: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:7: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:96:5: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:96:7: 'invokespecial' { - match(input,82,FOLLOW_82_in_invokespecial323); if (state.failed) return ; + match(input,82,FOLLOW_82_in_invokespecial342); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do invokespecial.."); @@ -585,9 +604,9 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse161 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel195 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_declaracaoVariavel197 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_29_in_saiDaClasse230 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_getfield269 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_putfield296 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_invokespecial323 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_saiDaClasse249 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_getfield288 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_putfield315 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_invokespecial342 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index c880a48..e7987ed 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 22:52:05 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 23:03:17 package br.ufpb.iged.interpretador.parser; From fb6883d1f51455de26364b5455cbf088cd737954 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 3 Sep 2012 23:54:12 -0300 Subject: [PATCH 54/79] commit --- .../ufpb/iged/interpretador/gramaticas/Def.g | 57 +- .../ufpb/iged/interpretador/parser/Def.class | Bin 14297 -> 19616 bytes .../ufpb/iged/interpretador/gramaticas/Def.g | 57 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 14 +- .../ufpb/iged/interpretador/parser/Def.java | 573 +++++++++++++++--- .../ufpb/iged/interpretador/parser/Ref.java | 2 +- 7 files changed, 604 insertions(+), 101 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 8fa26f7..039d546 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -13,6 +13,7 @@ options { import br.ufpb.iged.interpretador.symboltable.classes.Escopo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; } @@ -28,9 +29,13 @@ options { topdown : entraNaClasse | declaracaoVariavel + | entraNoMetodoInit + | entraNoMetodoSemParams + | entraNoMetodoComParams ; bottomup : saiDaClasse + | saiDoMetodo | getfield | putfield | invokespecial @@ -64,19 +69,59 @@ declaracaoVariavel } ; -entraNoMetodo - : - - - +entraNoMetodoInit + : ^(METHOD_DECL INIT BODY) + { + System.out.println("linha "+$INIT.getLine()+ + ": def method init "); + SimboloMetodo metodo = new SimboloMetodo("init", null, escopoAtual); + metodo.def = $INIT; + $INIT.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } + ; + +entraNoMetodoSemParams + : ^(METHOD_DECL ID BODY tipoRet =.) + { + System.out.println("linha "+$ID.getLine()+ + ": def method "+$ID.text); + SimboloMetodo metodo = new SimboloMetodo($ID.text+"()"+$tipoRet.getText(), null, escopoAtual); + metodo.def = $ID; + $ID.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } + ; + +entraNoMetodoComParams + : ^(METHOD_DECL ID params =. BODY tipoRet =.) + { + System.out.println("linha "+$ID.getLine()+ + ": def method "+$ID.text); + SimboloMetodo metodo = new SimboloMetodo($ID.text+"("+params+")"+$tipoRet.getText(), null, escopoAtual); + metodo.def = $ID; + $ID.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } ; -saiDaClasse : '.class' +saiDaClasse : '.end class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } ; + +saiDoMetodo + : '.end method' + { + System.out.println("Saindo do metodo: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; getfield : 'getfield' diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index 2dcceb1bd479132d1370ea7625981f4f107793a1..4566b27b04c402f0e844ace69a956a200a3e50e0 100644 GIT binary patch literal 19616 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 VIW*yUG~t!~X#yMi%Tgoh{{ZUqBv=3d literal 14297 zcmb`N34B!5^~cY-Gs#TC1HwE4LV4h*9wu|W_f+3j zUs2E(>MClAMFXL(awbPj!!jnWWg1x(4)w%P;~HPE*Y7xtKc=MSwziUa4ybsX4f7>T zv|)jSNj8*8$h4qzwuH$x6iYbXh7t)`Hk3-3V#6E>Q*D?lVVVs}gXuOX4QAM&G?;0F z(jeP{IZA^Z8HcP#Vm$L1{4G2BpCQ8LMs%=mj)L1ZIX#fwC>daRfEVn^vu)+qV0h~}3 zQyQ$aL1}QJ4N3#A4N8ML8H0VGKsBElluB&OTt*VqG3X#LPw4u61rjwYGt81Fp)HX;;W^&c6Yp$uUZj$K2 zqswY*ywz>hHC0}j<7N`I)iRZWN^0wCn`Jr`F{HL$B}bqJBx`CLRfPsL@m4OaQ4f#A zBi@Ee_4p{f*W0k%)@U^D)K%8j%gWLahU#kSmNquDRe39$nrdX`7^V?0U`4}#DjvM4 zzGkhrwqBJmQAPb~uX@o~ymeKrcZISx9njR=(5Om{V{$jwu4-s&tXU@O9gnBhG*}i* zfNg7)-5E@yV!n2N(AN~`ZVv~;2%RT*zaTF6Y?H6%HK=h* z=U_f^S9Amep+F4b-;tAxVCJj}clurQJEpXuO9VIlfhnZ|mH2{z&c$we7elI|rlAqZ z_b`qtsvFkUBmHO8Qn7j!Qg^uNPB-1{rhDDA(@neFw8u>ky6GV|?RC>5ZaUzmgKm1v zO^4j{gqxmn(=%>*&P~s|=|wkv$IXaQj_jOlHzOoDvvYEhLhNy5%LKxWJG)SgGY~?I zkzMEyb!NqL5L-rCIoy)-&2_e%VnZ}|aH9KJ0Ee(UO^s{_D76|<;Uyo%$Kg-uw zYdiW!P!3otvw^i8U6%*QG%AHobQ)2c?yxhgI5G0V!ds;5(> z1ECJ&Z<4+duzh2*>|X_{2TvV9X>f1=Wdnu=P_|!0RodMv9WJWUA%7RrF{aVkgN8IR zx5~Z_gri8Fp~^=6-AJFQs_gf#v!#Cp;{J86>JUXryYn@c>Rq6*)bFbrO9d}hFY4)S zNBUBgK0_&Rxzr`tDI4QTnGE?)NAhZw3`=jkMkXUFd7XR?Nm>65vi^7&1K%XIwRKM+ z=9>*lqGT6;9ii_?^IH;Tb@?Y!`4+z2;5&E+-hkkxVqH?s`jxqBWL2%FBtS2EA^5=zol2;1KvQ$ zU*Fr^?vG-v5%e>8yx|UCP)+7wJJZ0Zul5K1UA~yy0?y3IU7uiaFl66|Rf03NIe_xn zU$jmc*pK3Yyqqtpw;t0AcAS1+cX{p_7yk$~5AVW8e@D106gbl#ZQAUM`a7FqP&$=g z;h&%*>CIHM+^e!nUt?vIn9W^HetE<0xE)Qe{IpxpAPue;k9#h%_Tck)bQb8?55b@Q7{tE(2auErrj zPiu3)*A;GE9*DKpF0ZL>9dwe=+7s<)ZI8CfgN9al&@kk77hdR#1v-2^tvGBb>|zT1 z*X{kkt&?-t$X@=P?ByTIk@5$FUZ(G*@Voq;i~q>9=zpr-;6L%75f8e8;dZ$SU-U)Z zooH2Wt-_b9$IGRD9~ks~`T;_|z4}H7t2v{?ABhF9UU2bWG2({1lI;_+On+fn+20KQ z8UK6)|AYVO;!kiEH2l#7UTE;A{4Z=?yx62Wb82&IWmTUU{7e2-3dYWV3_dJ3ZbrMW zV+*zn9b0hhgByYkA%p|1vB?L=!W70Qy973b2^6jmuL;N)QyGl)E9@57A5yAtiWKw~ z;w{a|8Sa#|wF$;VZ79|s3((!dFvLhP3QZU3?b*C691Mm}#}YP?$Jv`0P6Vyv{;*|w=CBHu915aVT0&+s+4yq#f)J}?7n6a(f?8{0OHDaY4 zmN+&`PcSUuu%b-V8KPd`kj#bNlB)^4JSVqSK6{cO8buST^F<=qTQN;SV9}bD_552)uV()lF{#l8Lu{0J?pWA* zd8#-?w7Y~4$J(kv1~-)SXI6#wFlX6-Vg;_JL59I&^Uh ztmoOAD!N2awskkt@ZMm5Vvh||S3m%wIa?osxEH3u8wOmP-8fn`|SBi5GZ9IGno{38^W3o8eX z0jwB=QzOLMQWA%-7t^9xR-{wFhto-jv5td`)dPCeG zZp4NKQ6~Nc)2eV7%P&uS8QU8R1dF`bn8Gc#i(6dcW*ot)QQd#X5MLL!qJwZwF(jnf z&60aE?$%bLpPVshfJm{`KGtMfa*Q1lZz4>e_97!(=Z}Ru!)|dGVq%jo5b6wPb^5HR z=PxYG>h^cHN5ee}RRp|8M!&2a6}s1inR_r ztqd)9l)Y|Mf>^x=`-iyZ;jH*XU0CQA4-UE$pRMJchnO-3o*6V{7ZzgS))elIcE~Rs zp_^N78D!_t6hfC^QyilVxpPMzoPXYThZU=X0+zIw;yb0W;@n <5R&~G!BBhH4cHp8b`pVX&eRjXe`HBuf|)! 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 diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 8fa26f7..039d546 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -13,6 +13,7 @@ options { import br.ufpb.iged.interpretador.symboltable.classes.Escopo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; } @@ -28,9 +29,13 @@ options { topdown : entraNaClasse | declaracaoVariavel + | entraNoMetodoInit + | entraNoMetodoSemParams + | entraNoMetodoComParams ; bottomup : saiDaClasse + | saiDoMetodo | getfield | putfield | invokespecial @@ -64,19 +69,59 @@ declaracaoVariavel } ; -entraNoMetodo - : - - - +entraNoMetodoInit + : ^(METHOD_DECL INIT BODY) + { + System.out.println("linha "+$INIT.getLine()+ + ": def method init "); + SimboloMetodo metodo = new SimboloMetodo("init", null, escopoAtual); + metodo.def = $INIT; + $INIT.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } + ; + +entraNoMetodoSemParams + : ^(METHOD_DECL ID BODY tipoRet =.) + { + System.out.println("linha "+$ID.getLine()+ + ": def method "+$ID.text); + SimboloMetodo metodo = new SimboloMetodo($ID.text+"()"+$tipoRet.getText(), null, escopoAtual); + metodo.def = $ID; + $ID.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } + ; + +entraNoMetodoComParams + : ^(METHOD_DECL ID params =. BODY tipoRet =.) + { + System.out.println("linha "+$ID.getLine()+ + ": def method "+$ID.text); + SimboloMetodo metodo = new SimboloMetodo($ID.text+"("+params+")"+$tipoRet.getText(), null, escopoAtual); + metodo.def = $ID; + $ID.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } ; -saiDaClasse : '.class' +saiDaClasse : '.end class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } ; + +saiDoMetodo + : '.end method' + { + System.out.println("Saindo do metodo: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; getfield : 'getfield' diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 3471b87..fb5046d 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 23:03:16 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 23:45:22 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index ed4ff5e..66ddf2b 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 23:03:15 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 23:45:22 package br.ufpb.iged.interpretador.parser; @@ -1001,7 +1001,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: membroClasse, superClasse, ID, 29 + // elements: 29, ID, membroClasse, superClasse // token labels: // rule labels: retval // token list labels: @@ -1545,7 +1545,7 @@ else if ( (LA12_5==26) ) { // AST REWRITE - // elements: VOID, operacao, MAIN + // elements: MAIN, VOID, operacao // token labels: // rule labels: retval // token list labels: @@ -1661,7 +1661,7 @@ else if ( (LA12_5==26) ) { // AST REWRITE - // elements: ret, operacao, ID + // elements: ID, ret, operacao // token labels: // rule labels: ret, retval // token list labels: @@ -1787,7 +1787,7 @@ else if ( (LA12_5==26) ) { // AST REWRITE - // elements: operacao, params, ID, ret + // elements: ID, ret, operacao, params // token labels: // rule labels: ret, retval, params // token list labels: @@ -2120,7 +2120,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: tipo, 50, b + // elements: b, 50, tipo // token labels: // rule labels: retval, b // token list labels: @@ -3040,7 +3040,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 14b66ac..cd37e18 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 23:03:17 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 23:45:23 package br.ufpb.iged.interpretador.parser; @@ -6,6 +6,7 @@ import br.ufpb.iged.interpretador.symboltable.classes.Escopo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; @@ -151,20 +152,203 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:1: topdown : ( entraNaClasse | declaracaoVariavel ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:1: topdown : ( entraNaClasse | declaracaoVariavel | entraNoMetodoInit | entraNoMetodoSemParams | entraNoMetodoComParams ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:9: ( entraNaClasse | declaracaoVariavel ) - int alt1=2; - int LA1_0 = input.LA(1); - - if ( (LA1_0==29) ) { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:9: ( entraNaClasse | declaracaoVariavel | entraNoMetodoInit | entraNoMetodoSemParams | entraNoMetodoComParams ) + int alt1=5; + switch ( input.LA(1) ) { + case 29: + { alt1=1; - } - else if ( (LA1_0==FIELD_DECL) ) { + } + break; + case FIELD_DECL: + { alt1=2; - } - else { + } + break; + case METHOD_DECL: + { + int LA1_3 = input.LA(2); + + if ( (LA1_3==DOWN) ) { + int LA1_4 = input.LA(3); + + if ( (LA1_4==INIT) ) { + alt1=3; + } + else if ( (LA1_4==ID) ) { + int LA1_6 = input.LA(4); + + if ( (LA1_6==BODY) ) { + switch ( input.LA(5) ) { + case BODY: + { + int LA1_9 = input.LA(6); + + if ( ((LA1_9 >= DOWN && LA1_9 <= UP)) ) { + alt1=4; + } + else if ( ((LA1_9 >= ARITMETICA && LA1_9 <= 99)) ) { + alt1=5; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 9, input); + + throw nvae; + + } + } + break; + case DOWN: + { + alt1=5; + } + break; + case ARITMETICA: + case DESVIO: + case EXTENDS: + case FIELD_DECL: + case ID: + case INIT: + case INT: + case INTEIRO: + case LABEL: + case LOAD: + case LOGICA: + case MAIN: + case MEMBRO_CLASSE: + case METHOD_DECL: + case NEWLINE: + case NULL: + case PILHA: + case STORE: + case TIPO_REF: + case VOID: + case WS: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + { + alt1=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 7, input); + + throw nvae; + + } + + } + else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { + alt1=5; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 6, input); + + throw nvae; + + } + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 4, input); + + throw nvae; + + } + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 3, input); + + throw nvae; + + } + } + break; + default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = new NoViableAltException("", 1, 0, input); @@ -172,9 +356,10 @@ else if ( (LA1_0==FIELD_DECL) ) { throw nvae; } + switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:29:11: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown49); entraNaClasse(); @@ -185,7 +370,7 @@ else if ( (LA1_0==FIELD_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown61); declaracaoVariavel(); @@ -193,6 +378,39 @@ else if ( (LA1_0==FIELD_DECL) ) { state._fsp--; if (state.failed) return ; + } + break; + case 3 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:11: entraNoMetodoInit + { + pushFollow(FOLLOW_entraNoMetodoInit_in_topdown73); + entraNoMetodoInit(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 4 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:11: entraNoMetodoSemParams + { + pushFollow(FOLLOW_entraNoMetodoSemParams_in_topdown85); + entraNoMetodoSemParams(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 5 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:11: entraNoMetodoComParams + { + pushFollow(FOLLOW_entraNoMetodoComParams_in_topdown97); + entraNoMetodoComParams(); + + state._fsp--; + if (state.failed) return ; + } break; @@ -213,32 +431,37 @@ else if ( (LA1_0==FIELD_DECL) ) { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:1: bottomup : ( saiDaClasse | getfield | putfield | invokespecial ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:1: bottomup : ( saiDaClasse | saiDoMetodo | getfield | putfield | invokespecial ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:10: ( saiDaClasse | getfield | putfield | invokespecial ) - int alt2=4; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:10: ( saiDaClasse | saiDoMetodo | getfield | putfield | invokespecial ) + int alt2=5; switch ( input.LA(1) ) { - case 29: + case 30: { alt2=1; } break; - case 50: + case 31: { alt2=2; } break; - case 98: + case 50: { alt2=3; } break; - case 82: + case 98: { alt2=4; } break; + case 82: + { + alt2=5; + } + break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = @@ -250,9 +473,9 @@ public final void bottomup() throws RecognitionException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:12: saiDaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup78); + pushFollow(FOLLOW_saiDaClasse_in_bottomup114); saiDaClasse(); state._fsp--; @@ -261,10 +484,10 @@ public final void bottomup() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:12: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:38:5: saiDoMetodo { - pushFollow(FOLLOW_getfield_in_bottomup91); - getfield(); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup120); + saiDoMetodo(); state._fsp--; if (state.failed) return ; @@ -272,10 +495,10 @@ public final void bottomup() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:12: putfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:12: getfield { - pushFollow(FOLLOW_putfield_in_bottomup104); - putfield(); + pushFollow(FOLLOW_getfield_in_bottomup133); + getfield(); state._fsp--; if (state.failed) return ; @@ -283,9 +506,20 @@ public final void bottomup() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:12: invokespecial + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:12: putfield + { + pushFollow(FOLLOW_putfield_in_bottomup146); + putfield(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 5 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:12: invokespecial { - pushFollow(FOLLOW_invokespecial_in_bottomup117); + pushFollow(FOLLOW_invokespecial_in_bottomup159); invokespecial(); state._fsp--; @@ -311,21 +545,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,29,FOLLOW_29_in_entraNaClasse149); if (state.failed) return ; + match(input,29,FOLLOW_29_in_entraNaClasse191); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse153); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse195); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -350,12 +584,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse157); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse199); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse161); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse203); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -401,19 +635,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:54:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:59:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:55:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:55:7: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:7: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel195); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel237); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel197); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel239); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -449,33 +683,167 @@ public final void declaracaoVariavel() throws RecognitionException { - // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:1: entraNoMetodo :; - public final void entraNoMetodo() throws RecognitionException { + // $ANTLR start "entraNoMetodoInit" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:72:1: entraNoMetodoInit : ^( METHOD_DECL INIT BODY ) ; + public final void entraNoMetodoInit() throws RecognitionException { + BytecodesAST INIT2=null; + try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:68:2: () - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:72:2: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:2: ( ^( METHOD_DECL INIT BODY ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:4: ^( METHOD_DECL INIT BODY ) { + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodoInit274); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoMetodoInit276); if (state.failed) return ; + + match(input,BODY,FOLLOW_BODY_in_entraNoMetodoInit278); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("linha "+INIT2.getLine()+ + ": def method init "); + SimboloMetodo metodo = new SimboloMetodo("init", null, escopoAtual); + metodo.def = INIT2; + INIT2.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } + } } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "entraNoMetodoInit" + + + + // $ANTLR start "entraNoMetodoSemParams" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:85:1: entraNoMetodoSemParams : ^( METHOD_DECL ID BODY tipoRet= . ) ; + public final void entraNoMetodoSemParams() throws RecognitionException { + BytecodesAST ID3=null; + BytecodesAST tipoRet=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:2: ( ^( METHOD_DECL ID BODY tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:4: ^( METHOD_DECL ID BODY tipoRet= . ) + { + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodoSemParams294); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodoSemParams296); if (state.failed) return ; + + match(input,BODY,FOLLOW_BODY_in_entraNoMetodoSemParams298); if (state.failed) return ; + + tipoRet=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("linha "+ID3.getLine()+ + ": def method "+(ID3!=null?ID3.getText():null)); + SimboloMetodo metodo = new SimboloMetodo((ID3!=null?ID3.getText():null)+"()"+tipoRet.getText(), null, escopoAtual); + metodo.def = ID3; + ID3.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { // do for sure before leaving } return ; } - // $ANTLR end "entraNoMetodo" + // $ANTLR end "entraNoMetodoSemParams" + + + + // $ANTLR start "entraNoMetodoComParams" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:1: entraNoMetodoComParams : ^( METHOD_DECL ID params= . BODY tipoRet= . ) ; + public final void entraNoMetodoComParams() throws RecognitionException { + BytecodesAST ID4=null; + BytecodesAST params=null; + BytecodesAST tipoRet=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:2: ( ^( METHOD_DECL ID params= . BODY tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:4: ^( METHOD_DECL ID params= . BODY tipoRet= . ) + { + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodoComParams319); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + ID4=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodoComParams321); if (state.failed) return ; + + params=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input,BODY,FOLLOW_BODY_in_entraNoMetodoComParams328); if (state.failed) return ; + + tipoRet=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("linha "+ID4.getLine()+ + ": def method "+(ID4!=null?ID4.getText():null)); + SimboloMetodo metodo = new SimboloMetodo((ID4!=null?ID4.getText():null)+"("+params+")"+tipoRet.getText(), null, escopoAtual); + metodo.def = ID4; + ID4.simbolo = metodo; + escopoAtual.definir(metodo); + escopoAtual = metodo; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "entraNoMetodoComParams" // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:1: saiDaClasse : '.end class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:13: ( '.end class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:15: '.end class' { - match(input,29,FOLLOW_29_in_saiDaClasse249); if (state.failed) return ; + match(input,30,FOLLOW_30_in_saiDaClasse351); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -499,14 +867,45 @@ public final void saiDaClasse() throws RecognitionException { + // $ANTLR start "saiDoMetodo" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:118:1: saiDoMetodo : '.end method' ; + public final void saiDoMetodo() throws RecognitionException { + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:119:2: ( '.end method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:119:5: '.end method' + { + match(input,31,FOLLOW_31_in_saiDoMetodo401); if (state.failed) return ; + + if ( state.backtracking==1 ) { + System.out.println("Saindo do metodo: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "saiDoMetodo" + + + // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:1: getfield : 'getfield' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:1: getfield : 'getfield' ; public final void getfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:5: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:82:7: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:5: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:7: 'getfield' { - match(input,50,FOLLOW_50_in_getfield288); if (state.failed) return ; + match(input,50,FOLLOW_50_in_getfield418); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do getfield.."); @@ -530,13 +929,13 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: putfield : 'putfield' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:133:1: putfield : 'putfield' ; public final void putfield() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:5: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:7: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:134:5: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:134:7: 'putfield' { - match(input,98,FOLLOW_98_in_putfield315); if (state.failed) return ; + match(input,98,FOLLOW_98_in_putfield445); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do putfield.."); @@ -560,13 +959,13 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:1: invokespecial : 'invokespecial' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:1: invokespecial : 'invokespecial' ; public final void invokespecial() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:96:5: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:96:7: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:141:5: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:141:7: 'invokespecial' { - match(input,82,FOLLOW_82_in_invokespecial342); if (state.failed) return ; + match(input,82,FOLLOW_82_in_invokespecial472); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do invokespecial.."); @@ -594,19 +993,33 @@ public final void invokespecial() throws RecognitionException { public static final BitSet FOLLOW_entraNaClasse_in_topdown49 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declaracaoVariavel_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDaClasse_in_bottomup78 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getfield_in_bottomup91 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_bottomup104 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_bottomup117 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_entraNaClasse149 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse153 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse157 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse161 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel195 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel197 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_29_in_saiDaClasse249 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_getfield288 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_putfield315 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_invokespecial342 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoMetodoInit_in_topdown73 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoMetodoSemParams_in_topdown85 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoMetodoComParams_in_topdown97 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup114 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoMetodo_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getfield_in_bottomup133 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_bottomup146 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_bottomup159 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_entraNaClasse191 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse195 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse199 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse203 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel237 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel239 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodoInit274 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoMetodoInit276 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_BODY_in_entraNoMetodoInit278 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodoSemParams294 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodoSemParams296 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_BODY_in_entraNoMetodoSemParams298 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodoComParams319 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodoComParams321 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_BODY_in_entraNoMetodoComParams328 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_30_in_saiDaClasse351 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_saiDoMetodo401 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_getfield418 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_putfield445 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_invokespecial472 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index e7987ed..860601b 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 23:03:17 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 23:45:23 package br.ufpb.iged.interpretador.parser; From 200069859d76a05a7c9359d2b8a42351356b4ca3 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Tue, 4 Sep 2012 19:00:55 -0300 Subject: [PATCH 55/79] commit --- .../bytecodeassembler/asm/Definicao.class | Bin 4595 -> 4589 bytes .../iged/interpretador/gramaticas/Assembler.g | 30 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 89 +- .../interpretador/parser/Assembler.tokens | 10 +- .../parser/AssemblerLexer$DFA6.class | Bin 1909 -> 1902 bytes .../interpretador/parser/AssemblerLexer.class | Bin 28908 -> 28621 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 72588 -> 67494 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 19616 -> 18047 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 10 +- .../ufpb/iged/interpretador/parser/Ref.class | Bin 23890 -> 23892 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 10 +- classes/Classe.class | 2 +- classes/Main.class | 5 +- classes/Teste.class | 3 - .../iged/interpretador/gramaticas/Assembler.g | 30 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 89 +- .../interpretador/parser/Assembler.tokens | 10 +- .../interpretador/parser/AssemblerLexer.java | 536 +++--- .../interpretador/parser/AssemblerParser.java | 1629 ++++++++--------- .../ufpb/iged/interpretador/parser/Def.java | 593 +++--- .../ufpb/iged/interpretador/parser/Def.tokens | 10 +- .../ufpb/iged/interpretador/parser/Ref.java | 14 +- .../ufpb/iged/interpretador/parser/Ref.tokens | 10 +- .../symboltable/classes/SimboloMetodo.java | 6 +- 37 files changed, 1361 insertions(+), 1725 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 397b9e244e45464ef4a224d59803f9e652bc1079..6c1f8b56a7d4b20a58e1b134d3fa975f238e913a 100644 GIT binary patch delta 2038 zcmYk6Xj#>?C73e(9)v(?r%58M1PQzxG>NRY2X`Y6Dm*#8O zMw29CZDtZ@(2R1og0h*-S44ZFHOXiyQPYy`v{Q-3rlwgJYuKT{YbVpun1=fl_&IE) zSsoY%8s(vJph+Gc2O4Cj0-xQLO?SpMJYvS+*fiKp~WLSW3NlpWIs)uNoO=X zPK!$c6+B5Q)=lbZQg$>(<2`GluI|e;Ja3|oZd%R*CW_fT8eTF{XS_qhD<(?C6B=G~ zOc+hk!*5VOJKd?_pi#?B^tOrYRGWr(P1GL0Qp5WkrRZfo?sLhK z`@(E!d#l~nkueRvbdkC^@U_dP*AW*@!|zT&%6{)+lCnS2k0jFBw1%H)lcKUoztHM) zXx8|*aiA6cV;pGx{$g-wUt4K`|Dj!q=6C5hExp9lL4ixPTG1bUELW$M$EA9$d_;+O zw%v{=V_MOZI@3Ky1qzDnR8M+oyekuLv!h9^=sU4e!T7QOC^az%*Tc%(VSlwRZ2pj| zhD-Hwk5d8VumXHEf}cL732-g(btiBP0_Hi+X}AGaQRR&Qo`aytfwdPG?StNkXOu4C zo2?PJr6uBJxXr`hW4Oc1;AgnY$Dj$ENO+x}38ip@7Lv+MD5Yp>BjGKWuMIHvVZOM4 zaR3W3JObNWB3Q`c9ug%Yf-LUE3h7?Nct1{cgeNjTh|>foF%IE$L1Y}JZVRMah{Y~! zlzfTG$MDPq&pBS}Kiq2&7nK7Hh%w%)On9X8l zu{mta7BN+9zA|R3m})lP7}F1X5M99Bn-8jzy1*!*D3pqLsqKViAN`dr3i zSS47?_$yWm)-nE$vjyuJ|HL_h^BDie20>>&^S^k3@B+sFuvzeIgT+eWg~I0uTew*G zTw!krc8X{a;Sa$s5sf0~T}DJK6j2z0Q4)nM!>VY=eBEkNZVeu~Y6$3?W&Xy{j8R^q$IEal#8lefazslXdgq#{ub4=5<$*hG^)ln0t~Bo8#@XdYgc>e!wV+0b<)1QXi_xZrQv0h+GA}R4w;mUwQ6|Hq)3vUeS_M?Q|%fK8`W*n+a|@G zWV42MO>Bu>so{N2N%}A!a!O=0e9Wnp+$WOA9hFgX$IQvKG{u|S(x$-|E}AZ1xoBE_ zwNh zvF3Orp;Zy>crtdCAC#IFgd1UP_DDgsuh@L?){WY_+vBW(GPn+WKr5x6&J?(w_=f*+ z6#V8n9@B6WtfR{H0G`93$$>SF%f_K6>=~n%&@EODdK<%DhC4hAK8Cxz3Mg6HXPc96SaQEL7XTKFmA^}4CP?BF^q*Q?junuBFN%?ESK&@ zj1S^0M|djp!&o6WjqwqjEr^V}sM})cX0zCXOJqF6_$V$FEN0w?%LGdp_v1x^rHlvg zGDZidGe3?iWq1bTlNc79$@ny0E?CC+EJg*(8K1{hg0mP8VnVQj@g+CX%sgwGeAf|m$iAnd^v!WRnrY}h5DUWB$`w}>So0ygACEEN&7 zVJrv1-o{Zib;SI<6=v7t(W_U&fVBz+t!@~y*1~qHA9h$fVc6OWtF8UuRW@G*K-U1> wA#xeOe0o>py;V6CnrKF7ZWWUJNN^&Ts8Z8FP3PAcY9_r0Xsm~>s50>X2XWXePyhe` diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 53ea15b..e576b86 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -18,6 +18,7 @@ tokens { PILHA; BODY; METHOD_DECL; + PARAMS; } @header{ @@ -77,15 +78,26 @@ membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) | '.method' INIT '()' VOID NEWLINE operacao* '.end method' -> ^(METHOD_DECL INIT ^(BODY operacao*)) - | '.method' MAIN '()' VOID NEWLINE operacao* '.end method' - -> ^(METHOD_DECL MAIN ^(BODY operacao*) VOID) - | '.method' ID '()' ret = tipo NEWLINE operacao* '.end method' - -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) - | '.method' ID '(' params = parametros ')' ret = tipo NEWLINE operacao* '.end method' - -> ^(METHOD_DECL ID $params ^(BODY operacao*) $ret) + | '.method' ID (parametros | '(' parametros ')') ret = tipo NEWLINE operacao* '.end method' + -> ^(METHOD_DECL ID $ret parametros ^(BODY operacao*)) ; - -parametros : (ID | TIPO_REF)+; + +parametros + : a = '()' -> ^(PARAMS $a) + | ( + a = ID + | a = TIPO_REF + )+ + -> ^(PARAMS $a)+ + ; + +/*parametros + : + ( a = ID + | a = TIPO_REF + )+ + -> ^(PARAMS $a)+ + ;*/ retorno : 'areturn' | 'ireturn' | 'return'; @@ -216,8 +228,6 @@ campo returns [List classe, String campo] INIT : ''; -MAIN : 'main'; - INT : 'I'; VOID : 'V'; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 039d546..c5689f7 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -15,6 +15,7 @@ options { import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; + import br.ufpb.iged.interpretador.symboltable.classes.EscopoLocal; } @members { @@ -27,18 +28,17 @@ options { } } -topdown : entraNaClasse - | declaracaoVariavel +topdown : entraNoCorpoMetodo | entraNoMetodoInit - | entraNoMetodoSemParams - | entraNoMetodoComParams + | entraNoMetodo + | entraNaClasse + | parametros + | declaracaoVariavel ; -bottomup : saiDaClasse - | saiDoMetodo - | getfield - | putfield - | invokespecial +bottomup : saiDoCorpoMetodo + | saiDoMetodo + | saiDaClasse ; entraNaClasse @@ -70,7 +70,7 @@ declaracaoVariavel ; entraNoMetodoInit - : ^(METHOD_DECL INIT BODY) + : ^(METHOD_DECL INIT) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); @@ -81,34 +81,45 @@ entraNoMetodoInit escopoAtual = metodo; } ; - -entraNoMetodoSemParams - : ^(METHOD_DECL ID BODY tipoRet =.) + +entraNoMetodo + : ^(METHOD_DECL ID tipoRet =. .+) { System.out.println("linha "+$ID.getLine()+ ": def method "+$ID.text); - SimboloMetodo metodo = new SimboloMetodo($ID.text+"()"+$tipoRet.getText(), null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($ID.text+""+$tipoRet.getText(), null, escopoAtual); metodo.def = $ID; $ID.simbolo = metodo; escopoAtual.definir(metodo); escopoAtual = metodo; } ; - -entraNoMetodoComParams - : ^(METHOD_DECL ID params =. BODY tipoRet =.) + +parametros + : ^(PARAMS pars = .) { - System.out.println("linha "+$ID.getLine()+ - ": def method "+$ID.text); - SimboloMetodo metodo = new SimboloMetodo($ID.text+"("+params+")"+$tipoRet.getText(), null, escopoAtual); - metodo.def = $ID; - $ID.simbolo = metodo; - escopoAtual.definir(metodo); - escopoAtual = metodo; - } + System.out.println("linha "+$pars.getLine()+": def "+$pars.getText()); + $pars.escopo = escopoAtual; + SimboloVariavel par = new SimboloVariavel($pars.getText(),null); + par.def = $pars; // track AST location of def's ID + $pars.simbolo = par; // track in AST + escopoAtual.definir(par); + } ; + +entraNoCorpoMetodo + : BODY {escopoAtual = new EscopoLocal(escopoAtual);} // push scope + ; + +saiDoCorpoMetodo + : BODY + { + System.out.println("locals: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; -saiDaClasse : '.end class' +saiDaClasse : '.class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope @@ -116,33 +127,9 @@ saiDaClasse : '.end class' ; saiDoMetodo - : '.end method' + : METHOD_DECL { System.out.println("Saindo do metodo: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } ; - -getfield - : 'getfield' - { - System.out.println("Saindo do getfield.."); - } - ; - -putfield - : 'putfield' - { - System.out.println("Saindo do putfield.."); - } - ; - -invokespecial - : 'invokespecial' - { - System.out.println("Saindo do invokespecial.."); - } - ; - - - diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens index b4df8bc..f4d0f3a 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -84,11 +84,11 @@ INTEIRO=12 LABEL=13 LOAD=14 LOGICA=15 -MAIN=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 +MEMBRO_CLASSE=16 +METHOD_DECL=17 +NEWLINE=18 +NULL=19 +PARAMS=20 PILHA=21 STORE=22 TIPO_REF=23 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class index c29ff810602baf00ce6ac7be69f98ac4cf2449af..c6ff1ff60882886ef886e911085c6b922dbf4951 100644 GIT binary patch delta 70 zcmey$_l|EvIWyyu%@xe)Op~9ne${Md;N)px;Nxj!5aDTKkmhM;P~z!e(B$c4FyQH8 aFz4xJu;b}raOLTp%);)%*gx5mT?YW*5E4!R delta 75 zcmV-R0JQ(^4)qSOcLM>dvv>n%0t8J#Nlug81^6ka00|7J01gbP02BUe03r;m h04WTu05A-$05=S;06q+`07VS3ll=xn0ke}r2P}Au78n2k diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index 4c86f795436a76c65940a4bd4f7ba41d2b2d5eb6..0d51518daf7446e6ef545b5c253caa1a3c92804b 100644 GIT binary patch literal 28621 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 G#{M7Fj|KYx diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index 073bb7e06093d39e4fb17de7693351187ea8cbd6..fb7028682be9e07e7dcba6c13220daa55f74304d 100644 GIT binary patch delta 21 dcmZ3-x{h^&GZPcX)5)$()=V7FCpR(a002ty29y8* delta 21 ccmZ3-x{h^&GZPbM)?`;EYbMT|$xTc;07BUXpa1{> diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class index a5c31b41b1b2b3d11f8676e0933af73fcbf2375c..d8a196ca06448eb2f2b3ba110c64decf2b5b8258 100644 GIT binary patch delta 19 acmaFC`hs;s9TTJNM#sr}m~;R~ItEw( delta 19 bcmaFC`hs;s9TVfB$@NS&jK?PLVbTErPl^X( diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class index ab4a6c4b86414b6b07cc23646b518e75cedc15ec..f3c245b568d10a143c8da09a7bfead3afc61d2a7 100644 GIT binary patch delta 21 dcmZo-Yhv3lor#J6$>f<#)=c~_CtqXI0RT=u2T1?` delta 21 ccmZo-Yhv3lory^xbMj0kYbJrb$=8^407fPTRR910 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class index 407e54b4b5d1c3e0179dd47f0db02e01777a92c3..a95fdd8e33b2ffc21867571d15e820aac3a21d53 100644 GIT binary patch delta 19 acmX@cdW>~L3=?C@~L3=`wa$+1i}jBh5-V$uNsNx26F diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class index d5ad9d29ce08851bdb8a4924ebe0566a5b3b7c5e..7b08e43b5394c610f25fe2230fcd405f5cc3a402 100644 GIT binary patch delta 21 ccmZ3)x`=gyITI6a-DFE9YbM@?$z@DB06{$klmGw# delta 21 ccmZ3)x`=gyITI5f^JGgVYbHL{$z@DB068TDpa1{> diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index 51f1952e6baabab2f32906ede0061cee264506ea..0026d660ab32cb73911fbd39d13c061f5038108a 100644 GIT binary patch delta 21 dcmbQkI)`~L3=?C<2 delta 19 bcmX@cdW>~L3=`wq$+1i}jPEDUV$uNsN%RK{ diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index 761b537ad301ad8b1928db5de52a7ca4fd813867..6c6737fe6a858cfac8ec81948ecc22faee00acfc 100644 GIT binary patch delta 21 dcmbQwI-hle2@@0F&B`}l8n-oqFxbbGnX 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 VIW*yUG~t!~X#yMi%Tgoh{{ZUqBv=3d diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.tokens b/bin/br/ufpb/iged/interpretador/parser/Def.tokens index b4df8bc..f4d0f3a 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Def.tokens @@ -84,11 +84,11 @@ INTEIRO=12 LABEL=13 LOAD=14 LOGICA=15 -MAIN=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 +MEMBRO_CLASSE=16 +METHOD_DECL=17 +NEWLINE=18 +NULL=19 +PARAMS=20 PILHA=21 STORE=22 TIPO_REF=23 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index 6b12aba22465c3ad790cc3a70c875cf1bac4c0a3..606a467411adc6344135072c3c3eaff001fe8d58 100644 GIT binary patch delta 75 zcmcb#i}A`X#tm$&lZ9A?ECd)CxP4tiJp5haU0j`gm>C!t1Q{9F{anL+JpEijTp>mV Z7Qav*u#_+(16zP&kfU$#W>3=9H{47|RszD_~@@y() V - return -.end method .end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 53ea15b..e576b86 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -18,6 +18,7 @@ tokens { PILHA; BODY; METHOD_DECL; + PARAMS; } @header{ @@ -77,15 +78,26 @@ membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) | '.method' INIT '()' VOID NEWLINE operacao* '.end method' -> ^(METHOD_DECL INIT ^(BODY operacao*)) - | '.method' MAIN '()' VOID NEWLINE operacao* '.end method' - -> ^(METHOD_DECL MAIN ^(BODY operacao*) VOID) - | '.method' ID '()' ret = tipo NEWLINE operacao* '.end method' - -> ^(METHOD_DECL ID ^(BODY operacao*) $ret) - | '.method' ID '(' params = parametros ')' ret = tipo NEWLINE operacao* '.end method' - -> ^(METHOD_DECL ID $params ^(BODY operacao*) $ret) + | '.method' ID (parametros | '(' parametros ')') ret = tipo NEWLINE operacao* '.end method' + -> ^(METHOD_DECL ID $ret parametros ^(BODY operacao*)) ; - -parametros : (ID | TIPO_REF)+; + +parametros + : a = '()' -> ^(PARAMS $a) + | ( + a = ID + | a = TIPO_REF + )+ + -> ^(PARAMS $a)+ + ; + +/*parametros + : + ( a = ID + | a = TIPO_REF + )+ + -> ^(PARAMS $a)+ + ;*/ retorno : 'areturn' | 'ireturn' | 'return'; @@ -216,8 +228,6 @@ campo returns [List classe, String campo] INIT : ''; -MAIN : 'main'; - INT : 'I'; VOID : 'V'; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 039d546..c5689f7 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -15,6 +15,7 @@ options { import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; + import br.ufpb.iged.interpretador.symboltable.classes.EscopoLocal; } @members { @@ -27,18 +28,17 @@ options { } } -topdown : entraNaClasse - | declaracaoVariavel +topdown : entraNoCorpoMetodo | entraNoMetodoInit - | entraNoMetodoSemParams - | entraNoMetodoComParams + | entraNoMetodo + | entraNaClasse + | parametros + | declaracaoVariavel ; -bottomup : saiDaClasse - | saiDoMetodo - | getfield - | putfield - | invokespecial +bottomup : saiDoCorpoMetodo + | saiDoMetodo + | saiDaClasse ; entraNaClasse @@ -70,7 +70,7 @@ declaracaoVariavel ; entraNoMetodoInit - : ^(METHOD_DECL INIT BODY) + : ^(METHOD_DECL INIT) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); @@ -81,34 +81,45 @@ entraNoMetodoInit escopoAtual = metodo; } ; - -entraNoMetodoSemParams - : ^(METHOD_DECL ID BODY tipoRet =.) + +entraNoMetodo + : ^(METHOD_DECL ID tipoRet =. .+) { System.out.println("linha "+$ID.getLine()+ ": def method "+$ID.text); - SimboloMetodo metodo = new SimboloMetodo($ID.text+"()"+$tipoRet.getText(), null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($ID.text+""+$tipoRet.getText(), null, escopoAtual); metodo.def = $ID; $ID.simbolo = metodo; escopoAtual.definir(metodo); escopoAtual = metodo; } ; - -entraNoMetodoComParams - : ^(METHOD_DECL ID params =. BODY tipoRet =.) + +parametros + : ^(PARAMS pars = .) { - System.out.println("linha "+$ID.getLine()+ - ": def method "+$ID.text); - SimboloMetodo metodo = new SimboloMetodo($ID.text+"("+params+")"+$tipoRet.getText(), null, escopoAtual); - metodo.def = $ID; - $ID.simbolo = metodo; - escopoAtual.definir(metodo); - escopoAtual = metodo; - } + System.out.println("linha "+$pars.getLine()+": def "+$pars.getText()); + $pars.escopo = escopoAtual; + SimboloVariavel par = new SimboloVariavel($pars.getText(),null); + par.def = $pars; // track AST location of def's ID + $pars.simbolo = par; // track in AST + escopoAtual.definir(par); + } ; + +entraNoCorpoMetodo + : BODY {escopoAtual = new EscopoLocal(escopoAtual);} // push scope + ; + +saiDoCorpoMetodo + : BODY + { + System.out.println("locals: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; -saiDaClasse : '.end class' +saiDaClasse : '.class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope @@ -116,33 +127,9 @@ saiDaClasse : '.end class' ; saiDoMetodo - : '.end method' + : METHOD_DECL { System.out.println("Saindo do metodo: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } ; - -getfield - : 'getfield' - { - System.out.println("Saindo do getfield.."); - } - ; - -putfield - : 'putfield' - { - System.out.println("Saindo do putfield.."); - } - ; - -invokespecial - : 'invokespecial' - { - System.out.println("Saindo do invokespecial.."); - } - ; - - - diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index b4df8bc..f4d0f3a 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -84,11 +84,11 @@ INTEIRO=12 LABEL=13 LOAD=14 LOGICA=15 -MAIN=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 +MEMBRO_CLASSE=16 +METHOD_DECL=17 +NEWLINE=18 +NULL=19 +PARAMS=20 PILHA=21 STORE=22 TIPO_REF=23 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index fb5046d..5b36ffd 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 23:45:22 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 18:58:35 package br.ufpb.iged.interpretador.parser; @@ -97,11 +97,11 @@ public class AssemblerLexer extends Lexer { public static final int LABEL=13; public static final int LOAD=14; public static final int LOGICA=15; - public static final int MAIN=16; - public static final int MEMBRO_CLASSE=17; - public static final int METHOD_DECL=18; - public static final int NEWLINE=19; - public static final int NULL=20; + public static final int MEMBRO_CLASSE=16; + public static final int METHOD_DECL=17; + public static final int NEWLINE=18; + public static final int NULL=19; + public static final int PARAMS=20; public static final int PILHA=21; public static final int STORE=22; public static final int TIPO_REF=23; @@ -1822,8 +1822,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:8: '' { match(""); @@ -1840,36 +1840,13 @@ public final void mINIT() throws RecognitionException { } // $ANTLR end "INIT" - // $ANTLR start "MAIN" - public final void mMAIN() throws RecognitionException { - try { - int _type = MAIN; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:6: ( 'main' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: 'main' - { - match("main"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "MAIN" - // $ANTLR start "INT" public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:7: 'I' { match('I'); @@ -1889,8 +1866,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:223:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:8: 'V' { match('V'); @@ -1910,10 +1887,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1932,7 +1909,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: 'null' { match("null"); @@ -1941,7 +1918,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:18: 'NULL' { match("NULL"); @@ -1969,10 +1946,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1981,7 +1958,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: '-' { match('-'); @@ -1991,7 +1968,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2046,15 +2023,15 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:11: 'L' ID ( '/' ID )* { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:18: ( '/' ID )* loop4: do { int alt4=2; @@ -2067,7 +2044,7 @@ public final void mTIPO_REF() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:19: '/' ID { match('/'); @@ -2099,8 +2076,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2112,7 +2089,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop5: do { int alt5=2; @@ -2162,8 +2139,8 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: ( '\\n' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:9: ( '\\n' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:11: '\\n' { match('\n'); @@ -2183,8 +2160,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2210,8 +2187,8 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | INIT | MAIN | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) - int alt6=84; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) + int alt6=83; alt6 = dfa6.predict(input); switch (alt6) { case 1 : @@ -2815,71 +2792,63 @@ public void mTokens() throws RecognitionException { } break; case 76 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:459: MAIN - { - mMAIN(); - - - } - break; - case 77 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:464: INT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:459: INT { mINT(); } break; - case 78 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:468: VOID + case 77 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:463: VOID { mVOID(); } break; - case 79 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:473: NULL + case 78 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:468: NULL { mNULL(); } break; - case 80 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:478: INTEIRO + case 79 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:473: INTEIRO { mINTEIRO(); } break; - case 81 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:486: TIPO_REF + case 80 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:481: TIPO_REF { mTIPO_REF(); } break; - case 82 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:495: ID + case 81 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:490: ID { mID(); } break; - case 83 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:498: NEWLINE + case 82 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:493: NEWLINE { mNEWLINE(); } break; - case 84 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:506: WS + case 83 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:501: WS { mWS(); @@ -2894,229 +2863,225 @@ public void mTokens() throws RecognitionException { protected DFA6 dfa6 = new DFA6(this); static final String DFA6_eotS = - "\1\uffff\1\31\4\uffff\10\25\1\uffff\1\25\1\72\1\73\1\25\1\uffff"+ - "\1\25\12\uffff\33\25\2\uffff\1\25\1\143\1\uffff\4\25\1\151\6\25"+ - "\1\uffff\11\25\1\174\4\25\1\u0082\1\u0083\1\u0084\1\25\1\u0087\4"+ - "\25\1\143\2\uffff\4\25\1\uffff\1\25\1\u0092\1\u0093\1\u0094\1\25"+ - "\1\u0096\1\uffff\1\u0098\1\u0099\1\u009a\1\u009b\1\u009c\1\u009d"+ - "\1\u009e\1\25\1\u00a0\1\u00a1\1\25\1\uffff\1\u00a3\2\25\1\u00a6"+ - "\1\u00a7\3\uffff\1\u00a8\1\u00a9\1\uffff\2\25\1\u00ac\1\u00a8\1"+ - "\uffff\1\25\1\u00b1\3\25\3\uffff\1\25\11\uffff\1\u00b8\2\uffff\1"+ - "\25\1\uffff\2\25\4\uffff\2\25\3\uffff\1\25\2\uffff\1\25\1\u00c5"+ - "\2\25\3\uffff\2\25\1\u00d0\1\25\1\u00d2\5\uffff\1\u00d3\2\uffff"+ - "\1\25\6\uffff\1\25\1\u00e5\2\uffff\1\25\6\uffff\1\u00eb\13\uffff"+ - "\1\25\5\uffff\1\u00f1\5\uffff\1\25\1\uffff\3\25\1\u00f6\1\uffff"; + "\1\uffff\1\30\4\uffff\10\24\1\uffff\1\70\1\71\1\24\1\uffff\1\24"+ + "\12\uffff\32\24\2\uffff\1\24\1\140\1\uffff\4\24\1\146\6\24\1\uffff"+ + "\11\24\1\171\4\24\1\177\1\u0080\1\u0081\1\24\1\u0084\3\24\1\140"+ + "\2\uffff\4\24\1\uffff\1\24\1\u008e\1\u008f\1\u0090\1\24\1\u0092"+ + "\1\uffff\1\u0094\1\u0095\1\u0096\1\u0097\1\u0098\1\u0099\1\u009a"+ + "\1\24\1\u009c\1\u009d\1\24\1\uffff\1\u009f\2\24\1\u00a2\1\u00a3"+ + "\3\uffff\1\u00a4\1\u00a5\1\uffff\2\24\1\u00a4\1\uffff\1\24\1\u00ac"+ + "\3\24\3\uffff\1\24\11\uffff\1\u00b3\2\uffff\1\24\1\uffff\2\24\4"+ + "\uffff\2\24\2\uffff\1\24\2\uffff\1\24\1\u00c0\2\24\3\uffff\2\24"+ + "\1\u00cb\1\24\1\u00cd\5\uffff\1\u00ce\2\uffff\1\24\6\uffff\1\24"+ + "\1\u00e0\2\uffff\1\24\6\uffff\1\u00e6\13\uffff\1\24\5\uffff\1\u00ec"+ + "\5\uffff\1\24\1\uffff\3\24\1\u00f1\1\uffff"; static final String DFA6_eofS = - "\u00f7\uffff"; + "\u00f2\uffff"; static final String DFA6_minS = "\1\11\1\51\1\uffff\1\143\2\uffff\1\143\1\165\1\145\1\141\1\144\1"+ - "\145\1\157\1\145\1\uffff\1\141\2\56\1\125\1\uffff\1\101\6\uffff"+ - "\1\156\3\uffff\2\157\1\145\1\164\1\160\2\164\1\144\1\157\1\151\1"+ - "\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\167"+ - "\1\160\1\154\1\160\2\164\1\151\2\uffff\1\114\1\56\1\144\1\156\1"+ - "\141\1\164\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161"+ - "\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162"+ - "\3\56\1\154\1\56\1\146\1\165\1\156\1\114\1\56\1\uffff\1\40\1\163"+ - "\1\144\1\165\1\162\1\uffff\1\151\3\56\1\163\1\56\1\143\7\56\1\144"+ - "\2\56\1\153\1\uffff\1\56\1\165\1\162\2\56\3\uffff\2\56\1\uffff\1"+ - "\151\1\162\2\56\1\143\1\164\1\56\1\162\2\145\3\uffff\1\164\1\uffff"+ - "\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff\1\162\1\145\4\uffff\1"+ - "\145\1\156\3\uffff\1\137\1\60\1\uffff\1\156\1\56\1\154\1\137\1\160"+ - "\1\60\1\uffff\1\163\1\156\1\56\1\154\1\56\5\uffff\1\56\1\60\1\uffff"+ - "\1\144\1\60\1\145\4\uffff\1\160\1\56\1\60\1\uffff\1\144\6\uffff"+ - "\1\56\10\uffff\2\145\1\uffff\1\145\5\uffff\1\56\5\uffff\1\143\1"+ - "\uffff\1\151\1\141\1\154\1\56\1\uffff"; + "\145\1\157\1\145\1\uffff\2\56\1\125\1\uffff\1\101\6\uffff\1\156"+ + "\3\uffff\2\157\1\145\1\164\1\160\2\164\1\144\1\157\1\151\1\137\1"+ + "\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\167\1\160"+ + "\1\154\1\160\2\164\2\uffff\1\114\1\56\1\144\1\156\1\141\1\164\1"+ + "\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161\3\145\1\143"+ + "\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162\3\56\1\154"+ + "\1\56\1\146\1\165\1\114\1\56\1\uffff\1\40\1\163\1\144\1\165\1\162"+ + "\1\uffff\1\151\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff"+ + "\1\56\1\165\1\162\2\56\3\uffff\2\56\1\uffff\1\151\1\162\1\56\1\143"+ + "\1\164\1\56\1\162\2\145\3\uffff\1\164\1\uffff\1\155\7\uffff\1\56"+ + "\2\uffff\1\145\1\uffff\1\162\1\145\4\uffff\1\145\1\156\2\uffff\1"+ + "\137\1\60\1\uffff\1\156\1\56\1\154\1\137\1\160\1\60\1\uffff\1\163"+ + "\1\156\1\56\1\154\1\56\5\uffff\1\56\1\60\1\uffff\1\144\1\60\1\145"+ + "\4\uffff\1\160\1\56\1\60\1\uffff\1\144\6\uffff\1\56\10\uffff\2\145"+ + "\1\uffff\1\145\5\uffff\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1"+ + "\154\1\56\1\uffff"; static final String DFA6_maxS = "\1\172\1\51\1\uffff\1\163\2\uffff\1\163\1\165\1\157\1\170\1\144"+ - "\2\165\1\145\1\uffff\1\141\2\172\1\125\1\uffff\1\172\6\uffff\1\156"+ - "\3\uffff\2\157\1\145\1\164\1\160\2\164\1\156\1\157\1\151\2\156\1"+ - "\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143\1\167\1\160\1\154"+ - "\1\160\2\164\1\151\2\uffff\1\114\1\172\1\144\1\156\1\141\1\164\1"+ - "\157\1\172\1\146\1\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145"+ - "\1\143\1\141\1\154\1\147\1\157\1\172\1\164\1\157\1\142\1\162\3\172"+ - "\1\154\1\172\1\146\1\165\1\156\1\114\1\172\1\uffff\1\40\1\163\1"+ - "\144\1\165\1\162\1\uffff\1\151\3\172\1\163\1\172\1\143\7\172\1\144"+ - "\2\172\1\153\1\uffff\1\172\1\165\1\162\2\172\3\uffff\2\172\1\uffff"+ - "\1\151\1\162\2\172\1\155\1\164\1\172\1\162\2\145\3\uffff\1\164\1"+ - "\uffff\1\155\7\uffff\1\172\2\uffff\1\145\1\uffff\1\162\1\145\4\uffff"+ - "\1\145\1\156\3\uffff\1\137\1\63\1\uffff\1\156\1\172\1\154\1\137"+ - "\1\160\1\63\1\uffff\1\163\1\156\1\172\1\154\1\172\5\uffff\1\172"+ - "\1\63\1\uffff\1\144\1\155\1\156\4\uffff\1\160\1\172\1\63\1\uffff"+ - "\1\144\6\uffff\1\172\10\uffff\2\164\1\uffff\1\145\5\uffff\1\172"+ - "\5\uffff\1\143\1\uffff\1\151\1\141\1\154\1\172\1\uffff"; + "\2\165\1\145\1\uffff\2\172\1\125\1\uffff\1\172\6\uffff\1\156\3\uffff"+ + "\2\157\1\145\1\164\1\160\2\164\1\156\1\157\1\151\2\156\1\157\1\165"+ + "\1\166\1\162\1\145\1\165\1\157\1\143\1\167\1\160\1\154\1\160\2\164"+ + "\2\uffff\1\114\1\172\1\144\1\156\1\141\1\164\1\157\1\172\1\146\1"+ + "\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145\1\143\1\141\1\154"+ + "\1\147\1\157\1\172\1\164\1\157\1\142\1\162\3\172\1\154\1\172\1\146"+ + "\1\165\1\114\1\172\1\uffff\1\40\1\163\1\144\1\165\1\162\1\uffff"+ + "\1\151\3\172\1\163\1\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1"+ + "\172\1\165\1\162\2\172\3\uffff\2\172\1\uffff\1\151\1\162\1\172\1"+ + "\155\1\164\1\172\1\162\2\145\3\uffff\1\164\1\uffff\1\155\7\uffff"+ + "\1\172\2\uffff\1\145\1\uffff\1\162\1\145\4\uffff\1\145\1\156\2\uffff"+ + "\1\137\1\63\1\uffff\1\156\1\172\1\154\1\137\1\160\1\63\1\uffff\1"+ + "\163\1\156\1\172\1\154\1\172\5\uffff\1\172\1\63\1\uffff\1\144\1"+ + "\155\1\156\4\uffff\1\160\1\172\1\63\1\uffff\1\144\6\uffff\1\172"+ + "\10\uffff\2\164\1\uffff\1\145\5\uffff\1\172\5\uffff\1\143\1\uffff"+ + "\1\151\1\141\1\154\1\172\1\uffff"; static final String DFA6_acceptS = - "\2\uffff\1\3\1\uffff\1\12\1\13\10\uffff\1\113\4\uffff\1\120\1\uffff"+ - "\1\122\1\123\1\124\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\33\uffff\1"+ - "\115\1\116\47\uffff\1\121\5\uffff\1\30\22\uffff\1\72\5\uffff\1\104"+ - "\1\105\1\106\2\uffff\1\107\12\uffff\1\32\1\33\1\34\1\uffff\1\44"+ + "\2\uffff\1\3\1\uffff\1\12\1\13\10\uffff\1\113\3\uffff\1\117\1\uffff"+ + "\1\121\1\122\1\123\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\32\uffff\1"+ + "\114\1\115\46\uffff\1\120\5\uffff\1\30\22\uffff\1\72\5\uffff\1\104"+ + "\1\105\1\106\2\uffff\1\107\11\uffff\1\32\1\33\1\34\1\uffff\1\44"+ "\1\uffff\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\uffff\1\67\1\70\1"+ - "\uffff\1\73\2\uffff\1\102\1\103\1\117\1\110\2\uffff\1\114\1\5\1"+ - "\6\2\uffff\1\15\6\uffff\1\62\5\uffff\1\14\1\16\1\17\1\20\1\21\2"+ - "\uffff\1\23\3\uffff\1\63\1\64\1\65\1\66\3\uffff\1\75\1\uffff\1\112"+ - "\1\22\1\24\1\25\1\26\1\27\1\uffff\1\35\1\36\1\37\1\40\1\41\1\42"+ - "\1\43\1\45\2\uffff\1\52\1\uffff\1\74\1\76\1\77\1\100\1\101\1\uffff"+ - "\1\31\1\46\1\47\1\50\1\51\1\uffff\1\111\4\uffff\1\71"; + "\uffff\1\73\2\uffff\1\102\1\103\1\116\1\110\2\uffff\1\5\1\6\2\uffff"+ + "\1\15\6\uffff\1\62\5\uffff\1\14\1\16\1\17\1\20\1\21\2\uffff\1\23"+ + "\3\uffff\1\63\1\64\1\65\1\66\3\uffff\1\75\1\uffff\1\112\1\22\1\24"+ + "\1\25\1\26\1\27\1\uffff\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\45"+ + "\2\uffff\1\52\1\uffff\1\74\1\76\1\77\1\100\1\101\1\uffff\1\31\1"+ + "\46\1\47\1\50\1\51\1\uffff\1\111\4\uffff\1\71"; static final String DFA6_specialS = - "\u00f7\uffff}>"; + "\u00f2\uffff}>"; static final String[] DFA6_transitionS = { - "\1\27\1\26\2\uffff\1\27\22\uffff\1\27\7\uffff\1\1\1\2\3\uffff"+ - "\1\23\1\3\1\4\12\23\1\5\1\uffff\1\16\4\uffff\10\25\1\20\2\25"+ - "\1\24\1\25\1\22\7\25\1\21\4\25\6\uffff\1\6\2\25\1\7\2\25\1\10"+ - "\1\25\1\11\2\25\1\12\1\17\1\13\1\25\1\14\1\25\1\15\10\25", - "\1\30", - "", - "\1\32\1\uffff\1\33\1\34\6\uffff\1\35\5\uffff\1\36", - "", - "", - "\1\37\10\uffff\1\40\5\uffff\1\41\1\42", - "\1\43", - "\1\44\11\uffff\1\45", - "\1\46\1\uffff\1\47\1\50\1\uffff\1\51\2\uffff\1\52\2\uffff\1"+ - "\53\1\54\1\55\1\56\2\uffff\1\57\1\60\4\uffff\1\61", - "\1\62", - "\1\63\11\uffff\1\64\5\uffff\1\65", - "\1\66\5\uffff\1\67", - "\1\70", - "", - "\1\71", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\74", + "\1\26\1\25\2\uffff\1\26\22\uffff\1\26\7\uffff\1\1\1\2\3\uffff"+ + "\1\22\1\3\1\4\12\22\1\5\1\uffff\1\16\4\uffff\10\24\1\17\2\24"+ + "\1\23\1\24\1\21\7\24\1\20\4\24\6\uffff\1\6\2\24\1\7\2\24\1\10"+ + "\1\24\1\11\2\24\1\12\1\24\1\13\1\24\1\14\1\24\1\15\10\24", + "\1\27", "", - "\32\75\6\uffff\32\75", + "\1\31\1\uffff\1\32\1\33\6\uffff\1\34\5\uffff\1\35", "", "", + "\1\36\10\uffff\1\37\5\uffff\1\40\1\41", + "\1\42", + "\1\43\11\uffff\1\44", + "\1\45\1\uffff\1\46\1\47\1\uffff\1\50\2\uffff\1\51\2\uffff\1"+ + "\52\1\53\1\54\1\55\2\uffff\1\56\1\57\4\uffff\1\60", + "\1\61", + "\1\62\11\uffff\1\63\5\uffff\1\64", + "\1\65\5\uffff\1\66", + "\1\67", + "", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\72", + "", + "\32\73\6\uffff\32\73", + "", "", "", "", "", - "\1\76", + "", + "\1\74", "", "", "", + "\1\75", + "\1\76", "\1\77", "\1\100", "\1\101", "\1\102", "\1\103", - "\1\104", - "\1\105", - "\1\106\11\uffff\1\107", - "\1\110", - "\1\111", - "\1\112\5\uffff\1\113\1\uffff\1\114\4\uffff\1\115\1\uffff\1"+ - "\116", + "\1\104\11\uffff\1\105", + "\1\106", + "\1\107", + "\1\110\5\uffff\1\111\1\uffff\1\112\4\uffff\1\113\1\uffff\1"+ + "\114", + "\1\115", + "\1\116", "\1\117", - "\1\120", - "\1\121", - "\1\122\20\uffff\1\123", - "\1\124", - "\1\125", - "\1\126\1\127", + "\1\120\20\uffff\1\121", + "\1\122", + "\1\123", + "\1\124\1\125", + "\1\126", + "\1\127", "\1\130", "\1\131", "\1\132", "\1\133", "\1\134", "\1\135", - "\1\136", - "\1\137", - "\1\140", "", "", + "\1\136", + "\1\137\1\uffff\12\137\7\uffff\32\137\6\uffff\32\137", "\1\141", - "\1\142\1\uffff\12\142\7\uffff\32\142\6\uffff\32\142", + "\1\142", + "\1\143", "\1\144", "\1\145", - "\1\146", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "\1\147", "\1\150", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\151", "\1\152", "\1\153", "\1\154", "\1\155", "\1\156", - "\1\157", - "\1\160", - "\1\161", - "\1\162\16\uffff\1\163", - "\1\164\16\uffff\1\165", + "\1\157\16\uffff\1\160", + "\1\161\16\uffff\1\162", + "\1\163", + "\1\164", + "\1\165", "\1\166", "\1\167", "\1\170", - "\1\171", - "\1\172", - "\1\173", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\175\6\uffff\1\176", - "\1\177", - "\1\u0080", - "\1\u0081", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\172\6\uffff\1\173", + "\1\174", + "\1\175", + "\1\176", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u0082", + "\1\24\1\uffff\2\24\1\u0083\7\24\7\uffff\32\24\6\uffff\32\24", "\1\u0085", - "\1\25\1\uffff\2\25\1\u0086\7\25\7\uffff\32\25\6\uffff\32\25", + "\1\u0086", + "\1\u0087", + "\1\137\1\uffff\12\137\7\uffff\32\137\6\uffff\32\137", + "", "\1\u0088", "\1\u0089", "\1\u008a", "\1\u008b", - "\1\142\1\uffff\12\142\7\uffff\32\142\6\uffff\32\142", - "", "\1\u008c", - "\1\u008d", - "\1\u008e", - "\1\u008f", - "\1\u0090", "", + "\1\u008d", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "\1\u0091", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u0095", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u0097", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u009f", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00a2", - "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00a4", - "\1\u00a5", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "", - "", - "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u0093", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u009b", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u009e", + "", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u00a0", + "\1\u00a1", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "", + "", + "", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "", + "\1\u00a6", + "\1\u00a7", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u00a8\11\uffff\1\u00a9", "\1\u00aa", - "\1\u00ab", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00ad\11\uffff\1\u00ae", + "\1\24\1\uffff\12\24\7\uffff\32\24\4\uffff\1\u00ab\1\uffff\32"+ + "\24", + "\1\u00ad", + "\1\u00ae", "\1\u00af", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00b0\1\uffff\32"+ - "\25", - "\1\u00b2", - "\1\u00b3", - "\1\u00b4", "", "", "", - "\1\u00b5", + "\1\u00b0", "", - "\1\u00b6", + "\1\u00b1", "", "", "", @@ -3124,68 +3089,67 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00b7\1\uffff\32"+ - "\25", + "\1\24\1\uffff\12\24\7\uffff\32\24\4\uffff\1\u00b2\1\uffff\32"+ + "\24", "", "", - "\1\u00b9", + "\1\u00b4", "", - "\1\u00ba", - "\1\u00bb", + "\1\u00b5", + "\1\u00b6", "", "", "", "", - "\1\u00bc", - "\1\u00bd", + "\1\u00b7", + "\1\u00b8", "", "", + "\1\u00b9", + "\1\u00ba\1\u00bb\1\u00bc\1\u00bd", "", "\1\u00be", - "\1\u00bf\1\u00c0\1\u00c1\1\u00c2", - "", + "\1\24\1\uffff\12\24\7\uffff\32\24\4\uffff\1\u00bf\1\uffff\32"+ + "\24", + "\1\u00c1", + "\1\u00c2", "\1\u00c3", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00c4\1\uffff\32"+ - "\25", - "\1\u00c6", - "\1\u00c7", - "\1\u00c8", - "\1\u00c9\1\u00ca\1\u00cb\1\u00cc", + "\1\u00c4\1\u00c5\1\u00c6\1\u00c7", "", - "\1\u00cd", - "\1\u00ce", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00cf\1\uffff\32"+ - "\25", - "\1\u00d1", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00c8", + "\1\u00c9", + "\1\24\1\uffff\12\24\7\uffff\32\24\4\uffff\1\u00ca\1\uffff\32"+ + "\24", + "\1\u00cc", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "", "", "", "", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00d4\1\u00d5\1\u00d6\1\u00d7", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u00cf\1\u00d0\1\u00d1\1\u00d2", "", - "\1\u00d8", - "\1\u00d9\1\u00da\1\u00db\1\u00dc\1\u00dd\1\u00de\67\uffff\1"+ - "\u00df", - "\1\u00e0\1\uffff\1\u00e1\4\uffff\1\u00e2\1\uffff\1\u00e3", + "\1\u00d3", + "\1\u00d4\1\u00d5\1\u00d6\1\u00d7\1\u00d8\1\u00d9\67\uffff\1"+ + "\u00da", + "\1\u00db\1\uffff\1\u00dc\4\uffff\1\u00dd\1\uffff\1\u00de", "", "", "", "", - "\1\u00e4", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00e6\1\u00e7\1\u00e8\1\u00e9", + "\1\u00df", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u00e1\1\u00e2\1\u00e3\1\u00e4", "", - "\1\u00ea", + "\1\u00e5", "", "", "", "", "", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "", "", "", @@ -3194,27 +3158,27 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00ec\16\uffff\1\u00ed", - "\1\u00ee\16\uffff\1\u00ef", + "\1\u00e7\16\uffff\1\u00e8", + "\1\u00e9\16\uffff\1\u00ea", "", - "\1\u00f0", + "\1\u00eb", "", "", "", "", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "", "", "", "", "", - "\1\u00f2", + "\1\u00ed", "", - "\1\u00f3", - "\1\u00f4", - "\1\u00f5", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00ee", + "\1\u00ef", + "\1\u00f0", + "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "" }; @@ -3248,7 +3212,7 @@ public DFA6(BaseRecognizer recognizer) { this.transition = DFA6_transition; } public String getDescription() { - return "1:1: Tokens : ( T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | INIT | MAIN | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; + return "1:1: Tokens : ( T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 66ddf2b..5eb956e 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-03 23:45:22 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 18:58:34 package br.ufpb.iged.interpretador.parser; @@ -18,7 +18,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; @@ -108,11 +108,11 @@ public abstract class AssemblerParser extends Parser { public static final int LABEL=13; public static final int LOAD=14; public static final int LOGICA=15; - public static final int MAIN=16; - public static final int MEMBRO_CLASSE=17; - public static final int METHOD_DECL=18; - public static final int NEWLINE=19; - public static final int NULL=20; + public static final int MEMBRO_CLASSE=16; + public static final int METHOD_DECL=17; + public static final int NEWLINE=18; + public static final int NULL=19; + public static final int PARAMS=20; public static final int PILHA=21; public static final int STORE=22; public static final int TIPO_REF=23; @@ -162,7 +162,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:1: programa : ( instrucao )* ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: programa : ( instrucao )* ; public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -175,13 +175,13 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:10: ( ( instrucao )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: ( instrucao )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: ( instrucao )* loop1: do { int alt1=2; @@ -194,9 +194,9 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:12: instrucao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: instrucao { - pushFollow(FOLLOW_instrucao_in_programa117); + pushFollow(FOLLOW_instrucao_in_programa122); instrucao1=instrucao(); state._fsp--; @@ -243,7 +243,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -260,7 +260,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST string_literal4_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:11: ( operacao | definicaoClasse ( '.end class' )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:11: ( operacao | definicaoClasse ( '.end class' )? ) int alt3=2; int LA3_0 = input.LA(1); @@ -279,12 +279,12 @@ else if ( (LA3_0==29) ) { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:13: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:13: operacao { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_operacao_in_instrucao145); + pushFollow(FOLLOW_operacao_in_instrucao150); operacao2=operacao(); state._fsp--; @@ -294,19 +294,19 @@ else if ( (LA3_0==29) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:13: definicaoClasse ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:13: definicaoClasse ( '.end class' )? { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_definicaoClasse_in_instrucao159); + pushFollow(FOLLOW_definicaoClasse_in_instrucao164); definicaoClasse3=definicaoClasse(); state._fsp--; adaptor.addChild(root_0, definicaoClasse3.getTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:29: ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:29: ( '.end class' )? int alt2=2; int LA2_0 = input.LA(1); @@ -315,9 +315,9 @@ else if ( (LA3_0==29) ) { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:30: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:30: '.end class' { - string_literal4=(Token)match(input,30,FOLLOW_30_in_instrucao162); + string_literal4=(Token)match(input,30,FOLLOW_30_in_instrucao167); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -363,7 +363,7 @@ public static class operacao_return extends ParserRuleReturnScope { // $ANTLR start "operacao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:1: operacao : ( label comando | comando ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: operacao : ( label comando | comando ) ; public final AssemblerParser.operacao_return operacao() throws RecognitionException { AssemblerParser.operacao_return retval = new AssemblerParser.operacao_return(); retval.start = input.LT(1); @@ -380,13 +380,13 @@ public final AssemblerParser.operacao_return operacao() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:10: ( ( label comando | comando ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:10: ( ( label comando | comando ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:12: ( label comando | comando ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:12: ( label comando | comando ) int alt4=2; int LA4_0 = input.LA(1); @@ -405,16 +405,16 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 37 && LA4_0 <= 99)) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:13: label comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:13: label comando { - pushFollow(FOLLOW_label_in_operacao184); + pushFollow(FOLLOW_label_in_operacao189); label5=label(); state._fsp--; adaptor.addChild(root_0, label5.getTree()); - pushFollow(FOLLOW_comando_in_operacao186); + pushFollow(FOLLOW_comando_in_operacao191); comando6=comando(); state._fsp--; @@ -424,9 +424,9 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 37 && LA4_0 <= 99)) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:29: comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:29: comando { - pushFollow(FOLLOW_comando_in_operacao190); + pushFollow(FOLLOW_comando_in_operacao195); comando7=comando(); state._fsp--; @@ -470,7 +470,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: label : a= ID ':' -> ^( LABEL $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: label : a= ID ':' -> ^( LABEL $a) ; public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -487,14 +487,14 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: (a= ID ':' -> ^( LABEL $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: a= ID ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label212); + a=(Token)match(input,ID,FOLLOW_ID_in_label217); stream_ID.add(a); - char_literal8=(Token)match(input,36,FOLLOW_36_in_label214); + char_literal8=(Token)match(input,36,FOLLOW_36_in_label219); stream_36.add(char_literal8); @@ -510,9 +510,9 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 54:20: -> ^( LABEL $a) + // 55:20: -> ^( LABEL $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:23: ^( LABEL $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:23: ^( LABEL $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -560,7 +560,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -595,13 +595,13 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio BytecodesAST NEWLINE20_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? int alt5=12; switch ( input.LA(1) ) { case 50: @@ -715,9 +715,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:12: manipulacaoObjetos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:12: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_comando232); + pushFollow(FOLLOW_manipulacaoObjetos_in_comando237); manipulacaoObjetos9=manipulacaoObjetos(); state._fsp--; @@ -727,9 +727,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:17: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: aritmetica { - pushFollow(FOLLOW_aritmetica_in_comando250); + pushFollow(FOLLOW_aritmetica_in_comando255); aritmetica10=aritmetica(); state._fsp--; @@ -739,9 +739,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: load { - pushFollow(FOLLOW_load_in_comando268); + pushFollow(FOLLOW_load_in_comando273); load11=load(); state._fsp--; @@ -751,9 +751,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: loadint { - pushFollow(FOLLOW_loadint_in_comando286); + pushFollow(FOLLOW_loadint_in_comando291); loadint12=loadint(); state._fsp--; @@ -763,9 +763,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: store { - pushFollow(FOLLOW_store_in_comando304); + pushFollow(FOLLOW_store_in_comando309); store13=store(); state._fsp--; @@ -775,9 +775,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: storeint { - pushFollow(FOLLOW_storeint_in_comando322); + pushFollow(FOLLOW_storeint_in_comando327); storeint14=storeint(); state._fsp--; @@ -787,9 +787,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: desvio { - pushFollow(FOLLOW_desvio_in_comando340); + pushFollow(FOLLOW_desvio_in_comando345); desvio15=desvio(); state._fsp--; @@ -799,9 +799,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: logica { - pushFollow(FOLLOW_logica_in_comando358); + pushFollow(FOLLOW_logica_in_comando363); logica16=logica(); state._fsp--; @@ -811,9 +811,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: pilha { - pushFollow(FOLLOW_pilha_in_comando376); + pushFollow(FOLLOW_pilha_in_comando381); pilha17=pilha(); state._fsp--; @@ -823,9 +823,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: retorno { - pushFollow(FOLLOW_retorno_in_comando394); + pushFollow(FOLLOW_retorno_in_comando399); retorno18=retorno(); state._fsp--; @@ -835,9 +835,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: 'nop' { - string_literal19=(Token)match(input,95,FOLLOW_95_in_comando412); + string_literal19=(Token)match(input,95,FOLLOW_95_in_comando417); string_literal19_tree = (BytecodesAST)adaptor.create(string_literal19) ; @@ -850,7 +850,7 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } - NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando428); + NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando433); NEWLINE20_tree = (BytecodesAST)adaptor.create(NEWLINE20) ; @@ -888,7 +888,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -917,22 +917,22 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal21=(Token)match(input,29,FOLLOW_29_in_definicaoClasse454); + string_literal21=(Token)match(input,29,FOLLOW_29_in_definicaoClasse459); stream_29.add(string_literal21); - ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse456); + ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse461); stream_ID.add(ID22); - NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse458); + NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse463); stream_NEWLINE.add(NEWLINE23); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:27: ( superClasse NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:27: ( superClasse NEWLINE )? int alt6=2; int LA6_0 = input.LA(1); @@ -941,16 +941,16 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:28: superClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:28: superClasse NEWLINE { - pushFollow(FOLLOW_superClasse_in_definicaoClasse461); + pushFollow(FOLLOW_superClasse_in_definicaoClasse466); superClasse24=superClasse(); state._fsp--; stream_superClasse.add(superClasse24.getTree()); - NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse463); + NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse468); stream_NEWLINE.add(NEWLINE25); @@ -960,7 +960,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:50: ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:50: ( membroClasse NEWLINE )+ int cnt7=0; loop7: do { @@ -974,16 +974,16 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:51: membroClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:51: membroClasse NEWLINE { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse468); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse473); membroClasse26=membroClasse(); state._fsp--; stream_membroClasse.add(membroClasse26.getTree()); - NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse470); + NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse475); stream_NEWLINE.add(NEWLINE27); @@ -1001,7 +1001,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 29, ID, membroClasse, superClasse + // elements: 29, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1011,9 +1011,9 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 71:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 72:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1024,14 +1024,14 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:29: ( superClasse )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:29: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -1089,7 +1089,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1106,14 +1106,14 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:15: '.super' TIPO_REF { - string_literal28=(Token)match(input,34,FOLLOW_34_in_superClasse531); + string_literal28=(Token)match(input,34,FOLLOW_34_in_superClasse536); stream_34.add(string_literal28); - TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse533); + TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse538); stream_TIPO_REF.add(TIPO_REF29); @@ -1128,9 +1128,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 74:33: -> ^( EXTENDS TIPO_REF ) + // 75:33: -> ^( EXTENDS TIPO_REF ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:36: ^( EXTENDS TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:36: ^( EXTENDS TIPO_REF ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1180,7 +1180,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) VOID ) | '.method' ID '()' ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params= parametros ')' ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1197,35 +1197,22 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti Token NEWLINE37=null; Token string_literal39=null; Token string_literal40=null; - Token MAIN41=null; - Token string_literal42=null; - Token VOID43=null; - Token NEWLINE44=null; - Token string_literal46=null; - Token string_literal47=null; - Token ID48=null; - Token string_literal49=null; - Token NEWLINE50=null; - Token string_literal52=null; - Token string_literal53=null; - Token ID54=null; - Token char_literal55=null; - Token char_literal56=null; - Token NEWLINE57=null; - Token string_literal59=null; + Token ID41=null; + Token char_literal43=null; + Token char_literal45=null; + Token NEWLINE46=null; + Token string_literal48=null; AssemblerParser.tipo_return ret =null; - AssemblerParser.parametros_return params =null; - AssemblerParser.tipo_return tipo32 =null; AssemblerParser.operacao_return operacao38 =null; - AssemblerParser.operacao_return operacao45 =null; + AssemblerParser.parametros_return parametros42 =null; - AssemblerParser.operacao_return operacao51 =null; + AssemblerParser.parametros_return parametros44 =null; - AssemblerParser.operacao_return operacao58 =null; + AssemblerParser.operacao_return operacao47 =null; BytecodesAST string_literal30_tree=null; @@ -1237,23 +1224,11 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST NEWLINE37_tree=null; BytecodesAST string_literal39_tree=null; BytecodesAST string_literal40_tree=null; - BytecodesAST MAIN41_tree=null; - BytecodesAST string_literal42_tree=null; - BytecodesAST VOID43_tree=null; - BytecodesAST NEWLINE44_tree=null; - BytecodesAST string_literal46_tree=null; - BytecodesAST string_literal47_tree=null; - BytecodesAST ID48_tree=null; - BytecodesAST string_literal49_tree=null; - BytecodesAST NEWLINE50_tree=null; - BytecodesAST string_literal52_tree=null; - BytecodesAST string_literal53_tree=null; - BytecodesAST ID54_tree=null; - BytecodesAST char_literal55_tree=null; - BytecodesAST char_literal56_tree=null; - BytecodesAST NEWLINE57_tree=null; - BytecodesAST string_literal59_tree=null; - RewriteRuleTokenStream stream_MAIN=new RewriteRuleTokenStream(adaptor,"token MAIN"); + BytecodesAST ID41_tree=null; + BytecodesAST char_literal43_tree=null; + BytecodesAST char_literal45_tree=null; + BytecodesAST NEWLINE46_tree=null; + BytecodesAST string_literal48_tree=null; RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); @@ -1268,73 +1243,50 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' MAIN '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) VOID ) | '.method' ID '()' ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) | '.method' ID '(' params= parametros ')' ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) ) - int alt12=5; - int LA12_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ) + int alt11=3; + int LA11_0 = input.LA(1); - if ( (LA12_0==32) ) { - alt12=1; + if ( (LA11_0==32) ) { + alt11=1; } - else if ( (LA12_0==33) ) { - switch ( input.LA(2) ) { - case INIT: - { - alt12=2; - } - break; - case MAIN: - { - alt12=3; - } - break; - case ID: - { - int LA12_5 = input.LA(3); + else if ( (LA11_0==33) ) { + int LA11_2 = input.LA(2); - if ( (LA12_5==27) ) { - alt12=4; - } - else if ( (LA12_5==26) ) { - alt12=5; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 12, 5, input); - - throw nvae; - - } - } - break; - default: + if ( (LA11_2==INIT) ) { + alt11=2; + } + else if ( (LA11_2==ID) ) { + alt11=3; + } + else { NoViableAltException nvae = - new NoViableAltException("", 12, 2, input); + new NoViableAltException("", 11, 2, input); throw nvae; } - } else { NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); + new NoViableAltException("", 11, 0, input); throw nvae; } - switch (alt12) { + switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: '.field' ID tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: '.field' ID tipo { - string_literal30=(Token)match(input,32,FOLLOW_32_in_membroClasse554); + string_literal30=(Token)match(input,32,FOLLOW_32_in_membroClasse559); stream_32.add(string_literal30); - ID31=(Token)match(input,ID,FOLLOW_ID_in_membroClasse556); + ID31=(Token)match(input,ID,FOLLOW_ID_in_membroClasse561); stream_ID.add(ID31); - pushFollow(FOLLOW_tipo_in_membroClasse558); + pushFollow(FOLLOW_tipo_in_membroClasse563); tipo32=tipo(); state._fsp--; @@ -1342,7 +1294,7 @@ else if ( (LA12_5==26) ) { stream_tipo.add(tipo32.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1352,9 +1304,9 @@ else if ( (LA12_5==26) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 77:24: -> ^( FIELD_DECL ID tipo ) + // 78:24: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:27: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:27: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1378,29 +1330,29 @@ else if ( (LA12_5==26) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' { - string_literal33=(Token)match(input,33,FOLLOW_33_in_membroClasse576); + string_literal33=(Token)match(input,33,FOLLOW_33_in_membroClasse581); stream_33.add(string_literal33); - INIT34=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse578); + INIT34=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse583); stream_INIT.add(INIT34); - string_literal35=(Token)match(input,27,FOLLOW_27_in_membroClasse580); + string_literal35=(Token)match(input,27,FOLLOW_27_in_membroClasse585); stream_27.add(string_literal35); - VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse582); + VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse587); stream_VOID.add(VOID36); - NEWLINE37=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse584); + NEWLINE37=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse589); stream_NEWLINE.add(NEWLINE37); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:40: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:40: ( operacao )* loop8: do { int alt8=2; @@ -1413,9 +1365,9 @@ else if ( (LA12_5==26) ) { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:40: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:40: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse586); + pushFollow(FOLLOW_operacao_in_membroClasse591); operacao38=operacao(); state._fsp--; @@ -1431,12 +1383,12 @@ else if ( (LA12_5==26) ) { } while (true); - string_literal39=(Token)match(input,31,FOLLOW_31_in_membroClasse589); + string_literal39=(Token)match(input,31,FOLLOW_31_in_membroClasse594); stream_31.add(string_literal39); // AST REWRITE - // elements: operacao, INIT + // elements: INIT, operacao // token labels: // rule labels: retval // token list labels: @@ -1446,9 +1398,9 @@ else if ( (LA12_5==26) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 79:2: -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) + // 80:2: -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:5: ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:5: ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1459,14 +1411,14 @@ else if ( (LA12_5==26) ) { stream_INIT.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:24: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:24: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:31: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:31: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1487,145 +1439,82 @@ else if ( (LA12_5==26) ) { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.method' MAIN '()' VOID NEWLINE ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:7: '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' { - string_literal40=(Token)match(input,33,FOLLOW_33_in_membroClasse613); + string_literal40=(Token)match(input,33,FOLLOW_33_in_membroClasse618); stream_33.add(string_literal40); - MAIN41=(Token)match(input,MAIN,FOLLOW_MAIN_in_membroClasse615); - stream_MAIN.add(MAIN41); - - - string_literal42=(Token)match(input,27,FOLLOW_27_in_membroClasse617); - stream_27.add(string_literal42); - - - VOID43=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse619); - stream_VOID.add(VOID43); - - - NEWLINE44=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse621); - stream_NEWLINE.add(NEWLINE44); - - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:40: ( operacao )* - loop9: - do { - int alt9=2; - int LA9_0 = input.LA(1); - - if ( (LA9_0==ID||LA9_0==NEWLINE||(LA9_0 >= 37 && LA9_0 <= 99)) ) { - alt9=1; - } - - - switch (alt9) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:40: operacao - { - pushFollow(FOLLOW_operacao_in_membroClasse623); - operacao45=operacao(); - - state._fsp--; - - stream_operacao.add(operacao45.getTree()); - - } - break; - - default : - break loop9; - } - } while (true); + ID41=(Token)match(input,ID,FOLLOW_ID_in_membroClasse620); + stream_ID.add(ID41); - string_literal46=(Token)match(input,31,FOLLOW_31_in_membroClasse627); - stream_31.add(string_literal46); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:20: ( parametros | '(' parametros ')' ) + int alt9=2; + int LA9_0 = input.LA(1); + if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==27) ) { + alt9=1; + } + else if ( (LA9_0==26) ) { + alt9=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); - // AST REWRITE - // elements: MAIN, VOID, operacao - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + throw nvae; - root_0 = (BytecodesAST)adaptor.nil(); - // 81:9: -> ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) VOID ) - { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:12: ^( METHOD_DECL MAIN ^( BODY ( operacao )* ) VOID ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(METHOD_DECL, "METHOD_DECL") - , root_1); + } + switch (alt9) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:21: parametros + { + pushFollow(FOLLOW_parametros_in_membroClasse623); + parametros42=parametros(); - adaptor.addChild(root_1, - stream_MAIN.nextNode() - ); + state._fsp--; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:31: ^( BODY ( operacao )* ) - { - BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); - root_2 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(BODY, "BODY") - , root_2); + stream_parametros.add(parametros42.getTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:38: ( operacao )* - while ( stream_operacao.hasNext() ) { - adaptor.addChild(root_2, stream_operacao.nextTree()); + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:34: '(' parametros ')' + { + char_literal43=(Token)match(input,26,FOLLOW_26_in_membroClasse627); + stream_26.add(char_literal43); - } - stream_operacao.reset(); - adaptor.addChild(root_1, root_2); - } + pushFollow(FOLLOW_parametros_in_membroClasse629); + parametros44=parametros(); - adaptor.addChild(root_1, - stream_VOID.nextNode() - ); + state._fsp--; - adaptor.addChild(root_0, root_1); - } + stream_parametros.add(parametros44.getTree()); - } + char_literal45=(Token)match(input,28,FOLLOW_28_in_membroClasse631); + stream_28.add(char_literal45); - retval.tree = root_0; + } + break; } - break; - case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:7: '.method' ID '()' ret= tipo NEWLINE ( operacao )* '.end method' - { - string_literal47=(Token)match(input,33,FOLLOW_33_in_membroClasse660); - stream_33.add(string_literal47); - - - ID48=(Token)match(input,ID,FOLLOW_ID_in_membroClasse662); - stream_ID.add(ID48); - - string_literal49=(Token)match(input,27,FOLLOW_27_in_membroClasse664); - stream_27.add(string_literal49); - - pushFollow(FOLLOW_tipo_in_membroClasse670); + pushFollow(FOLLOW_tipo_in_membroClasse638); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE50=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse672); - stream_NEWLINE.add(NEWLINE50); + NEWLINE46=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse640); + stream_NEWLINE.add(NEWLINE46); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:44: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:73: ( operacao )* loop10: do { int alt10=2; @@ -1638,14 +1527,14 @@ else if ( (LA12_5==26) ) { switch (alt10) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:44: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:73: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse674); - operacao51=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse642); + operacao47=operacao(); state._fsp--; - stream_operacao.add(operacao51.getTree()); + stream_operacao.add(operacao47.getTree()); } break; @@ -1656,12 +1545,12 @@ else if ( (LA12_5==26) ) { } while (true); - string_literal52=(Token)match(input,31,FOLLOW_31_in_membroClasse677); - stream_31.add(string_literal52); + string_literal48=(Token)match(input,31,FOLLOW_31_in_membroClasse645); + stream_31.add(string_literal48); // AST REWRITE - // elements: ID, ret, operacao + // elements: ret, parametros, ID, operacao // token labels: // rule labels: ret, retval // token list labels: @@ -1672,9 +1561,9 @@ else if ( (LA12_5==26) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 83:9: -> ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) + // 82:9: -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:12: ^( METHOD_DECL ID ^( BODY ( operacao )* ) $ret) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:12: ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1685,14 +1574,18 @@ else if ( (LA12_5==26) ) { stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:29: ^( BODY ( operacao )* ) + adaptor.addChild(root_1, stream_ret.nextTree()); + + adaptor.addChild(root_1, stream_parametros.nextTree()); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:46: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:36: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:53: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1702,8 +1595,6 @@ else if ( (LA12_5==26) ) { adaptor.addChild(root_1, root_2); } - adaptor.addChild(root_1, stream_ret.nextTree()); - adaptor.addChild(root_0, root_1); } @@ -1714,124 +1605,100 @@ else if ( (LA12_5==26) ) { } break; - case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:7: '.method' ID '(' params= parametros ')' ret= tipo NEWLINE ( operacao )* '.end method' - { - string_literal53=(Token)match(input,33,FOLLOW_33_in_membroClasse711); - stream_33.add(string_literal53); - - - ID54=(Token)match(input,ID,FOLLOW_ID_in_membroClasse713); - stream_ID.add(ID54); - - - char_literal55=(Token)match(input,26,FOLLOW_26_in_membroClasse715); - stream_26.add(char_literal55); - - pushFollow(FOLLOW_parametros_in_membroClasse721); - params=parametros(); - - state._fsp--; - - stream_parametros.add(params.getTree()); + } + retval.stop = input.LT(-1); - char_literal56=(Token)match(input,28,FOLLOW_28_in_membroClasse723); - stream_28.add(char_literal56); + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - pushFollow(FOLLOW_tipo_in_membroClasse729); - ret=tipo(); + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - state._fsp--; + } - stream_tipo.add(ret.getTree()); + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "membroClasse" - NEWLINE57=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse731); - stream_NEWLINE.add(NEWLINE57); + public static class parametros_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:67: ( operacao )* - loop11: - do { - int alt11=2; - int LA11_0 = input.LA(1); - if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 37 && LA11_0 <= 99)) ) { - alt11=1; - } + // $ANTLR start "parametros" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: parametros : (a= '()' -> ^( PARAMS $a) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); + public final AssemblerParser.parametros_return parametros() throws RecognitionException { + AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); + retval.start = input.LT(1); - switch (alt11) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:67: operacao - { - pushFollow(FOLLOW_operacao_in_membroClasse733); - operacao58=operacao(); + BytecodesAST root_0 = null; - state._fsp--; + Token a=null; - stream_operacao.add(operacao58.getTree()); + BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); - } - break; + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:2: (a= '()' -> ^( PARAMS $a) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) + int alt13=2; + int LA13_0 = input.LA(1); - default : - break loop11; - } - } while (true); + if ( (LA13_0==27) ) { + alt13=1; + } + else if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { + alt13=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 13, 0, input); + throw nvae; - string_literal59=(Token)match(input,31,FOLLOW_31_in_membroClasse736); - stream_31.add(string_literal59); + } + switch (alt13) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:4: a= '()' + { + a=(Token)match(input,27,FOLLOW_27_in_parametros695); + stream_27.add(a); // AST REWRITE - // elements: ID, ret, operacao, params - // token labels: - // rule labels: ret, retval, params + // elements: a + // token labels: a + // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; - RewriteRuleSubtreeStream stream_ret=new RewriteRuleSubtreeStream(adaptor,"rule ret",ret!=null?ret.tree:null); + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - RewriteRuleSubtreeStream stream_params=new RewriteRuleSubtreeStream(adaptor,"rule params",params!=null?params.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 85:9: -> ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) + // 86:13: -> ^( PARAMS $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:12: ^( METHOD_DECL ID $params ^( BODY ( operacao )* ) $ret) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:16: ^( PARAMS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(METHOD_DECL, "METHOD_DECL") + (BytecodesAST)adaptor.create(PARAMS, "PARAMS") , root_1); - adaptor.addChild(root_1, - stream_ID.nextNode() - ); - - adaptor.addChild(root_1, stream_params.nextTree()); - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:37: ^( BODY ( operacao )* ) - { - BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); - root_2 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(BODY, "BODY") - , root_2); - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:44: ( operacao )* - while ( stream_operacao.hasNext() ) { - adaptor.addChild(root_2, stream_operacao.nextTree()); - - } - stream_operacao.reset(); - - adaptor.addChild(root_1, root_2); - } - - adaptor.addChild(root_1, stream_ret.nextTree()); + adaptor.addChild(root_1, stream_a.nextNode()); adaptor.addChild(root_0, root_1); } @@ -1843,102 +1710,102 @@ else if ( (LA12_5==26) ) { } break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:4: (a= ID |a= TIPO_REF )+ + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:4: (a= ID |a= TIPO_REF )+ + int cnt12=0; + loop12: + do { + int alt12=3; + int LA12_0 = input.LA(1); - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + if ( (LA12_0==TIPO_REF) ) { + int LA12_1 = input.LA(2); - } + if ( (LA12_1==ID||LA12_1==INT||(LA12_1 >= TIPO_REF && LA12_1 <= VOID)||LA12_1==28) ) { + alt12=2; + } - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "membroClasse" + } + else if ( (LA12_0==ID) ) { + alt12=1; + } - public static class parametros_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; + switch (alt12) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= ID + { + a=(Token)match(input,ID,FOLLOW_ID_in_parametros723); + stream_ID.add(a); - // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:1: parametros : ( ID | TIPO_REF )+ ; - public final AssemblerParser.parametros_return parametros() throws RecognitionException { - AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); - retval.start = input.LT(1); + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= TIPO_REF + { + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros738); + stream_TIPO_REF.add(a); - BytecodesAST root_0 = null; - Token set60=null; + } + break; - BytecodesAST set60_tree=null; + default : + if ( cnt12 >= 1 ) break loop12; + EarlyExitException eee = + new EarlyExitException(12, input); + throw eee; + } + cnt12++; + } while (true); - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:12: ( ( ID | TIPO_REF )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:14: ( ID | TIPO_REF )+ - { - root_0 = (BytecodesAST)adaptor.nil(); + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:14: ( ID | TIPO_REF )+ - int cnt13=0; - loop13: - do { - int alt13=2; - int LA13_0 = input.LA(1); + root_0 = (BytecodesAST)adaptor.nil(); + // 91:4: -> ( ^( PARAMS $a) )+ + { + if ( !(stream_a.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_a.hasNext() ) { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:7: ^( PARAMS $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(PARAMS, "PARAMS") + , root_1); - if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { - alt13=1; - } + adaptor.addChild(root_1, stream_a.nextNode()); + adaptor.addChild(root_0, root_1); + } - switch (alt13) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: - { - set60=(Token)input.LT(1); - - if ( input.LA(1)==ID||input.LA(1)==TIPO_REF ) { - input.consume(); - adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set60) - ); - state.errorRecovery=false; - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } + } + stream_a.reset(); + } - } - break; - default : - if ( cnt13 >= 1 ) break loop13; - EarlyExitException eee = - new EarlyExitException(13, input); - throw eee; - } - cnt13++; - } while (true); + retval.tree = root_0; + } + break; } - retval.stop = input.LT(-1); @@ -1968,7 +1835,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -1976,23 +1843,23 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST root_0 = null; - Token set61=null; + Token set49=null; - BytecodesAST set61_tree=null; + BytecodesAST set49_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: ( 'areturn' | 'ireturn' | 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: ( 'areturn' | 'ireturn' | 'return' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set61=(Token)input.LT(1); + set49=(Token)input.LT(1); if ( input.LA(1)==43||input.LA(1)==85||input.LA(1)==99 ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set61) + (BytecodesAST)adaptor.create(set49) ); state.errorRecovery=false; } @@ -2033,7 +1900,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -2042,20 +1909,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal64=null; + Token char_literal52=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; - AssemblerParser.tipo_return tipo62 =null; + AssemblerParser.tipo_return tipo50 =null; - AssemblerParser.tipo_return tipo63 =null; + AssemblerParser.tipo_return tipo51 =null; BytecodesAST a_tree=null; - BytecodesAST char_literal64_tree=null; + BytecodesAST char_literal52_tree=null; RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); @@ -2066,7 +1933,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) int alt14=4; switch ( input.LA(1) ) { case 50: @@ -2099,28 +1966,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt14) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,50,FOLLOW_50_in_manipulacaoObjetos830); + a=(Token)match(input,50,FOLLOW_50_in_manipulacaoObjetos804); stream_50.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos836); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos810); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos838); - tipo62=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos812); + tipo50=tipo(); state._fsp--; - stream_tipo.add(tipo62.getTree()); + stream_tipo.add(tipo50.getTree()); // AST REWRITE - // elements: b, 50, tipo + // elements: tipo, b, 50 // token labels: // rule labels: retval, b // token list labels: @@ -2131,9 +1998,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 92:52: -> ^( 'getfield' $b tipo ) + // 104:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2155,25 +2022,25 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,98,FOLLOW_98_in_manipulacaoObjetos876); + a=(Token)match(input,98,FOLLOW_98_in_manipulacaoObjetos850); stream_98.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos882); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos856); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos884); - tipo63=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos858); + tipo51=tipo(); state._fsp--; - stream_tipo.add(tipo63.getTree()); + stream_tipo.add(tipo51.getTree()); // AST REWRITE // elements: b, 98, tipo @@ -2187,9 +2054,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 93:52: -> ^( 'putfield' $b tipo ) + // 105:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2211,24 +2078,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,82,FOLLOW_82_in_manipulacaoObjetos922); + a=(Token)match(input,82,FOLLOW_82_in_manipulacaoObjetos896); stream_82.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos928); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos902); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal64=(Token)match(input,35,FOLLOW_35_in_manipulacaoObjetos930); - stream_35.add(char_literal64); + char_literal52=(Token)match(input,35,FOLLOW_35_in_manipulacaoObjetos904); + stream_35.add(char_literal52); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos936); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos910); d=chamadaMetodo(); state._fsp--; @@ -2236,7 +2103,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, d, 82 + // elements: c, 82, d // token labels: // rule labels: retval, d, c // token list labels: @@ -2248,9 +2115,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 95:23: -> ^( 'invokespecial' $c $d) + // 107:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2272,13 +2139,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:22: a= 'new' c= classe + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'new' c= classe { - a=(Token)match(input,94,FOLLOW_94_in_manipulacaoObjetos997); + a=(Token)match(input,94,FOLLOW_94_in_manipulacaoObjetos971); stream_94.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1002); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos976); c=classe(); state._fsp--; @@ -2286,7 +2153,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: c, 94 + // elements: 94, c // token labels: // rule labels: retval, c // token list labels: @@ -2297,9 +2164,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 96:42: -> ^( 'new' $c) + // 108:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:45: ^( 'new' $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2349,7 +2216,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2357,23 +2224,23 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set65=null; + Token set53=null; - BytecodesAST set65_tree=null; + BytecodesAST set53_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set65=(Token)input.LT(1); + set53=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set65) + (BytecodesAST)adaptor.create(set53) ); state.errorRecovery=false; } @@ -2414,7 +2281,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2434,10 +2301,10 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt15=7; switch ( input.LA(1) ) { case 52: @@ -2485,63 +2352,63 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt15) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:16: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:16: a= 'iadd' { - a=(Token)match(input,52,FOLLOW_52_in_aritmetica1080); + a=(Token)match(input,52,FOLLOW_52_in_aritmetica1054); stream_52.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:19: a= 'isub' { - a=(Token)match(input,91,FOLLOW_91_in_aritmetica1104); + a=(Token)match(input,91,FOLLOW_91_in_aritmetica1078); stream_91.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:19: a= 'imul' { - a=(Token)match(input,80,FOLLOW_80_in_aritmetica1128); + a=(Token)match(input,80,FOLLOW_80_in_aritmetica1102); stream_80.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:19: a= 'idiv' { - a=(Token)match(input,61,FOLLOW_61_in_aritmetica1152); + a=(Token)match(input,61,FOLLOW_61_in_aritmetica1126); stream_61.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:19: a= 'irem' { - a=(Token)match(input,84,FOLLOW_84_in_aritmetica1176); + a=(Token)match(input,84,FOLLOW_84_in_aritmetica1150); stream_84.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:19: a= 'iinc' { - a=(Token)match(input,74,FOLLOW_74_in_aritmetica1200); + a=(Token)match(input,74,FOLLOW_74_in_aritmetica1174); stream_74.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:19: a= 'ineg' { - a=(Token)match(input,81,FOLLOW_81_in_aritmetica1224); + a=(Token)match(input,81,FOLLOW_81_in_aritmetica1198); stream_81.add(a); @@ -2563,9 +2430,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 110:14: -> ^( ARITMETICA $a) + // 122:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2613,7 +2480,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -2642,10 +2509,10 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt16=16; switch ( input.LA(1) ) { case 60: @@ -2738,144 +2605,144 @@ public final AssemblerParser.load_return load() throws RecognitionException { switch (alt16) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:10: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'iconst_m1' { - a=(Token)match(input,60,FOLLOW_60_in_load1298); + a=(Token)match(input,60,FOLLOW_60_in_load1272); stream_60.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'iconst_0' { - a=(Token)match(input,54,FOLLOW_54_in_load1316); + a=(Token)match(input,54,FOLLOW_54_in_load1290); stream_54.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'iconst_1' { - a=(Token)match(input,55,FOLLOW_55_in_load1334); + a=(Token)match(input,55,FOLLOW_55_in_load1308); stream_55.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'iconst_2' { - a=(Token)match(input,56,FOLLOW_56_in_load1352); + a=(Token)match(input,56,FOLLOW_56_in_load1326); stream_56.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'iconst_3' { - a=(Token)match(input,57,FOLLOW_57_in_load1370); + a=(Token)match(input,57,FOLLOW_57_in_load1344); stream_57.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'iconst_4' { - a=(Token)match(input,58,FOLLOW_58_in_load1388); + a=(Token)match(input,58,FOLLOW_58_in_load1362); stream_58.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'iconst_5' { - a=(Token)match(input,59,FOLLOW_59_in_load1406); + a=(Token)match(input,59,FOLLOW_59_in_load1380); stream_59.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'aconst_null' { - a=(Token)match(input,37,FOLLOW_37_in_load1424); + a=(Token)match(input,37,FOLLOW_37_in_load1398); stream_37.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'iload_0' { - a=(Token)match(input,76,FOLLOW_76_in_load1442); + a=(Token)match(input,76,FOLLOW_76_in_load1416); stream_76.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'iload_1' { - a=(Token)match(input,77,FOLLOW_77_in_load1460); + a=(Token)match(input,77,FOLLOW_77_in_load1434); stream_77.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'iload_2' { - a=(Token)match(input,78,FOLLOW_78_in_load1478); + a=(Token)match(input,78,FOLLOW_78_in_load1452); stream_78.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'iload_3' { - a=(Token)match(input,79,FOLLOW_79_in_load1496); + a=(Token)match(input,79,FOLLOW_79_in_load1470); stream_79.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'aload_0' { - a=(Token)match(input,39,FOLLOW_39_in_load1514); + a=(Token)match(input,39,FOLLOW_39_in_load1488); stream_39.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'aload_1' { - a=(Token)match(input,40,FOLLOW_40_in_load1532); + a=(Token)match(input,40,FOLLOW_40_in_load1506); stream_40.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'aload_2' { - a=(Token)match(input,41,FOLLOW_41_in_load1550); + a=(Token)match(input,41,FOLLOW_41_in_load1524); stream_41.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'aload_3' { - a=(Token)match(input,42,FOLLOW_42_in_load1568); + a=(Token)match(input,42,FOLLOW_42_in_load1542); stream_42.add(a); @@ -2897,9 +2764,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 130:8: -> ^( LOAD $a) + // 142:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2947,7 +2814,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -2966,10 +2833,10 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) int alt17=3; switch ( input.LA(1) ) { case 75: @@ -2997,39 +2864,39 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio switch (alt17) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,75,FOLLOW_75_in_loadint1618); + a=(Token)match(input,75,FOLLOW_75_in_loadint1592); stream_75.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1624); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1598); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,93,FOLLOW_93_in_loadint1644); + a=(Token)match(input,93,FOLLOW_93_in_loadint1618); stream_93.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1650); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1624); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,38,FOLLOW_38_in_loadint1670); + a=(Token)match(input,38,FOLLOW_38_in_loadint1644); stream_38.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1676); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1650); stream_INTEIRO.add(b); @@ -3052,9 +2919,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 137:11: -> ^( LOAD $a $b) + // 149:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3104,7 +2971,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -3125,10 +2992,10 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt18=8; switch ( input.LA(1) ) { case 87: @@ -3181,72 +3048,72 @@ public final AssemblerParser.store_return store() throws RecognitionException { switch (alt18) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:11: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:11: a= 'istore_0' { - a=(Token)match(input,87,FOLLOW_87_in_store1738); + a=(Token)match(input,87,FOLLOW_87_in_store1712); stream_87.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:13: a= 'istore_1' { - a=(Token)match(input,88,FOLLOW_88_in_store1756); + a=(Token)match(input,88,FOLLOW_88_in_store1730); stream_88.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:13: a= 'istore_2' { - a=(Token)match(input,89,FOLLOW_89_in_store1774); + a=(Token)match(input,89,FOLLOW_89_in_store1748); stream_89.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:13: a= 'istore_3' { - a=(Token)match(input,90,FOLLOW_90_in_store1792); + a=(Token)match(input,90,FOLLOW_90_in_store1766); stream_90.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: a= 'astore_0' { - a=(Token)match(input,45,FOLLOW_45_in_store1810); + a=(Token)match(input,45,FOLLOW_45_in_store1784); stream_45.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:13: a= 'astore_1' { - a=(Token)match(input,46,FOLLOW_46_in_store1828); + a=(Token)match(input,46,FOLLOW_46_in_store1802); stream_46.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:13: a= 'astore_2' { - a=(Token)match(input,47,FOLLOW_47_in_store1846); + a=(Token)match(input,47,FOLLOW_47_in_store1820); stream_47.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:13: a= 'astore_3' { - a=(Token)match(input,48,FOLLOW_48_in_store1864); + a=(Token)match(input,48,FOLLOW_48_in_store1838); stream_48.add(a); @@ -3268,9 +3135,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 149:9: -> ^( STORE $a) + // 161:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3318,7 +3185,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3336,10 +3203,10 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) int alt19=2; int LA19_0 = input.LA(1); @@ -3358,26 +3225,26 @@ else if ( (LA19_0==44) ) { } switch (alt19) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:14: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,86,FOLLOW_86_in_storeint1918); + a=(Token)match(input,86,FOLLOW_86_in_storeint1892); stream_86.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1924); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1898); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,44,FOLLOW_44_in_storeint1945); + a=(Token)match(input,44,FOLLOW_44_in_storeint1919); stream_44.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1951); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1925); stream_INTEIRO.add(b); @@ -3388,7 +3255,7 @@ else if ( (LA19_0==44) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3400,9 +3267,9 @@ else if ( (LA19_0==44) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 155:12: -> ^( STORE $a $b) + // 167:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3452,7 +3319,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -3468,10 +3335,10 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt20=3; switch ( input.LA(1) ) { case 53: @@ -3499,27 +3366,27 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:12: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:12: a= 'iand' { - a=(Token)match(input,53,FOLLOW_53_in_logica2011); + a=(Token)match(input,53,FOLLOW_53_in_logica1985); stream_53.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'ior' { - a=(Token)match(input,83,FOLLOW_83_in_logica2030); + a=(Token)match(input,83,FOLLOW_83_in_logica2004); stream_83.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'ixor' { - a=(Token)match(input,92,FOLLOW_92_in_logica2049); + a=(Token)match(input,92,FOLLOW_92_in_logica2023); stream_92.add(a); @@ -3541,9 +3408,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 162:10: -> ^( LOGICA $a) + // 174:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3591,7 +3458,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -3620,10 +3487,10 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt21=13; switch ( input.LA(1) ) { case 68: @@ -3701,169 +3568,169 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:12: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:12: a= 'ifeq' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2100); + a=(Token)match(input,68,FOLLOW_68_in_desvio2074); stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2106); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2080); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:14: a= 'ifne' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2125); + a=(Token)match(input,73,FOLLOW_73_in_desvio2099); stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2131); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2105); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'iflt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2150); + a=(Token)match(input,72,FOLLOW_72_in_desvio2124); stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2156); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2130); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'ifge' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2175); + a=(Token)match(input,69,FOLLOW_69_in_desvio2149); stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2181); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2155); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'ifgt' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2200); + a=(Token)match(input,70,FOLLOW_70_in_desvio2174); stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2206); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2180); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ifle' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2225); + a=(Token)match(input,71,FOLLOW_71_in_desvio2199); stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2231); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2205); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio2250); + a=(Token)match(input,62,FOLLOW_62_in_desvio2224); stream_62.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2256); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2230); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,67,FOLLOW_67_in_desvio2275); + a=(Token)match(input,67,FOLLOW_67_in_desvio2249); stream_67.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2281); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2255); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio2300); + a=(Token)match(input,66,FOLLOW_66_in_desvio2274); stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2306); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2280); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2325); + a=(Token)match(input,63,FOLLOW_63_in_desvio2299); stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2331); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2305); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2350); + a=(Token)match(input,64,FOLLOW_64_in_desvio2324); stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2356); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2330); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'if_icmple' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio2375); + a=(Token)match(input,65,FOLLOW_65_in_desvio2349); stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2381); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2355); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'goto' b= ID { - a=(Token)match(input,51,FOLLOW_51_in_desvio2400); + a=(Token)match(input,51,FOLLOW_51_in_desvio2374); stream_51.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2406); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2380); stream_ID.add(b); @@ -3886,9 +3753,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 179:10: -> ^( DESVIO $a $b) + // 191:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3938,7 +3805,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -3954,10 +3821,10 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) int alt22=3; switch ( input.LA(1) ) { case 96: @@ -3985,27 +3852,27 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:11: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:11: a= 'pop' { - a=(Token)match(input,96,FOLLOW_96_in_pilha2467); + a=(Token)match(input,96,FOLLOW_96_in_pilha2441); stream_96.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:13: a= 'pop2' { - a=(Token)match(input,97,FOLLOW_97_in_pilha2485); + a=(Token)match(input,97,FOLLOW_97_in_pilha2459); stream_97.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:13: a= 'dup' { - a=(Token)match(input,49,FOLLOW_49_in_pilha2503); + a=(Token)match(input,49,FOLLOW_49_in_pilha2477); stream_49.add(a); @@ -4027,9 +3894,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 186:9: -> ^( PILHA $a) + // 198:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4078,7 +3945,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -4086,24 +3953,24 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal66=null; + Token char_literal54=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal66_tree=null; + BytecodesAST char_literal54_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:8: (cls+= ID '/' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:8: (cls+= ID '/' )* loop23: do { int alt23=2; @@ -4128,9 +3995,9 @@ public final AssemblerParser.classe_return classe() throws RecognitionException switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2569); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2543); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4140,11 +4007,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal66=(Token)match(input,35,FOLLOW_35_in_classe2571); - char_literal66_tree = - (BytecodesAST)adaptor.create(char_literal66) + char_literal54=(Token)match(input,35,FOLLOW_35_in_classe2545); + char_literal54_tree = + (BytecodesAST)adaptor.create(char_literal54) ; - adaptor.addChild(root_0, char_literal66_tree); + adaptor.addChild(root_0, char_literal54_tree); } @@ -4156,10 +4023,10 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:25: (cls+= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:26: cls+= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:25: (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2580); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2554); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4208,7 +4075,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -4230,27 +4097,27 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:6: (n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:8: n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:6: (n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2620); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2594); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2626); + par=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2600); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2632); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2606); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -4296,7 +4163,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -4305,12 +4172,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal67=null; + Token char_literal55=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal67_tree=null; + BytecodesAST char_literal55_tree=null; BytecodesAST cls_tree=null; @@ -4318,13 +4185,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: (cls+= ID '/' )+ int cnt24=0; loop24: do { @@ -4344,9 +4211,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2672); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2646); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4356,11 +4223,11 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal67=(Token)match(input,35,FOLLOW_35_in_campo2674); - char_literal67_tree = - (BytecodesAST)adaptor.create(char_literal67) + char_literal55=(Token)match(input,35,FOLLOW_35_in_campo2648); + char_literal55_tree = + (BytecodesAST)adaptor.create(char_literal55) ; - adaptor.addChild(root_0, char_literal67_tree); + adaptor.addChild(root_0, char_literal55_tree); } @@ -4376,7 +4243,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2682); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2656); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -4413,162 +4280,152 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { - public static final BitSet FOLLOW_instrucao_in_programa117 = new BitSet(new long[]{0xFFFFFFE020080202L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_instrucao145 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao159 = new BitSet(new long[]{0x0000000040000002L}); - public static final BitSet FOLLOW_30_in_instrucao162 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_operacao184 = new BitSet(new long[]{0xFFFFFFE000080000L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_comando_in_operacao186 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_comando_in_operacao190 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label212 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_36_in_label214 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_comando232 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_aritmetica_in_comando250 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_load_in_comando268 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_loadint_in_comando286 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_store_in_comando304 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_storeint_in_comando322 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_desvio_in_comando340 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_logica_in_comando358 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_pilha_in_comando376 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_retorno_in_comando394 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_95_in_comando412 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_comando428 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_definicaoClasse454 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse456 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse458 = new BitSet(new long[]{0x0000000700000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse461 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse463 = new BitSet(new long[]{0x0000000300000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse468 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse470 = new BitSet(new long[]{0x0000000300000002L}); - public static final BitSet FOLLOW_34_in_superClasse531 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse533 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_membroClasse554 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse556 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse558 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse576 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INIT_in_membroClasse578 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_membroClasse580 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse582 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse584 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse586 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_31_in_membroClasse589 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse613 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_MAIN_in_membroClasse615 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_membroClasse617 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse619 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse621 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse623 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_31_in_membroClasse627 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse660 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse662 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_membroClasse664 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse670 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse672 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse674 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_31_in_membroClasse677 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse711 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse713 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_26_in_membroClasse715 = new BitSet(new long[]{0x0000000000800200L}); - public static final BitSet FOLLOW_parametros_in_membroClasse721 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_membroClasse723 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse729 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse731 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse733 = new BitSet(new long[]{0xFFFFFFE080080200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_31_in_membroClasse736 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_manipulacaoObjetos830 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos836 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos838 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_manipulacaoObjetos876 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos882 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos884 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_manipulacaoObjetos922 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos928 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_manipulacaoObjetos930 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos936 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_manipulacaoObjetos997 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1002 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_aritmetica1080 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_aritmetica1104 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_aritmetica1128 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_aritmetica1152 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_aritmetica1176 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica1200 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_aritmetica1224 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load1298 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load1316 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load1334 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load1352 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load1370 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load1388 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load1406 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load1424 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load1442 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_load1460 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_load1478 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_load1496 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load1514 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load1532 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load1550 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load1568 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_loadint1618 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_instrucao_in_programa122 = new BitSet(new long[]{0xFFFFFFE020040202L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_instrucao150 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao164 = new BitSet(new long[]{0x0000000040000002L}); + public static final BitSet FOLLOW_30_in_instrucao167 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_operacao189 = new BitSet(new long[]{0xFFFFFFE000040000L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_comando_in_operacao191 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_operacao195 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label217 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_label219 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_comando237 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_aritmetica_in_comando255 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_load_in_comando273 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_loadint_in_comando291 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_store_in_comando309 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_storeint_in_comando327 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_desvio_in_comando345 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_logica_in_comando363 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_pilha_in_comando381 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_retorno_in_comando399 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_95_in_comando417 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando433 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_definicaoClasse459 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse461 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse463 = new BitSet(new long[]{0x0000000700000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse466 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse468 = new BitSet(new long[]{0x0000000300000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse473 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse475 = new BitSet(new long[]{0x0000000300000002L}); + public static final BitSet FOLLOW_34_in_superClasse536 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse538 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_membroClasse559 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse561 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse563 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse581 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_INIT_in_membroClasse583 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_membroClasse585 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse587 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse589 = new BitSet(new long[]{0xFFFFFFE080040200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse591 = new BitSet(new long[]{0xFFFFFFE080040200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_31_in_membroClasse594 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse618 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_membroClasse620 = new BitSet(new long[]{0x000000000C800200L}); + public static final BitSet FOLLOW_parametros_in_membroClasse623 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_26_in_membroClasse627 = new BitSet(new long[]{0x0000000008800200L}); + public static final BitSet FOLLOW_parametros_in_membroClasse629 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_membroClasse631 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_membroClasse638 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse640 = new BitSet(new long[]{0xFFFFFFE080040200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse642 = new BitSet(new long[]{0xFFFFFFE080040200L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_31_in_membroClasse645 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_parametros695 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_parametros723 = new BitSet(new long[]{0x0000000000800202L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros738 = new BitSet(new long[]{0x0000000000800202L}); + public static final BitSet FOLLOW_50_in_manipulacaoObjetos804 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos810 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos812 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_manipulacaoObjetos850 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos856 = new BitSet(new long[]{0x0000000001800800L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos858 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_manipulacaoObjetos896 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos902 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_manipulacaoObjetos904 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos910 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_manipulacaoObjetos971 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos976 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_aritmetica1054 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_aritmetica1078 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_aritmetica1102 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_aritmetica1126 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_aritmetica1150 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_aritmetica1174 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_aritmetica1198 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load1272 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_load1290 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load1308 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load1326 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load1344 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load1362 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load1380 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_load1398 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_load1416 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_load1434 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_load1452 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_load1470 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_load1488 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load1506 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load1524 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load1542 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_loadint1592 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1598 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_loadint1618 = new BitSet(new long[]{0x0000000000001000L}); public static final BitSet FOLLOW_INTEIRO_in_loadint1624 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_loadint1644 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_38_in_loadint1644 = new BitSet(new long[]{0x0000000000001000L}); public static final BitSet FOLLOW_INTEIRO_in_loadint1650 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_loadint1670 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1676 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_store1738 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_store1756 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_store1774 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_store1792 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_store1810 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_store1828 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_store1846 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_store1864 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_storeint1918 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1924 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_storeint1945 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1951 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_logica2011 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_logica2030 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_logica2049 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2100 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2106 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2125 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2131 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2150 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2156 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2175 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2200 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2206 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2225 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2231 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio2250 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2256 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_desvio2275 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2281 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio2300 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2306 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2325 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2331 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2350 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2356 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio2375 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2381 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio2400 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2406 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_pilha2467 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_pilha2485 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_pilha2503 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2569 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_classe2571 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_classe2580 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2620 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_chamadaMetodo2626 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2632 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2672 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_campo2674 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_campo2682 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_store1712 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_store1730 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_store1748 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_store1766 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_store1784 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_store1802 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_store1820 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_store1838 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_storeint1892 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1898 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_storeint1919 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1925 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_logica1985 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_logica2004 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_logica2023 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2074 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2080 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2099 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2105 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2124 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2130 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2149 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2174 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2180 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2199 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2205 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_desvio2224 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2230 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_desvio2249 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2255 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio2274 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2280 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2299 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2305 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2324 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2330 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio2349 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2355 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_desvio2374 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_desvio2380 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_pilha2441 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_pilha2459 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_pilha2477 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2543 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_classe2545 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_classe2554 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2594 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_chamadaMetodo2600 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2606 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2646 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_campo2648 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_ID_in_campo2656 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index cd37e18..0fc3987 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-03 23:45:23 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-04 18:58:36 package br.ufpb.iged.interpretador.parser; @@ -8,6 +8,7 @@ import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; + import br.ufpb.iged.interpretador.symboltable.classes.EscopoLocal; import org.antlr.runtime.*; @@ -21,7 +22,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; @@ -111,11 +112,11 @@ public class Def extends TreeFilter { public static final int LABEL=13; public static final int LOAD=14; public static final int LOGICA=15; - public static final int MAIN=16; - public static final int MEMBRO_CLASSE=17; - public static final int METHOD_DECL=18; - public static final int NEWLINE=19; - public static final int NULL=20; + public static final int MEMBRO_CLASSE=16; + public static final int METHOD_DECL=17; + public static final int NEWLINE=18; + public static final int NULL=19; + public static final int PARAMS=20; public static final int PILHA=21; public static final int STORE=22; public static final int TIPO_REF=23; @@ -152,187 +153,34 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:1: topdown : ( entraNaClasse | declaracaoVariavel | entraNoMetodoInit | entraNoMetodoSemParams | entraNoMetodoComParams ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:1: topdown : ( entraNoCorpoMetodo | entraNoMetodoInit | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:9: ( entraNaClasse | declaracaoVariavel | entraNoMetodoInit | entraNoMetodoSemParams | entraNoMetodoComParams ) - int alt1=5; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ( entraNoCorpoMetodo | entraNoMetodoInit | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ) + int alt1=6; switch ( input.LA(1) ) { - case 29: + case BODY: { alt1=1; } break; - case FIELD_DECL: - { - alt1=2; - } - break; case METHOD_DECL: { - int LA1_3 = input.LA(2); + int LA1_2 = input.LA(2); - if ( (LA1_3==DOWN) ) { - int LA1_4 = input.LA(3); + if ( (LA1_2==DOWN) ) { + int LA1_6 = input.LA(3); - if ( (LA1_4==INIT) ) { - alt1=3; + if ( (LA1_6==INIT) ) { + alt1=2; } - else if ( (LA1_4==ID) ) { - int LA1_6 = input.LA(4); - - if ( (LA1_6==BODY) ) { - switch ( input.LA(5) ) { - case BODY: - { - int LA1_9 = input.LA(6); - - if ( ((LA1_9 >= DOWN && LA1_9 <= UP)) ) { - alt1=4; - } - else if ( ((LA1_9 >= ARITMETICA && LA1_9 <= 99)) ) { - alt1=5; - } - else { - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 9, input); - - throw nvae; - - } - } - break; - case DOWN: - { - alt1=5; - } - break; - case ARITMETICA: - case DESVIO: - case EXTENDS: - case FIELD_DECL: - case ID: - case INIT: - case INT: - case INTEIRO: - case LABEL: - case LOAD: - case LOGICA: - case MAIN: - case MEMBRO_CLASSE: - case METHOD_DECL: - case NEWLINE: - case NULL: - case PILHA: - case STORE: - case TIPO_REF: - case VOID: - case WS: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 93: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - { - alt1=4; - } - break; - default: - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 7, input); - - throw nvae; - - } - - } - else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { - alt1=5; - } - else { - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 6, input); - - throw nvae; - - } + else if ( (LA1_6==ID) ) { + alt1=3; } else { if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 1, 4, input); + new NoViableAltException("", 1, 6, input); throw nvae; @@ -341,13 +189,28 @@ else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { else { if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 1, 3, input); + new NoViableAltException("", 1, 2, input); throw nvae; } } break; + case 29: + { + alt1=4; + } + break; + case PARAMS: + { + alt1=5; + } + break; + case FIELD_DECL: + { + alt1=6; + } + break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = @@ -359,10 +222,10 @@ else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:30:11: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: entraNoCorpoMetodo { - pushFollow(FOLLOW_entraNaClasse_in_topdown49); - entraNaClasse(); + pushFollow(FOLLOW_entraNoCorpoMetodo_in_topdown49); + entraNoCorpoMetodo(); state._fsp--; if (state.failed) return ; @@ -370,10 +233,10 @@ else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:11: entraNoMetodoInit { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown61); - declaracaoVariavel(); + pushFollow(FOLLOW_entraNoMetodoInit_in_topdown61); + entraNoMetodoInit(); state._fsp--; if (state.failed) return ; @@ -381,10 +244,10 @@ else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:11: entraNoMetodoInit + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:11: entraNoMetodo { - pushFollow(FOLLOW_entraNoMetodoInit_in_topdown73); - entraNoMetodoInit(); + pushFollow(FOLLOW_entraNoMetodo_in_topdown73); + entraNoMetodo(); state._fsp--; if (state.failed) return ; @@ -392,10 +255,10 @@ else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:11: entraNoMetodoSemParams + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:11: entraNaClasse { - pushFollow(FOLLOW_entraNoMetodoSemParams_in_topdown85); - entraNoMetodoSemParams(); + pushFollow(FOLLOW_entraNaClasse_in_topdown85); + entraNaClasse(); state._fsp--; if (state.failed) return ; @@ -403,10 +266,21 @@ else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:11: entraNoMetodoComParams + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:11: parametros + { + pushFollow(FOLLOW_parametros_in_topdown97); + parametros(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 6 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:11: declaracaoVariavel { - pushFollow(FOLLOW_entraNoMetodoComParams_in_topdown97); - entraNoMetodoComParams(); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown109); + declaracaoVariavel(); state._fsp--; if (state.failed) return ; @@ -431,37 +305,27 @@ else if ( (LA1_6==ARITMETICA||(LA1_6 >= DESVIO && LA1_6 <= 99)) ) { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:1: bottomup : ( saiDaClasse | saiDoMetodo | getfield | putfield | invokespecial ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDaClasse ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:10: ( saiDaClasse | saiDoMetodo | getfield | putfield | invokespecial ) - int alt2=5; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDaClasse ) + int alt2=3; switch ( input.LA(1) ) { - case 30: + case BODY: { alt2=1; } break; - case 31: + case METHOD_DECL: { alt2=2; } break; - case 50: + case 29: { alt2=3; } break; - case 98: - { - alt2=4; - } - break; - case 82: - { - alt2=5; - } - break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = @@ -473,10 +337,10 @@ public final void bottomup() throws RecognitionException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:12: saiDaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:12: saiDoCorpoMetodo { - pushFollow(FOLLOW_saiDaClasse_in_bottomup114); - saiDaClasse(); + pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup126); + saiDoCorpoMetodo(); state._fsp--; if (state.failed) return ; @@ -484,9 +348,9 @@ public final void bottomup() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:38:5: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:12: saiDoMetodo { - pushFollow(FOLLOW_saiDoMetodo_in_bottomup120); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup139); saiDoMetodo(); state._fsp--; @@ -495,32 +359,10 @@ public final void bottomup() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:12: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:12: saiDaClasse { - pushFollow(FOLLOW_getfield_in_bottomup133); - getfield(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:12: putfield - { - pushFollow(FOLLOW_putfield_in_bottomup146); - putfield(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:12: invokespecial - { - pushFollow(FOLLOW_invokespecial_in_bottomup159); - invokespecial(); + pushFollow(FOLLOW_saiDaClasse_in_bottomup152); + saiDaClasse(); state._fsp--; if (state.failed) return ; @@ -554,10 +396,10 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,29,FOLLOW_29_in_entraNaClasse191); if (state.failed) return ; + match(input,29,FOLLOW_29_in_entraNaClasse184); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse195); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse188); if (state.failed) return ; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; @@ -586,10 +428,10 @@ public final void entraNaClasse() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse199); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse192); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse203); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse196); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -644,10 +486,10 @@ public final void declaracaoVariavel() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:5: ( ^( FIELD_DECL ID tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:7: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel237); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel230); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel239); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel232); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -684,20 +526,18 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoMetodoInit" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:72:1: entraNoMetodoInit : ^( METHOD_DECL INIT BODY ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:72:1: entraNoMetodoInit : ^( METHOD_DECL INIT ) ; public final void entraNoMetodoInit() throws RecognitionException { BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:2: ( ^( METHOD_DECL INIT BODY ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:4: ^( METHOD_DECL INIT BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:2: ( ^( METHOD_DECL INIT ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:4: ^( METHOD_DECL INIT ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodoInit274); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodoInit267); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoMetodoInit276); if (state.failed) return ; - - match(input,BODY,FOLLOW_BODY_in_entraNoMetodoInit278); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoMetodoInit269); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -729,34 +569,67 @@ public final void entraNoMetodoInit() throws RecognitionException { - // $ANTLR start "entraNoMetodoSemParams" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:85:1: entraNoMetodoSemParams : ^( METHOD_DECL ID BODY tipoRet= . ) ; - public final void entraNoMetodoSemParams() throws RecognitionException { + // $ANTLR start "entraNoMetodo" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:85:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ) ; + public final void entraNoMetodo() throws RecognitionException { BytecodesAST ID3=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:2: ( ^( METHOD_DECL ID BODY tipoRet= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:4: ^( METHOD_DECL ID BODY tipoRet= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodoSemParams294); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo286); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodoSemParams296); if (state.failed) return ; - - match(input,BODY,FOLLOW_BODY_in_entraNoMetodoSemParams298); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo288); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:32: ( . )+ + int cnt4=0; + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0 >= ARITMETICA && LA4_0 <= 99)) ) { + alt4=1; + } + else if ( (LA4_0==UP) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:32: . + { + matchAny(input); if (state.failed) return ; + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + if (state.backtracking>0) {state.failed=true; return ;} + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + + match(input, Token.UP, null); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("linha "+ID3.getLine()+ ": def method "+(ID3!=null?ID3.getText():null)); - SimboloMetodo metodo = new SimboloMetodo((ID3!=null?ID3.getText():null)+"()"+tipoRet.getText(), null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo((ID3!=null?ID3.getText():null)+""+tipoRet.getText(), null, escopoAtual); metodo.def = ID3; ID3.simbolo = metodo; escopoAtual.definir(metodo); @@ -776,33 +649,23 @@ public final void entraNoMetodoSemParams() throws RecognitionException { } return ; } - // $ANTLR end "entraNoMetodoSemParams" + // $ANTLR end "entraNoMetodo" - // $ANTLR start "entraNoMetodoComParams" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:1: entraNoMetodoComParams : ^( METHOD_DECL ID params= . BODY tipoRet= . ) ; - public final void entraNoMetodoComParams() throws RecognitionException { - BytecodesAST ID4=null; - BytecodesAST params=null; - BytecodesAST tipoRet=null; + // $ANTLR start "parametros" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:1: parametros : ^( PARAMS pars= . ) ; + public final void parametros() throws RecognitionException { + BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:2: ( ^( METHOD_DECL ID params= . BODY tipoRet= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:4: ^( METHOD_DECL ID params= . BODY tipoRet= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:4: ^( PARAMS pars= . ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodoComParams319); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros313); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID4=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodoComParams321); if (state.failed) return ; - - params=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input,BODY,FOLLOW_BODY_in_entraNoMetodoComParams328); if (state.failed) return ; - - tipoRet=(BytecodesAST)input.LT(1); + pars=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; @@ -810,45 +673,13 @@ public final void entraNoMetodoComParams() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("linha "+ID4.getLine()+ - ": def method "+(ID4!=null?ID4.getText():null)); - SimboloMetodo metodo = new SimboloMetodo((ID4!=null?ID4.getText():null)+"("+params+")"+tipoRet.getText(), null, escopoAtual); - metodo.def = ID4; - ID4.simbolo = metodo; - escopoAtual.definir(metodo); - escopoAtual = metodo; - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "entraNoMetodoComParams" - - - - // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:1: saiDaClasse : '.end class' ; - public final void saiDaClasse() throws RecognitionException { - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:13: ( '.end class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:15: '.end class' - { - match(input,30,FOLLOW_30_in_saiDaClasse351); if (state.failed) return ; - - if ( state.backtracking==1 ) { - System.out.println("Saindo da classe.. membros: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope - } + System.out.println("linha "+pars.getLine()+": def "+pars.getText()); + pars.escopo = escopoAtual; + SimboloVariavel par = new SimboloVariavel(pars.getText(),null); + par.def = pars; // track AST location of def's ID + pars.simbolo = par; // track in AST + escopoAtual.definir(par); + } } @@ -863,23 +694,20 @@ public final void saiDaClasse() throws RecognitionException { } return ; } - // $ANTLR end "saiDaClasse" + // $ANTLR end "parametros" - // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:118:1: saiDoMetodo : '.end method' ; - public final void saiDoMetodo() throws RecognitionException { + // $ANTLR start "entraNoCorpoMetodo" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:110:1: entraNoCorpoMetodo : BODY ; + public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:119:2: ( '.end method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:119:5: '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:9: BODY { - match(input,31,FOLLOW_31_in_saiDoMetodo401); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo341); if (state.failed) return ; - if ( state.backtracking==1 ) { - System.out.println("Saindo do metodo: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope - } + if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} } @@ -894,22 +722,23 @@ public final void saiDoMetodo() throws RecognitionException { } return ; } - // $ANTLR end "saiDoMetodo" + // $ANTLR end "entraNoCorpoMetodo" - // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:1: getfield : 'getfield' ; - public final void getfield() throws RecognitionException { + // $ANTLR start "saiDoCorpoMetodo" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:1: saiDoCorpoMetodo : BODY ; + public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:5: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:7: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:9: BODY { - match(input,50,FOLLOW_50_in_getfield418); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo367); if (state.failed) return ; if ( state.backtracking==1 ) { - System.out.println("Saindo do getfield.."); - } + System.out.println("locals: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } } @@ -924,22 +753,23 @@ public final void getfield() throws RecognitionException { } return ; } - // $ANTLR end "getfield" + // $ANTLR end "saiDoCorpoMetodo" - // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:133:1: putfield : 'putfield' ; - public final void putfield() throws RecognitionException { + // $ANTLR start "saiDaClasse" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:122:1: saiDaClasse : '.class' ; + public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:134:5: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:134:7: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:122:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:122:15: '.class' { - match(input,98,FOLLOW_98_in_putfield445); if (state.failed) return ; + match(input,29,FOLLOW_29_in_saiDaClasse394); if (state.failed) return ; if ( state.backtracking==1 ) { - System.out.println("Saindo do putfield.."); - } + System.out.println("Saindo da classe.. membros: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } } @@ -954,22 +784,23 @@ public final void putfield() throws RecognitionException { } return ; } - // $ANTLR end "putfield" + // $ANTLR end "saiDaClasse" - // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:1: invokespecial : 'invokespecial' ; - public final void invokespecial() throws RecognitionException { + // $ANTLR start "saiDoMetodo" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:129:1: saiDoMetodo : METHOD_DECL ; + public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:141:5: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:141:7: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:5: METHOD_DECL { - match(input,82,FOLLOW_82_in_invokespecial472); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo444); if (state.failed) return ; if ( state.backtracking==1 ) { - System.out.println("Saindo do invokespecial.."); - } + System.out.println("Saindo do metodo: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } } @@ -984,42 +815,36 @@ public final void invokespecial() throws RecognitionException { } return ; } - // $ANTLR end "invokespecial" + // $ANTLR end "saiDoMetodo" // Delegated rules - public static final BitSet FOLLOW_entraNaClasse_in_topdown49 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_entraNoMetodoInit_in_topdown73 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_entraNoMetodoSemParams_in_topdown85 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_entraNoMetodoComParams_in_topdown97 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDaClasse_in_bottomup114 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoMetodo_in_bottomup120 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getfield_in_bottomup133 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_bottomup146 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_bottomup159 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_entraNaClasse191 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse195 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse199 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse203 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel237 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel239 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodoInit274 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoMetodoInit276 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_BODY_in_entraNoMetodoInit278 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodoSemParams294 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodoSemParams296 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_BODY_in_entraNoMetodoSemParams298 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodoComParams319 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodoComParams321 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_BODY_in_entraNoMetodoComParams328 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_30_in_saiDaClasse351 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_saiDoMetodo401 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_getfield418 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_putfield445 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_invokespecial472 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoCorpoMetodo_in_topdown49 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoMetodoInit_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoMetodo_in_topdown73 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown85 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parametros_in_topdown97 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown109 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoCorpoMetodo_in_bottomup126 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoMetodo_in_bottomup139 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_entraNaClasse184 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse188 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse192 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse196 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel230 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel232 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodoInit267 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoMetodoInit269 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo286 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo288 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_PARAMS_in_parametros313 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo341 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo367 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_saiDaClasse394 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo444 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index b4df8bc..f4d0f3a 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -84,11 +84,11 @@ INTEIRO=12 LABEL=13 LOAD=14 LOGICA=15 -MAIN=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 +MEMBRO_CLASSE=16 +METHOD_DECL=17 +NEWLINE=18 +NULL=19 +PARAMS=20 PILHA=21 STORE=22 TIPO_REF=23 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 860601b..c9f1a7f 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-03 23:45:23 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-04 18:58:36 package br.ufpb.iged.interpretador.parser; @@ -24,7 +24,7 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MAIN", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; @@ -114,11 +114,11 @@ public class Ref extends TreeFilter { public static final int LABEL=13; public static final int LOAD=14; public static final int LOGICA=15; - public static final int MAIN=16; - public static final int MEMBRO_CLASSE=17; - public static final int METHOD_DECL=18; - public static final int NEWLINE=19; - public static final int NULL=20; + public static final int MEMBRO_CLASSE=16; + public static final int METHOD_DECL=17; + public static final int NEWLINE=18; + public static final int NULL=19; + public static final int PARAMS=20; public static final int PILHA=21; public static final int STORE=22; public static final int TIPO_REF=23; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index b4df8bc..f4d0f3a 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -84,11 +84,11 @@ INTEIRO=12 LABEL=13 LOAD=14 LOGICA=15 -MAIN=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 +MEMBRO_CLASSE=16 +METHOD_DECL=17 +NEWLINE=18 +NULL=19 +PARAMS=20 PILHA=21 STORE=22 TIPO_REF=23 diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index 0bddb0a..81c57d6 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -5,7 +5,7 @@ public class SimboloMetodo extends SimboloComEscopo{ - Map argumentos = new LinkedHashMap(); + Map parametros = new LinkedHashMap(); public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; @@ -18,11 +18,11 @@ public SimboloMetodo(String nome, Tipo tipoRet, Escopo parent) { } public Map obterMembros() { - return argumentos; + return parametros; } public String obterNome() { - return nome+"("+stripBrackets(argumentos.keySet().toString())+")"; + return nome+"("+stripBrackets(parametros.keySet().toString())+")"; } } From 3d69db36aa41212495dea90e68fd07666c24cb5b Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Tue, 4 Sep 2012 21:03:54 -0300 Subject: [PATCH 56/79] commit --- .../asm/BytecodeAssembler.class | Bin 6816 -> 6816 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4589 -> 4595 bytes .../iged/interpretador/gramaticas/Assembler.g | 11 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 15 +- .../interpretador/parser/Assembler.tokens | 191 +- .../parser/AssemblerLexer$DFA6.class | Bin 1902 -> 1903 bytes .../interpretador/parser/AssemblerLexer.class | Bin 28621 -> 28659 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$comando_return.class | Bin 677 -> 677 bytes ...semblerParser$definicaoClasse_return.class | Bin 701 -> 701 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../AssemblerParser$instrucao_return.class | Bin 683 -> 683 bytes .../parser/AssemblerParser$label_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 692 -> 692 bytes .../AssemblerParser$operacao_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../AssemblerParser$programa_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../AssemblerParser$superClasse_return.class | Bin 689 -> 689 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 67494 -> 67540 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 18047 -> 18430 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 191 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1348 -> 1348 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 23892 -> 23938 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 191 +- classes/Teste.class | 3 + .../iged/interpretador/gramaticas/Assembler.g | 11 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 15 +- .../interpretador/parser/Assembler.tokens | 191 +- .../interpretador/parser/AssemblerLexer.java | 909 +++++----- .../interpretador/parser/AssemblerParser.java | 1549 +++++++++-------- .../ufpb/iged/interpretador/parser/Def.java | 292 ++-- .../ufpb/iged/interpretador/parser/Def.tokens | 191 +- .../ufpb/iged/interpretador/parser/Ref.java | 97 +- .../ufpb/iged/interpretador/parser/Ref.tokens | 191 +- 44 files changed, 2047 insertions(+), 2001 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 5fedc6cbe8dd493110387418dafe631786652411..28fda5f922ab6aecf3fcb95a06c9415bb3955592 100644 GIT binary patch delta 18 acmZ2ry1;b96=7B`1_lP+%{PUQvjG4)(*?=^ delta 18 acmZ2ry1;b96=7CR1_lP6%{PUQvjG4)!v)9y diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 6c1f8b56a7d4b20a58e1b134d3fa975f238e913a..3b1bd002057197eaadbfe3dc5b659a718d9eecc0 100644 GIT binary patch delta 2041 zcmYk7X>?On5P;|MlJq7`;l8v5S_&@3tp%Yipce2P&hdvFYy43c@+-zBE$@&fu}y1# z`8*z65USRw*s`~Us<_ocBb4I4;lAL$polwexG(73nKaKo$$a0;oqONB=Jsgiu}a^8 z<9qi5K%FQb_Kg}anlF$fO`(-0k<5<1Maw6fX8Z2C);8YvU)#?b%Q+)VTUn?u*G@YTY6pxll zrX)O$v%~-^oWQucOuuoZAaJidvl#UeZxptX0A*I!eS^ zB)q1hNCMZsf$gkhn}mZ}b?NAB9a(mwNy582Y>r(i;eCn{_%I(*6i-X|n4%VRpKyfk zFlW&n(QmFfY&Er}bb~J()Lp)EP`CQVLEZ1D0DEF_3#Pw!(s4}xh?}$|(@6=(@Fhj~ zCH;car%=!Mw>;p8|HuQ*@2@=IeE-3h6v@4$e{u92V*?>92WzA-9IBPV?NFT*1xPKi zbh8zUN2Ty0r8*|4P(YED=uEDPwWnfDRwOP(5l%c2yUGhfO!32wuqJb;pxRTc|M1q1 zn6k@duZA+X4m^M-#h=b3xE}e2|M4vF>UETpa1*S>%5?y)gCNm?F|L-5LwCqEh97}j zj4bpthTH^qxClH1>)iwe1ic;tiC~8U8w!XN7jBYFT)9PYsnWHfz&4eu^%4%KT(OUE zyYj0*7KR!_s*uFJC`wuQN!+K(xqA`e18RoNJel|*Rlzug@L@HRQ4#LKZi~2^Nn%tj z=6rzg5w(P|m~gLJ%2-0UPo2wHO1NKLMrf<4#E+>JoSsJbgbFcECwxj>&R9nHjEXXr z6F#R_GR`18pyG@bgfFTT<4nSrRhn@Yq5bMa>l27yH{lx2pGf?s3D+{8MEsTstC>$G zenl2@)n%*YPOCvKI+M%~+6=LoN9HG0#*aRq z@Ml%USVQ=$s%ESu{9VmqtRwtW&1GCb__wNOv=I(7K!70_?2gaM-q z28}ha-ROfI#!eVA_P{D*AGn1{R{`KPfOiOA1~3o51$uW?Rs?d*5cREsl9u>$afv9^ V4a8LXoF=B@w-0mOctw?g_doiqFf0H7 delta 2063 zcmYk6X;@Tc6oAj?o#h*5&~F9-K`jd{1q}hU0_}PH7fJMk(&iW4m|?m(+?ilNe|39$ ztjuV0+He<8%2qVu@j?TWK>>M<7c5=e+)&?m?qUI+#)}#nbfO@8#OM+? zW=&6h_-3rPQ|UbDhFe3h7P8q9&vfT@0YS4RWp`wn?apLU!kq#F7K^qj2|WU24(Cc( z?-J%Vx>PM;vr9D+wz@P=LZ3_XC2YegwxfEtRlCfY(Z<%$S7x1o$az##tU1103a{F~CV49s?X?rvRVTkx8}3B|M_XpjbE9 zjpXDITkLU@*ki9t*knIWoKB@BJdVr701KW(73)OxG%CxC;dsyLsH5{z3D4`OtrORI zKu0mFOTtS!YLB-`ctuBcJR#vVM~9}355Ix^tW>*%gIcZB(c3z*>=p^{>Zmn-g@pGh zvhl}!NKrB);bV#t=sx8L-RGP|_k}*t)@G}vEv*}T=^}P<;A@w4uOlw%hTollnEl?x zBxZlaKaxmgQWAc~Lo)f0e!=ZisCWF^7~qEg7z5njUjz=GYcnqRA3P;9cS^@`^&Ddd z0WMWZfp5TQu38F@OEpsXkP`7ss})biq`)U-x^tBB1ms(GS892@BOPzC%%l_{T(}*I zuLyt;<3n&Atj-?xSNJ0OA9Br5kzDCvI#xUH{6!j9^<{|JA+~Fng6Wrw^kO)pRvd&MWxNw7H z;>t~mOO>vTMz*M2ZGf;><%;tN`&CdyhGBbCR0T=ggQAc{h{V0Bl)L8>-mfM*%;Sk4 zR8try5Du!TjEZmwyDi{uVG_Gk9p@v2!)hU80pX)+5#vO{5p@n@A>lr?jL=a<#E+?q zIbBTngo-jwB790+!dOE1jEXUq58T1+n=rdM8zp)y&89lJw*Z~8^Zdh)NfLAEG2>@>ayh8XcfJ*!p p=)L8`BAjc6s4o?i^hhWd7l?_vfheTUB2kRrd6?_Q8)^~+{s*fgHqHP5 diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index e576b86..f6f1050 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -18,6 +18,7 @@ tokens { PILHA; BODY; METHOD_DECL; + CONSTR_DECL; PARAMS; } @@ -77,7 +78,7 @@ superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) | '.method' INIT '()' VOID NEWLINE operacao* '.end method' - -> ^(METHOD_DECL INIT ^(BODY operacao*)) + -> ^(CONSTR_DECL INIT ^(BODY operacao*)) | '.method' ID (parametros | '(' parametros ')') ret = tipo NEWLINE operacao* '.end method' -> ^(METHOD_DECL ID $ret parametros ^(BODY operacao*)) ; @@ -90,14 +91,6 @@ parametros )+ -> ^(PARAMS $a)+ ; - -/*parametros - : - ( a = ID - | a = TIPO_REF - )+ - -> ^(PARAMS $a)+ - ;*/ retorno : 'areturn' | 'ireturn' | 'return'; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index c5689f7..14c0088 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -29,7 +29,7 @@ options { } topdown : entraNoCorpoMetodo - | entraNoMetodoInit + | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros @@ -38,6 +38,7 @@ topdown : entraNoCorpoMetodo bottomup : saiDoCorpoMetodo | saiDoMetodo + | saiDoConstrutor | saiDaClasse ; @@ -69,8 +70,8 @@ declaracaoVariavel } ; -entraNoMetodoInit - : ^(METHOD_DECL INIT) +entraNoConstrutor + : ^(CONSTR_DECL INIT .) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); @@ -133,3 +134,11 @@ saiDoMetodo escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } ; + +saiDoConstrutor + : CONSTR_DECL + { + System.out.println("Saindo do construtor: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens index f4d0f3a..c1071fa 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__26=26 T__27=27 T__28=28 T__29=29 @@ -72,99 +71,101 @@ T__96=96 T__97=97 T__98=98 T__99=99 +T__100=100 ARITMETICA=4 BODY=5 -DESVIO=6 -EXTENDS=7 -FIELD_DECL=8 -ID=9 -INIT=10 -INT=11 -INTEIRO=12 -LABEL=13 -LOAD=14 -LOGICA=15 -MEMBRO_CLASSE=16 -METHOD_DECL=17 -NEWLINE=18 -NULL=19 -PARAMS=20 -PILHA=21 -STORE=22 -TIPO_REF=23 -VOID=24 -WS=25 -'('=26 -'()'=27 -')'=28 -'.class'=29 -'.end class'=30 -'.end method'=31 -'.field'=32 -'.method'=33 -'.super'=34 -'/'=35 -':'=36 -'aconst_null'=37 -'aload'=38 -'aload_0'=39 -'aload_1'=40 -'aload_2'=41 -'aload_3'=42 -'areturn'=43 -'astore'=44 -'astore_0'=45 -'astore_1'=46 -'astore_2'=47 -'astore_3'=48 -'dup'=49 -'getfield'=50 -'goto'=51 -'iadd'=52 -'iand'=53 -'iconst_0'=54 -'iconst_1'=55 -'iconst_2'=56 -'iconst_3'=57 -'iconst_4'=58 -'iconst_5'=59 -'iconst_m1'=60 -'idiv'=61 -'if_icmpeq'=62 -'if_icmpge'=63 -'if_icmpgt'=64 -'if_icmple'=65 -'if_icmplt'=66 -'if_icmpne'=67 -'ifeq'=68 -'ifge'=69 -'ifgt'=70 -'ifle'=71 -'iflt'=72 -'ifne'=73 -'iinc'=74 -'iload'=75 -'iload_0'=76 -'iload_1'=77 -'iload_2'=78 -'iload_3'=79 -'imul'=80 -'ineg'=81 -'invokespecial'=82 -'ior'=83 -'irem'=84 -'ireturn'=85 -'istore'=86 -'istore_0'=87 -'istore_1'=88 -'istore_2'=89 -'istore_3'=90 -'isub'=91 -'ixor'=92 -'ldc'=93 -'new'=94 -'nop'=95 -'pop'=96 -'pop2'=97 -'putfield'=98 -'return'=99 +CONSTR_DECL=6 +DESVIO=7 +EXTENDS=8 +FIELD_DECL=9 +ID=10 +INIT=11 +INT=12 +INTEIRO=13 +LABEL=14 +LOAD=15 +LOGICA=16 +MEMBRO_CLASSE=17 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PARAMS=21 +PILHA=22 +STORE=23 +TIPO_REF=24 +VOID=25 +WS=26 +'('=27 +'()'=28 +')'=29 +'.class'=30 +'.end class'=31 +'.end method'=32 +'.field'=33 +'.method'=34 +'.super'=35 +'/'=36 +':'=37 +'aconst_null'=38 +'aload'=39 +'aload_0'=40 +'aload_1'=41 +'aload_2'=42 +'aload_3'=43 +'areturn'=44 +'astore'=45 +'astore_0'=46 +'astore_1'=47 +'astore_2'=48 +'astore_3'=49 +'dup'=50 +'getfield'=51 +'goto'=52 +'iadd'=53 +'iand'=54 +'iconst_0'=55 +'iconst_1'=56 +'iconst_2'=57 +'iconst_3'=58 +'iconst_4'=59 +'iconst_5'=60 +'iconst_m1'=61 +'idiv'=62 +'if_icmpeq'=63 +'if_icmpge'=64 +'if_icmpgt'=65 +'if_icmple'=66 +'if_icmplt'=67 +'if_icmpne'=68 +'ifeq'=69 +'ifge'=70 +'ifgt'=71 +'ifle'=72 +'iflt'=73 +'ifne'=74 +'iinc'=75 +'iload'=76 +'iload_0'=77 +'iload_1'=78 +'iload_2'=79 +'iload_3'=80 +'imul'=81 +'ineg'=82 +'invokespecial'=83 +'ior'=84 +'irem'=85 +'ireturn'=86 +'istore'=87 +'istore_0'=88 +'istore_1'=89 +'istore_2'=90 +'istore_3'=91 +'isub'=92 +'ixor'=93 +'ldc'=94 +'new'=95 +'nop'=96 +'pop'=97 +'pop2'=98 +'putfield'=99 +'return'=100 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class index c6ff1ff60882886ef886e911085c6b922dbf4951..c954d8d10b7f74684f692262c5278c61c34db993 100644 GIT binary patch delta 92 zcmaFI_nvPL0)VyK^D+P_s{mhN!X=UK! wX=4!KX=jk;>0nUe>15F4>0&V8>1HtJ>0z+r>1A-`>6`qQ&4qEoWG8kV0N^DU`~Uy| delta 93 zcmaFQ_l|EvIkUtPLn}iog^>L0)VyK^D+LXOkob5bGliPX?aZD`lW(&A(QIbm{ULkIjX#f3h>X4gd*e8Gir( diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index 0d51518daf7446e6ef545b5c253caa1a3c92804b..bbe19488a9fd3dc41d8527a01544d7fa6c9ad690 100644 GIT binary patch literal 28659 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 ShkN899Y1)-n=tZV+y4iTq0E>7 literal 28621 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 delta 19 acmaFC`hs;s9TTJNM#sr}m~;R~ItEw( diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class index f3c245b568d10a143c8da09a7bfead3afc61d2a7..a9cbc33228234663a234b991dd6d1695c86df015 100644 GIT binary patch delta 19 bcmZo-Yhv3lgNgC!~L3=?DO~L3=?C@UBIOgaEMTm^gp delta 19 acmZ3)x`=gy1ruZ4WJ@L+#)ipdOgaEMOa*!X diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$instrucao_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$instrucao_return.class index 63d8c4913351ddec043690cd10122d2dc530e73b..ce979e04ab7eb7dea18289ceca70f02305793bd9 100644 GIT binary patch delta 19 bcmZ3@x|(%^BNO9?$xci*jGrdgGwA>TLz)JQ delta 19 bcmZ3@x|(%^BNOBM$xci*j2|c0GwA>TLy888 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class index ead6848ddbec1a15dbeb38f73abe5692f57ec8a6..41390580dbebdba105607274e0dfb9fe2fefbe1b 100644 GIT binary patch delta 19 bcmbQwI-hleDHG%6$!1J8j8`WYGwA>TKH>%y delta 19 bcmbQwI-hleDHG$R$!1J8j8`TXGwA>TKGFsg diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index 0026d660ab32cb73911fbd39d13c061f5038108a..6cc9b82e7cf1b5410adb55b4325b4e81e81a5cb6 100644 GIT binary patch delta 19 bcmbQkI)`+jjDIIrGU)&SLe>U@ delta 19 bcmZ3=x|DT;H522n$u>+jjDIFqGU)&SLdFJx diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class index a8ed151949818aaea4714a995485ceffd7135fe5..01800ef28724dbec21b170175438c024a084982b 100644 GIT binary patch delta 19 bcmZ3)x`=gy1ry_!$(BqujNc}gG3fvRL97O5 delta 19 bcmZ3)x`=gy1ry`v$(Bquj9(|0G3fvRL7WC; diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class index 30a346452f1427c319e856db3c32df0914f71b29..b7dd170cd3bc532f407b44dfa534d6bc2aa16e49 100644 GIT binary patch delta 19 acmX@cdW>~L3=?DK~L3=?C<2 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class index b38e9f8deeb00d00039c09c1601d815e9cc0c9b5..82a46eada809b71034726cf86c57e431a23cae70 100644 GIT binary patch delta 19 bcmdnOx`lOv7Zc;m$=*yhjI$?qFzEmQKv)I} delta 19 bcmdnOx`lOv7Zc-*$=*yhjI$~kzOgaEMPz7oL diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index 6c6737fe6a858cfac8ec81948ecc22faee00acfc..bd6b8b6b7b1acd4d494e442137c5890f8b9f8cc4 100644 GIT binary patch delta 19 bcmbQwI-hleDHG$Z$!1J8jCUp%GwA>TKT-xG delta 19 bcmbQwI-hleDHG$($!1J8jJGEjGwA>TKSBl} diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class index f26b1c695923083ffbe62e79b1013a01e7651573..e8a8ff2e881f1b1ee7e56852bd71f8eb1045a690 100644 GIT binary patch delta 19 bcmZ3%x`K6s9TVgH$@WY(j0-2%FzEmQJTJ2C~I delta 19 bcmbQwI-hleDHG%L$!1J8j58+}GwA>TJ0b<0 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class index 9f282121f121617d69fec5c8f1482a5af519134d..4a6afdf9a72fb08034b7cbf7d680c67af05193d0 100644 GIT binary patch delta 19 acmZ3%x`K6s9TQ{TWP2tX#)8Q;OgaEMzy){! delta 19 acmZ3%x`K6s9TQ{jWP2tX#{9`OOgaEMumyGi diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class index a09c569962aaed363d0860173a7542df11b15e9a..11efd112fbbc14b2c0375f91ecb4b65c7e85067b 100644 GIT binary patch delta 19 acmdnUx{-B*I}@YbWDh1AMu*9*OgaEL?gd2v delta 19 acmdnUx{-B*I}@YrWDh1AM*GRFOgaEL-UUMd diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class index b96330b040811722c1c1377843cf84e065932a5a..8064f351ad9a2fe40aaaeba030e8a783e72cf8e8 100644 GIT binary patch delta 19 bcmbQkI)`*m*wtQy%tSo>;M$ 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

{=)te@2UnGjUkkh@lEA0p|Va-HJXrW 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 b)`}l8n-oqFxbbGnX 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 E0d-vl;Q#;t literal 18047 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 literal 23892 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 UPVzRn1&EKw#7X#o>~_Zf2YmD9FaQ7m diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens index f4d0f3a..c1071fa 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__26=26 T__27=27 T__28=28 T__29=29 @@ -72,99 +71,101 @@ T__96=96 T__97=97 T__98=98 T__99=99 +T__100=100 ARITMETICA=4 BODY=5 -DESVIO=6 -EXTENDS=7 -FIELD_DECL=8 -ID=9 -INIT=10 -INT=11 -INTEIRO=12 -LABEL=13 -LOAD=14 -LOGICA=15 -MEMBRO_CLASSE=16 -METHOD_DECL=17 -NEWLINE=18 -NULL=19 -PARAMS=20 -PILHA=21 -STORE=22 -TIPO_REF=23 -VOID=24 -WS=25 -'('=26 -'()'=27 -')'=28 -'.class'=29 -'.end class'=30 -'.end method'=31 -'.field'=32 -'.method'=33 -'.super'=34 -'/'=35 -':'=36 -'aconst_null'=37 -'aload'=38 -'aload_0'=39 -'aload_1'=40 -'aload_2'=41 -'aload_3'=42 -'areturn'=43 -'astore'=44 -'astore_0'=45 -'astore_1'=46 -'astore_2'=47 -'astore_3'=48 -'dup'=49 -'getfield'=50 -'goto'=51 -'iadd'=52 -'iand'=53 -'iconst_0'=54 -'iconst_1'=55 -'iconst_2'=56 -'iconst_3'=57 -'iconst_4'=58 -'iconst_5'=59 -'iconst_m1'=60 -'idiv'=61 -'if_icmpeq'=62 -'if_icmpge'=63 -'if_icmpgt'=64 -'if_icmple'=65 -'if_icmplt'=66 -'if_icmpne'=67 -'ifeq'=68 -'ifge'=69 -'ifgt'=70 -'ifle'=71 -'iflt'=72 -'ifne'=73 -'iinc'=74 -'iload'=75 -'iload_0'=76 -'iload_1'=77 -'iload_2'=78 -'iload_3'=79 -'imul'=80 -'ineg'=81 -'invokespecial'=82 -'ior'=83 -'irem'=84 -'ireturn'=85 -'istore'=86 -'istore_0'=87 -'istore_1'=88 -'istore_2'=89 -'istore_3'=90 -'isub'=91 -'ixor'=92 -'ldc'=93 -'new'=94 -'nop'=95 -'pop'=96 -'pop2'=97 -'putfield'=98 -'return'=99 +CONSTR_DECL=6 +DESVIO=7 +EXTENDS=8 +FIELD_DECL=9 +ID=10 +INIT=11 +INT=12 +INTEIRO=13 +LABEL=14 +LOAD=15 +LOGICA=16 +MEMBRO_CLASSE=17 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PARAMS=21 +PILHA=22 +STORE=23 +TIPO_REF=24 +VOID=25 +WS=26 +'('=27 +'()'=28 +')'=29 +'.class'=30 +'.end class'=31 +'.end method'=32 +'.field'=33 +'.method'=34 +'.super'=35 +'/'=36 +':'=37 +'aconst_null'=38 +'aload'=39 +'aload_0'=40 +'aload_1'=41 +'aload_2'=42 +'aload_3'=43 +'areturn'=44 +'astore'=45 +'astore_0'=46 +'astore_1'=47 +'astore_2'=48 +'astore_3'=49 +'dup'=50 +'getfield'=51 +'goto'=52 +'iadd'=53 +'iand'=54 +'iconst_0'=55 +'iconst_1'=56 +'iconst_2'=57 +'iconst_3'=58 +'iconst_4'=59 +'iconst_5'=60 +'iconst_m1'=61 +'idiv'=62 +'if_icmpeq'=63 +'if_icmpge'=64 +'if_icmpgt'=65 +'if_icmple'=66 +'if_icmplt'=67 +'if_icmpne'=68 +'ifeq'=69 +'ifge'=70 +'ifgt'=71 +'ifle'=72 +'iflt'=73 +'ifne'=74 +'iinc'=75 +'iload'=76 +'iload_0'=77 +'iload_1'=78 +'iload_2'=79 +'iload_3'=80 +'imul'=81 +'ineg'=82 +'invokespecial'=83 +'ior'=84 +'irem'=85 +'ireturn'=86 +'istore'=87 +'istore_0'=88 +'istore_1'=89 +'istore_2'=90 +'istore_3'=91 +'isub'=92 +'ixor'=93 +'ldc'=94 +'new'=95 +'nop'=96 +'pop'=97 +'pop2'=98 +'putfield'=99 +'return'=100 diff --git a/classes/Teste.class b/classes/Teste.class index 150dab6..ad14f32 100644 --- a/classes/Teste.class +++ b/classes/Teste.class @@ -1,4 +1,7 @@ .class Teste .field abc I .field xyz I +.method () V + return +.end method .end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index e576b86..f6f1050 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -18,6 +18,7 @@ tokens { PILHA; BODY; METHOD_DECL; + CONSTR_DECL; PARAMS; } @@ -77,7 +78,7 @@ superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) | '.method' INIT '()' VOID NEWLINE operacao* '.end method' - -> ^(METHOD_DECL INIT ^(BODY operacao*)) + -> ^(CONSTR_DECL INIT ^(BODY operacao*)) | '.method' ID (parametros | '(' parametros ')') ret = tipo NEWLINE operacao* '.end method' -> ^(METHOD_DECL ID $ret parametros ^(BODY operacao*)) ; @@ -90,14 +91,6 @@ parametros )+ -> ^(PARAMS $a)+ ; - -/*parametros - : - ( a = ID - | a = TIPO_REF - )+ - -> ^(PARAMS $a)+ - ;*/ retorno : 'areturn' | 'ireturn' | 'return'; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index c5689f7..14c0088 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -29,7 +29,7 @@ options { } topdown : entraNoCorpoMetodo - | entraNoMetodoInit + | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros @@ -38,6 +38,7 @@ topdown : entraNoCorpoMetodo bottomup : saiDoCorpoMetodo | saiDoMetodo + | saiDoConstrutor | saiDaClasse ; @@ -69,8 +70,8 @@ declaracaoVariavel } ; -entraNoMetodoInit - : ^(METHOD_DECL INIT) +entraNoConstrutor + : ^(CONSTR_DECL INIT .) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); @@ -133,3 +134,11 @@ saiDoMetodo escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } ; + +saiDoConstrutor + : CONSTR_DECL + { + System.out.println("Saindo do construtor: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + ; diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index f4d0f3a..c1071fa 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__26=26 T__27=27 T__28=28 T__29=29 @@ -72,99 +71,101 @@ T__96=96 T__97=97 T__98=98 T__99=99 +T__100=100 ARITMETICA=4 BODY=5 -DESVIO=6 -EXTENDS=7 -FIELD_DECL=8 -ID=9 -INIT=10 -INT=11 -INTEIRO=12 -LABEL=13 -LOAD=14 -LOGICA=15 -MEMBRO_CLASSE=16 -METHOD_DECL=17 -NEWLINE=18 -NULL=19 -PARAMS=20 -PILHA=21 -STORE=22 -TIPO_REF=23 -VOID=24 -WS=25 -'('=26 -'()'=27 -')'=28 -'.class'=29 -'.end class'=30 -'.end method'=31 -'.field'=32 -'.method'=33 -'.super'=34 -'/'=35 -':'=36 -'aconst_null'=37 -'aload'=38 -'aload_0'=39 -'aload_1'=40 -'aload_2'=41 -'aload_3'=42 -'areturn'=43 -'astore'=44 -'astore_0'=45 -'astore_1'=46 -'astore_2'=47 -'astore_3'=48 -'dup'=49 -'getfield'=50 -'goto'=51 -'iadd'=52 -'iand'=53 -'iconst_0'=54 -'iconst_1'=55 -'iconst_2'=56 -'iconst_3'=57 -'iconst_4'=58 -'iconst_5'=59 -'iconst_m1'=60 -'idiv'=61 -'if_icmpeq'=62 -'if_icmpge'=63 -'if_icmpgt'=64 -'if_icmple'=65 -'if_icmplt'=66 -'if_icmpne'=67 -'ifeq'=68 -'ifge'=69 -'ifgt'=70 -'ifle'=71 -'iflt'=72 -'ifne'=73 -'iinc'=74 -'iload'=75 -'iload_0'=76 -'iload_1'=77 -'iload_2'=78 -'iload_3'=79 -'imul'=80 -'ineg'=81 -'invokespecial'=82 -'ior'=83 -'irem'=84 -'ireturn'=85 -'istore'=86 -'istore_0'=87 -'istore_1'=88 -'istore_2'=89 -'istore_3'=90 -'isub'=91 -'ixor'=92 -'ldc'=93 -'new'=94 -'nop'=95 -'pop'=96 -'pop2'=97 -'putfield'=98 -'return'=99 +CONSTR_DECL=6 +DESVIO=7 +EXTENDS=8 +FIELD_DECL=9 +ID=10 +INIT=11 +INT=12 +INTEIRO=13 +LABEL=14 +LOAD=15 +LOGICA=16 +MEMBRO_CLASSE=17 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PARAMS=21 +PILHA=22 +STORE=23 +TIPO_REF=24 +VOID=25 +WS=26 +'('=27 +'()'=28 +')'=29 +'.class'=30 +'.end class'=31 +'.end method'=32 +'.field'=33 +'.method'=34 +'.super'=35 +'/'=36 +':'=37 +'aconst_null'=38 +'aload'=39 +'aload_0'=40 +'aload_1'=41 +'aload_2'=42 +'aload_3'=43 +'areturn'=44 +'astore'=45 +'astore_0'=46 +'astore_1'=47 +'astore_2'=48 +'astore_3'=49 +'dup'=50 +'getfield'=51 +'goto'=52 +'iadd'=53 +'iand'=54 +'iconst_0'=55 +'iconst_1'=56 +'iconst_2'=57 +'iconst_3'=58 +'iconst_4'=59 +'iconst_5'=60 +'iconst_m1'=61 +'idiv'=62 +'if_icmpeq'=63 +'if_icmpge'=64 +'if_icmpgt'=65 +'if_icmple'=66 +'if_icmplt'=67 +'if_icmpne'=68 +'ifeq'=69 +'ifge'=70 +'ifgt'=71 +'ifle'=72 +'iflt'=73 +'ifne'=74 +'iinc'=75 +'iload'=76 +'iload_0'=77 +'iload_1'=78 +'iload_2'=79 +'iload_3'=80 +'imul'=81 +'ineg'=82 +'invokespecial'=83 +'ior'=84 +'irem'=85 +'ireturn'=86 +'istore'=87 +'istore_0'=88 +'istore_1'=89 +'istore_2'=90 +'istore_3'=91 +'isub'=92 +'ixor'=93 +'ldc'=94 +'new'=95 +'nop'=96 +'pop'=97 +'pop2'=98 +'putfield'=99 +'return'=100 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 5b36ffd..a5cf2db 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 18:58:35 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 21:01:21 package br.ufpb.iged.interpretador.parser; @@ -11,7 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; public static final int T__29=29; @@ -85,28 +84,30 @@ public class AssemblerLexer extends Lexer { public static final int T__97=97; public static final int T__98=98; public static final int T__99=99; + public static final int T__100=100; public static final int ARITMETICA=4; public static final int BODY=5; - public static final int DESVIO=6; - public static final int EXTENDS=7; - public static final int FIELD_DECL=8; - public static final int ID=9; - public static final int INIT=10; - public static final int INT=11; - public static final int INTEIRO=12; - public static final int LABEL=13; - public static final int LOAD=14; - public static final int LOGICA=15; - public static final int MEMBRO_CLASSE=16; - public static final int METHOD_DECL=17; - public static final int NEWLINE=18; - public static final int NULL=19; - public static final int PARAMS=20; - public static final int PILHA=21; - public static final int STORE=22; - public static final int TIPO_REF=23; - public static final int VOID=24; - public static final int WS=25; + public static final int CONSTR_DECL=6; + public static final int DESVIO=7; + public static final int EXTENDS=8; + public static final int FIELD_DECL=9; + public static final int ID=10; + public static final int INIT=11; + public static final int INT=12; + public static final int INTEIRO=13; + public static final int LABEL=14; + public static final int LOAD=15; + public static final int LOGICA=16; + public static final int MEMBRO_CLASSE=17; + public static final int METHOD_DECL=18; + public static final int NEWLINE=19; + public static final int NULL=20; + public static final int PARAMS=21; + public static final int PILHA=22; + public static final int STORE=23; + public static final int TIPO_REF=24; + public static final int VOID=25; + public static final int WS=26; // delegates // delegators @@ -123,10 +124,10 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__26" - public final void mT__26() throws RecognitionException { + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { try { - int _type = T__26; + int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' @@ -142,12 +143,12 @@ public final void mT__26() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__26" + // $ANTLR end "T__27" - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { try { - int _type = T__27; + int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' @@ -156,27 +157,6 @@ public final void mT__27() throws RecognitionException { - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__27" - - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { - try { - int _type = T__28; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' - { - match(')'); - } state.type = _type; @@ -193,12 +173,10 @@ public final void mT__29() throws RecognitionException { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' { - match(".class"); - - + match(')'); } @@ -216,10 +194,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' { - match(".end class"); + match(".class"); @@ -239,10 +217,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' { - match(".end method"); + match(".end class"); @@ -262,10 +240,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' { - match(".field"); + match(".end method"); @@ -285,10 +263,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' { - match(".method"); + match(".field"); @@ -308,10 +286,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.super' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.super' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.method' { - match(".super"); + match(".method"); @@ -331,10 +309,12 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '/' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.super' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.super' { - match('/'); + match(".super"); + + } @@ -352,10 +332,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( ':' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '/' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '/' { - match(':'); + match('/'); } @@ -373,12 +353,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( ':' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ':' { - match("aconst_null"); - - + match(':'); } @@ -396,10 +374,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aconst_null' { - match("aload"); + match("aconst_null"); @@ -419,10 +397,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload' { - match("aload_0"); + match("aload"); @@ -442,10 +420,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_0' { - match("aload_1"); + match("aload_0"); @@ -465,10 +443,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_1' { - match("aload_2"); + match("aload_1"); @@ -488,10 +466,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_2' { - match("aload_3"); + match("aload_2"); @@ -511,10 +489,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'areturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_3' { - match("areturn"); + match("aload_3"); @@ -534,10 +512,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'areturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'areturn' { - match("astore"); + match("areturn"); @@ -557,10 +535,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore' { - match("astore_0"); + match("astore"); @@ -580,10 +558,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_0' { - match("astore_1"); + match("astore_0"); @@ -603,10 +581,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_1' { - match("astore_2"); + match("astore_1"); @@ -626,10 +604,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_2' { - match("astore_3"); + match("astore_2"); @@ -649,10 +627,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'dup' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_3' { - match("dup"); + match("astore_3"); @@ -672,10 +650,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'dup' { - match("getfield"); + match("dup"); @@ -695,10 +673,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'goto' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'goto' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'getfield' { - match("goto"); + match("getfield"); @@ -718,10 +696,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iadd' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'goto' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'goto' { - match("iadd"); + match("goto"); @@ -741,10 +719,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iand' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iadd' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iadd' { - match("iand"); + match("iadd"); @@ -764,10 +742,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iand' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iand' { - match("iconst_0"); + match("iand"); @@ -787,10 +765,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_0' { - match("iconst_1"); + match("iconst_0"); @@ -810,10 +788,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_1' { - match("iconst_2"); + match("iconst_1"); @@ -833,10 +811,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_2' { - match("iconst_3"); + match("iconst_2"); @@ -856,10 +834,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_3' { - match("iconst_4"); + match("iconst_3"); @@ -879,10 +857,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_4' { - match("iconst_5"); + match("iconst_4"); @@ -902,10 +880,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_5' { - match("iconst_m1"); + match("iconst_5"); @@ -925,10 +903,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'idiv' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_m1' { - match("idiv"); + match("iconst_m1"); @@ -948,10 +926,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmpeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'idiv' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'idiv' { - match("if_icmpeq"); + match("idiv"); @@ -971,10 +949,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmpeq' { - match("if_icmpge"); + match("if_icmpeq"); @@ -994,10 +972,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpge' { - match("if_icmpgt"); + match("if_icmpge"); @@ -1017,10 +995,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmple' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpgt' { - match("if_icmple"); + match("if_icmpgt"); @@ -1040,10 +1018,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmplt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmple' { - match("if_icmplt"); + match("if_icmple"); @@ -1063,10 +1041,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmpne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmplt' { - match("if_icmpne"); + match("if_icmplt"); @@ -1086,10 +1064,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ifeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmpne' { - match("ifeq"); + match("if_icmpne"); @@ -1109,10 +1087,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ifeq' { - match("ifge"); + match("ifeq"); @@ -1132,10 +1110,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifge' { - match("ifgt"); + match("ifge"); @@ -1155,10 +1133,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifle' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifle' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifgt' { - match("ifle"); + match("ifgt"); @@ -1178,10 +1156,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iflt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iflt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifle' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifle' { - match("iflt"); + match("ifle"); @@ -1201,10 +1179,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iflt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iflt' { - match("ifne"); + match("iflt"); @@ -1224,10 +1202,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iinc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifne' { - match("iinc"); + match("ifne"); @@ -1247,10 +1225,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iinc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iinc' { - match("iload"); + match("iinc"); @@ -1270,10 +1248,10 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload' { - match("iload_0"); + match("iload"); @@ -1293,10 +1271,10 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload_0' { - match("iload_1"); + match("iload_0"); @@ -1316,10 +1294,10 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload_1' { - match("iload_2"); + match("iload_1"); @@ -1339,10 +1317,10 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_2' { - match("iload_3"); + match("iload_2"); @@ -1362,10 +1340,10 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'imul' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_3' { - match("imul"); + match("iload_3"); @@ -1385,10 +1363,10 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'ineg' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'imul' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'imul' { - match("ineg"); + match("imul"); @@ -1408,10 +1386,10 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'ineg' { - match("invokespecial"); + match("ineg"); @@ -1431,10 +1409,10 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ior' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'invokespecial' { - match("ior"); + match("invokespecial"); @@ -1453,11 +1431,11 @@ public final void mT__83() throws RecognitionException { public final void mT__84() throws RecognitionException { try { int _type = T__84; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'irem' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'irem' + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ior' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ior' { - match("irem"); + match("ior"); @@ -1477,10 +1455,10 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ireturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'irem' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'irem' { - match("ireturn"); + match("irem"); @@ -1500,10 +1478,10 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'istore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'istore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ireturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ireturn' { - match("istore"); + match("ireturn"); @@ -1523,10 +1501,10 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'istore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'istore' { - match("istore_0"); + match("istore"); @@ -1546,10 +1524,10 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'istore_0' { - match("istore_1"); + match("istore_0"); @@ -1569,10 +1547,10 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'istore_1' { - match("istore_2"); + match("istore_1"); @@ -1592,10 +1570,10 @@ public final void mT__90() throws RecognitionException { try { int _type = T__90; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore_2' { - match("istore_3"); + match("istore_2"); @@ -1615,10 +1593,10 @@ public final void mT__91() throws RecognitionException { try { int _type = T__91; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'isub' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_3' { - match("isub"); + match("istore_3"); @@ -1638,10 +1616,10 @@ public final void mT__92() throws RecognitionException { try { int _type = T__92; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'ixor' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'isub' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'isub' { - match("ixor"); + match("isub"); @@ -1661,10 +1639,10 @@ public final void mT__93() throws RecognitionException { try { int _type = T__93; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'ldc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'ldc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'ixor' { - match("ldc"); + match("ixor"); @@ -1684,10 +1662,10 @@ public final void mT__94() throws RecognitionException { try { int _type = T__94; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'new' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'new' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'ldc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'ldc' { - match("new"); + match("ldc"); @@ -1707,10 +1685,10 @@ public final void mT__95() throws RecognitionException { try { int _type = T__95; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'nop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'new' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'new' { - match("nop"); + match("new"); @@ -1730,10 +1708,10 @@ public final void mT__96() throws RecognitionException { try { int _type = T__96; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: ( 'pop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:9: 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'nop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'nop' { - match("pop"); + match("nop"); @@ -1753,10 +1731,10 @@ public final void mT__97() throws RecognitionException { try { int _type = T__97; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: ( 'pop2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:9: 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: ( 'pop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:9: 'pop' { - match("pop2"); + match("pop"); @@ -1776,10 +1754,10 @@ public final void mT__98() throws RecognitionException { try { int _type = T__98; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:9: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: ( 'pop2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:9: 'pop2' { - match("putfield"); + match("pop2"); @@ -1799,10 +1777,10 @@ public final void mT__99() throws RecognitionException { try { int _type = T__99; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: ( 'return' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:9: 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:9: 'putfield' { - match("return"); + match("putfield"); @@ -1817,13 +1795,36 @@ public final void mT__99() throws RecognitionException { } // $ANTLR end "T__99" + // $ANTLR start "T__100" + public final void mT__100() throws RecognitionException { + try { + int _type = T__100; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: ( 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: 'return' + { + match("return"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__100" + // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:8: '' { match(""); @@ -1845,8 +1846,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:7: 'I' { match('I'); @@ -1866,8 +1867,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: 'V' { match('V'); @@ -1887,10 +1888,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -1909,7 +1910,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:9: 'null' { match("null"); @@ -1918,7 +1919,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:18: 'NULL' { match("NULL"); @@ -1946,10 +1947,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1958,7 +1959,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: '-' { match('-'); @@ -1968,7 +1969,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2023,15 +2024,15 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:11: 'L' ID ( '/' ID )* { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:18: ( '/' ID )* loop4: do { int alt4=2; @@ -2044,7 +2045,7 @@ public final void mTIPO_REF() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:19: '/' ID { match('/'); @@ -2076,8 +2077,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2089,7 +2090,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop5: do { int alt5=2; @@ -2139,8 +2140,8 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:9: ( '\\n' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:238:9: ( '\\n' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:238:11: '\\n' { match('\n'); @@ -2160,8 +2161,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:240:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:240:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2187,604 +2188,604 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) int alt6=83; alt6 = dfa6.predict(input); switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__26 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__27 { - mT__26(); + mT__27(); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__27 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__28 { - mT__27(); + mT__28(); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__28 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__29 { - mT__28(); + mT__29(); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__29 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__30 { - mT__29(); + mT__30(); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__30 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__31 { - mT__30(); + mT__31(); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__31 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__32 { - mT__31(); + mT__32(); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__32 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__33 { - mT__32(); + mT__33(); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__33 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__34 { - mT__33(); + mT__34(); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__34 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__35 { - mT__34(); + mT__35(); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__35 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__36 { - mT__35(); + mT__36(); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__36 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__37 { - mT__36(); + mT__37(); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__37 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__38 { - mT__37(); + mT__38(); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__38 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__39 { - mT__38(); + mT__39(); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__39 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__40 { - mT__39(); + mT__40(); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__40 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__41 { - mT__40(); + mT__41(); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__41 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__42 { - mT__41(); + mT__42(); } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__42 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__43 { - mT__42(); + mT__43(); } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__43 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__44 { - mT__43(); + mT__44(); } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__44 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__45 { - mT__44(); + mT__45(); } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__45 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__46 { - mT__45(); + mT__46(); } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__46 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__47 { - mT__46(); + mT__47(); } break; case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__47 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__48 { - mT__47(); + mT__48(); } break; case 23 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__48 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__49 { - mT__48(); + mT__49(); } break; case 24 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__49 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__50 { - mT__49(); + mT__50(); } break; case 25 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__50 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__51 { - mT__50(); + mT__51(); } break; case 26 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__51 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__52 { - mT__51(); + mT__52(); } break; case 27 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__52 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__53 { - mT__52(); + mT__53(); } break; case 28 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__53 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__54 { - mT__53(); + mT__54(); } break; case 29 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__54 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__55 { - mT__54(); + mT__55(); } break; case 30 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__55 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__56 { - mT__55(); + mT__56(); } break; case 31 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__56 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__57 { - mT__56(); + mT__57(); } break; case 32 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__57 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__58 { - mT__57(); + mT__58(); } break; case 33 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__58 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__59 { - mT__58(); + mT__59(); } break; case 34 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__59 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__60 { - mT__59(); + mT__60(); } break; case 35 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__60 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__61 { - mT__60(); + mT__61(); } break; case 36 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__61 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__62 { - mT__61(); + mT__62(); } break; case 37 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__62 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__63 { - mT__62(); + mT__63(); } break; case 38 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__63 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__64 { - mT__63(); + mT__64(); } break; case 39 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__64 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__65 { - mT__64(); + mT__65(); } break; case 40 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__65 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__66 { - mT__65(); + mT__66(); } break; case 41 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__66 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__67 { - mT__66(); + mT__67(); } break; case 42 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__67 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__68 { - mT__67(); + mT__68(); } break; case 43 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__68 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__69 { - mT__68(); + mT__69(); } break; case 44 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__69 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__70 { - mT__69(); + mT__70(); } break; case 45 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__70 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__71 { - mT__70(); + mT__71(); } break; case 46 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__71 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__72 { - mT__71(); + mT__72(); } break; case 47 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__72 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__73 { - mT__72(); + mT__73(); } break; case 48 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__73 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__74 { - mT__73(); + mT__74(); } break; case 49 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__74 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__75 { - mT__74(); + mT__75(); } break; case 50 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__75 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__76 { - mT__75(); + mT__76(); } break; case 51 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__76 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__77 { - mT__76(); + mT__77(); } break; case 52 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__77 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__78 { - mT__77(); + mT__78(); } break; case 53 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__78 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__79 { - mT__78(); + mT__79(); } break; case 54 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__79 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__80 { - mT__79(); + mT__80(); } break; case 55 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__80 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__81 { - mT__80(); + mT__81(); } break; case 56 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__81 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__82 { - mT__81(); + mT__82(); } break; case 57 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__82 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__83 { - mT__82(); + mT__83(); } break; case 58 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__83 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__84 { - mT__83(); + mT__84(); } break; case 59 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__84 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__85 { - mT__84(); + mT__85(); } break; case 60 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__85 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__86 { - mT__85(); + mT__86(); } break; case 61 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__86 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__87 { - mT__86(); + mT__87(); } break; case 62 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__87 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__88 { - mT__87(); + mT__88(); } break; case 63 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__88 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__89 { - mT__88(); + mT__89(); } break; case 64 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__89 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__90 { - mT__89(); + mT__90(); } break; case 65 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__90 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__91 { - mT__90(); + mT__91(); } break; case 66 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__91 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__92 { - mT__91(); + mT__92(); } break; case 67 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__92 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__93 { - mT__92(); + mT__93(); } break; case 68 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__93 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__94 { - mT__93(); + mT__94(); } break; case 69 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__94 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__95 { - mT__94(); + mT__95(); } break; case 70 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__95 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__96 { - mT__95(); + mT__96(); } break; case 71 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__96 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__97 { - mT__96(); + mT__97(); } break; case 72 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:436: T__97 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:436: T__98 { - mT__97(); + mT__98(); } break; case 73 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:442: T__98 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:442: T__99 { - mT__98(); + mT__99(); } break; case 74 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:448: T__99 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:448: T__100 { - mT__99(); + mT__100(); } break; case 75 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:454: INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:455: INIT { mINIT(); @@ -2792,7 +2793,7 @@ public void mTokens() throws RecognitionException { } break; case 76 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:459: INT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:460: INT { mINT(); @@ -2800,7 +2801,7 @@ public void mTokens() throws RecognitionException { } break; case 77 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:463: VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:464: VOID { mVOID(); @@ -2808,7 +2809,7 @@ public void mTokens() throws RecognitionException { } break; case 78 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:468: NULL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:469: NULL { mNULL(); @@ -2816,7 +2817,7 @@ public void mTokens() throws RecognitionException { } break; case 79 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:473: INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:474: INTEIRO { mINTEIRO(); @@ -2824,7 +2825,7 @@ public void mTokens() throws RecognitionException { } break; case 80 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:481: TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:482: TIPO_REF { mTIPO_REF(); @@ -2832,7 +2833,7 @@ public void mTokens() throws RecognitionException { } break; case 81 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:490: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:491: ID { mID(); @@ -2840,7 +2841,7 @@ public void mTokens() throws RecognitionException { } break; case 82 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:493: NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:494: NEWLINE { mNEWLINE(); @@ -2848,7 +2849,7 @@ public void mTokens() throws RecognitionException { } break; case 83 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:501: WS + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:502: WS { mWS(); @@ -3212,7 +3213,7 @@ public DFA6(BaseRecognizer recognizer) { this.transition = DFA6_transition; } public String getDescription() { - return "1:1: Tokens : ( T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; + return "1:1: Tokens : ( T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 5eb956e..273a0af 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 18:58:34 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 21:01:20 package br.ufpb.iged.interpretador.parser; @@ -18,11 +18,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; public static final int T__29=29; @@ -96,28 +95,30 @@ public abstract class AssemblerParser extends Parser { public static final int T__97=97; public static final int T__98=98; public static final int T__99=99; + public static final int T__100=100; public static final int ARITMETICA=4; public static final int BODY=5; - public static final int DESVIO=6; - public static final int EXTENDS=7; - public static final int FIELD_DECL=8; - public static final int ID=9; - public static final int INIT=10; - public static final int INT=11; - public static final int INTEIRO=12; - public static final int LABEL=13; - public static final int LOAD=14; - public static final int LOGICA=15; - public static final int MEMBRO_CLASSE=16; - public static final int METHOD_DECL=17; - public static final int NEWLINE=18; - public static final int NULL=19; - public static final int PARAMS=20; - public static final int PILHA=21; - public static final int STORE=22; - public static final int TIPO_REF=23; - public static final int VOID=24; - public static final int WS=25; + public static final int CONSTR_DECL=6; + public static final int DESVIO=7; + public static final int EXTENDS=8; + public static final int FIELD_DECL=9; + public static final int ID=10; + public static final int INIT=11; + public static final int INT=12; + public static final int INTEIRO=13; + public static final int LABEL=14; + public static final int LOAD=15; + public static final int LOGICA=16; + public static final int MEMBRO_CLASSE=17; + public static final int METHOD_DECL=18; + public static final int NEWLINE=19; + public static final int NULL=20; + public static final int PARAMS=21; + public static final int PILHA=22; + public static final int STORE=23; + public static final int TIPO_REF=24; + public static final int VOID=25; + public static final int WS=26; // delegates public Parser[] getDelegates() { @@ -162,7 +163,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:1: programa : ( instrucao )* ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: programa : ( instrucao )* ; public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -175,28 +176,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:10: ( ( instrucao )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:12: ( instrucao )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:12: ( instrucao )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==29||(LA1_0 >= 37 && LA1_0 <= 99)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==30||(LA1_0 >= 38 && LA1_0 <= 100)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:12: instrucao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:12: instrucao { - pushFollow(FOLLOW_instrucao_in_programa122); + pushFollow(FOLLOW_instrucao_in_programa127); instrucao1=instrucao(); state._fsp--; @@ -243,7 +244,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -260,14 +261,14 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST string_literal4_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:11: ( operacao | definicaoClasse ( '.end class' )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:11: ( operacao | definicaoClasse ( '.end class' )? ) int alt3=2; int LA3_0 = input.LA(1); - if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 37 && LA3_0 <= 99)) ) { + if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 38 && LA3_0 <= 100)) ) { alt3=1; } - else if ( (LA3_0==29) ) { + else if ( (LA3_0==30) ) { alt3=2; } else { @@ -279,12 +280,12 @@ else if ( (LA3_0==29) ) { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:13: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:13: operacao { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_operacao_in_instrucao150); + pushFollow(FOLLOW_operacao_in_instrucao155); operacao2=operacao(); state._fsp--; @@ -294,30 +295,30 @@ else if ( (LA3_0==29) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:13: definicaoClasse ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:13: definicaoClasse ( '.end class' )? { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_definicaoClasse_in_instrucao164); + pushFollow(FOLLOW_definicaoClasse_in_instrucao169); definicaoClasse3=definicaoClasse(); state._fsp--; adaptor.addChild(root_0, definicaoClasse3.getTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:29: ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:29: ( '.end class' )? int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==30) ) { + if ( (LA2_0==31) ) { alt2=1; } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:30: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:30: '.end class' { - string_literal4=(Token)match(input,30,FOLLOW_30_in_instrucao167); + string_literal4=(Token)match(input,31,FOLLOW_31_in_instrucao172); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -363,7 +364,7 @@ public static class operacao_return extends ParserRuleReturnScope { // $ANTLR start "operacao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: operacao : ( label comando | comando ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: operacao : ( label comando | comando ) ; public final AssemblerParser.operacao_return operacao() throws RecognitionException { AssemblerParser.operacao_return retval = new AssemblerParser.operacao_return(); retval.start = input.LT(1); @@ -380,20 +381,20 @@ public final AssemblerParser.operacao_return operacao() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:10: ( ( label comando | comando ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:10: ( ( label comando | comando ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:12: ( label comando | comando ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:12: ( label comando | comando ) int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==ID) ) { alt4=1; } - else if ( (LA4_0==NEWLINE||(LA4_0 >= 37 && LA4_0 <= 99)) ) { + else if ( (LA4_0==NEWLINE||(LA4_0 >= 38 && LA4_0 <= 100)) ) { alt4=2; } else { @@ -405,16 +406,16 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 37 && LA4_0 <= 99)) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:13: label comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:13: label comando { - pushFollow(FOLLOW_label_in_operacao189); + pushFollow(FOLLOW_label_in_operacao194); label5=label(); state._fsp--; adaptor.addChild(root_0, label5.getTree()); - pushFollow(FOLLOW_comando_in_operacao191); + pushFollow(FOLLOW_comando_in_operacao196); comando6=comando(); state._fsp--; @@ -424,9 +425,9 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 37 && LA4_0 <= 99)) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:29: comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:29: comando { - pushFollow(FOLLOW_comando_in_operacao195); + pushFollow(FOLLOW_comando_in_operacao200); comando7=comando(); state._fsp--; @@ -470,7 +471,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: label : a= ID ':' -> ^( LABEL $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: label : a= ID ':' -> ^( LABEL $a) ; public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -484,18 +485,18 @@ public final AssemblerParser.label_return label() throws RecognitionException { BytecodesAST a_tree=null; BytecodesAST char_literal8_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: (a= ID ':' -> ^( LABEL $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: a= ID ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label217); + a=(Token)match(input,ID,FOLLOW_ID_in_label222); stream_ID.add(a); - char_literal8=(Token)match(input,36,FOLLOW_36_in_label219); - stream_36.add(char_literal8); + char_literal8=(Token)match(input,37,FOLLOW_37_in_label224); + stream_37.add(char_literal8); // AST REWRITE @@ -510,9 +511,9 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 55:20: -> ^( LABEL $a) + // 56:20: -> ^( LABEL $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:23: ^( LABEL $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:23: ^( LABEL $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -560,7 +561,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -595,81 +596,80 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio BytecodesAST NEWLINE20_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? int alt5=12; switch ( input.LA(1) ) { - case 50: - case 82: - case 94: - case 98: + case 51: + case 83: + case 95: + case 99: { alt5=1; } break; - case 52: - case 61: - case 74: - case 80: + case 53: + case 62: + case 75: case 81: - case 84: - case 91: + case 82: + case 85: + case 92: { alt5=2; } break; - case 37: - case 39: + case 38: case 40: case 41: case 42: - case 54: + case 43: case 55: case 56: case 57: case 58: case 59: case 60: - case 76: + case 61: case 77: case 78: case 79: + case 80: { alt5=3; } break; - case 38: - case 75: - case 93: + case 39: + case 76: + case 94: { alt5=4; } break; - case 45: case 46: case 47: case 48: - case 87: + case 49: case 88: case 89: case 90: + case 91: { alt5=5; } break; - case 44: - case 86: + case 45: + case 87: { alt5=6; } break; - case 51: - case 62: + case 52: case 63: case 64: case 65: @@ -681,32 +681,33 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio case 71: case 72: case 73: + case 74: { alt5=7; } break; - case 53: - case 83: - case 92: + case 54: + case 84: + case 93: { alt5=8; } break; - case 49: - case 96: + case 50: case 97: + case 98: { alt5=9; } break; - case 43: - case 85: - case 99: + case 44: + case 86: + case 100: { alt5=10; } break; - case 95: + case 96: { alt5=11; } @@ -715,9 +716,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:12: manipulacaoObjetos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:12: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_comando237); + pushFollow(FOLLOW_manipulacaoObjetos_in_comando242); manipulacaoObjetos9=manipulacaoObjetos(); state._fsp--; @@ -727,9 +728,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:17: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: aritmetica { - pushFollow(FOLLOW_aritmetica_in_comando255); + pushFollow(FOLLOW_aritmetica_in_comando260); aritmetica10=aritmetica(); state._fsp--; @@ -739,9 +740,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: load { - pushFollow(FOLLOW_load_in_comando273); + pushFollow(FOLLOW_load_in_comando278); load11=load(); state._fsp--; @@ -751,9 +752,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: loadint { - pushFollow(FOLLOW_loadint_in_comando291); + pushFollow(FOLLOW_loadint_in_comando296); loadint12=loadint(); state._fsp--; @@ -763,9 +764,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: store { - pushFollow(FOLLOW_store_in_comando309); + pushFollow(FOLLOW_store_in_comando314); store13=store(); state._fsp--; @@ -775,9 +776,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: storeint { - pushFollow(FOLLOW_storeint_in_comando327); + pushFollow(FOLLOW_storeint_in_comando332); storeint14=storeint(); state._fsp--; @@ -787,9 +788,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: desvio { - pushFollow(FOLLOW_desvio_in_comando345); + pushFollow(FOLLOW_desvio_in_comando350); desvio15=desvio(); state._fsp--; @@ -799,9 +800,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: logica { - pushFollow(FOLLOW_logica_in_comando363); + pushFollow(FOLLOW_logica_in_comando368); logica16=logica(); state._fsp--; @@ -811,9 +812,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: pilha { - pushFollow(FOLLOW_pilha_in_comando381); + pushFollow(FOLLOW_pilha_in_comando386); pilha17=pilha(); state._fsp--; @@ -823,9 +824,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: retorno { - pushFollow(FOLLOW_retorno_in_comando399); + pushFollow(FOLLOW_retorno_in_comando404); retorno18=retorno(); state._fsp--; @@ -835,9 +836,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:17: 'nop' { - string_literal19=(Token)match(input,95,FOLLOW_95_in_comando417); + string_literal19=(Token)match(input,96,FOLLOW_96_in_comando422); string_literal19_tree = (BytecodesAST)adaptor.create(string_literal19) ; @@ -850,7 +851,7 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } - NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando433); + NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando438); NEWLINE20_tree = (BytecodesAST)adaptor.create(NEWLINE20) ; @@ -888,7 +889,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -911,46 +912,46 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST NEWLINE23_tree=null; BytecodesAST NEWLINE25_tree=null; BytecodesAST NEWLINE27_tree=null; + RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal21=(Token)match(input,29,FOLLOW_29_in_definicaoClasse459); - stream_29.add(string_literal21); + string_literal21=(Token)match(input,30,FOLLOW_30_in_definicaoClasse464); + stream_30.add(string_literal21); - ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse461); + ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse466); stream_ID.add(ID22); - NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse463); + NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse468); stream_NEWLINE.add(NEWLINE23); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:27: ( superClasse NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:27: ( superClasse NEWLINE )? int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==34) ) { + if ( (LA6_0==35) ) { alt6=1; } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:28: superClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:28: superClasse NEWLINE { - pushFollow(FOLLOW_superClasse_in_definicaoClasse466); + pushFollow(FOLLOW_superClasse_in_definicaoClasse471); superClasse24=superClasse(); state._fsp--; stream_superClasse.add(superClasse24.getTree()); - NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse468); + NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse473); stream_NEWLINE.add(NEWLINE25); @@ -960,30 +961,30 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:50: ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:50: ( membroClasse NEWLINE )+ int cnt7=0; loop7: do { int alt7=2; int LA7_0 = input.LA(1); - if ( ((LA7_0 >= 32 && LA7_0 <= 33)) ) { + if ( ((LA7_0 >= 33 && LA7_0 <= 34)) ) { alt7=1; } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:51: membroClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:51: membroClasse NEWLINE { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse473); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse478); membroClasse26=membroClasse(); state._fsp--; stream_membroClasse.add(membroClasse26.getTree()); - NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse475); + NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse480); stream_NEWLINE.add(NEWLINE27); @@ -1001,7 +1002,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 29, membroClasse, superClasse, ID + // elements: 30, ID, membroClasse, superClasse // token labels: // rule labels: retval // token list labels: @@ -1011,27 +1012,27 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 72:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 73:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_29.nextNode() + stream_30.nextNode() , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:29: ( superClasse )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:29: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -1089,7 +1090,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1103,17 +1104,17 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal28_tree=null; BytecodesAST TIPO_REF29_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:15: '.super' TIPO_REF { - string_literal28=(Token)match(input,34,FOLLOW_34_in_superClasse536); - stream_34.add(string_literal28); + string_literal28=(Token)match(input,35,FOLLOW_35_in_superClasse541); + stream_35.add(string_literal28); - TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse538); + TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse543); stream_TIPO_REF.add(TIPO_REF29); @@ -1128,9 +1129,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 75:33: -> ^( EXTENDS TIPO_REF ) + // 76:33: -> ^( EXTENDS TIPO_REF ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:36: ^( EXTENDS TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:36: ^( EXTENDS TIPO_REF ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1180,7 +1181,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( CONSTR_DECL INIT ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1232,25 +1233,25 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); - RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); - RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( CONSTR_DECL INIT ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ) int alt11=3; int LA11_0 = input.LA(1); - if ( (LA11_0==32) ) { + if ( (LA11_0==33) ) { alt11=1; } - else if ( (LA11_0==33) ) { + else if ( (LA11_0==34) ) { int LA11_2 = input.LA(2); if ( (LA11_2==INIT) ) { @@ -1276,17 +1277,17 @@ else if ( (LA11_2==ID) ) { } switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: '.field' ID tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: '.field' ID tipo { - string_literal30=(Token)match(input,32,FOLLOW_32_in_membroClasse559); - stream_32.add(string_literal30); + string_literal30=(Token)match(input,33,FOLLOW_33_in_membroClasse564); + stream_33.add(string_literal30); - ID31=(Token)match(input,ID,FOLLOW_ID_in_membroClasse561); + ID31=(Token)match(input,ID,FOLLOW_ID_in_membroClasse566); stream_ID.add(ID31); - pushFollow(FOLLOW_tipo_in_membroClasse563); + pushFollow(FOLLOW_tipo_in_membroClasse568); tipo32=tipo(); state._fsp--; @@ -1294,7 +1295,7 @@ else if ( (LA11_2==ID) ) { stream_tipo.add(tipo32.getTree()); // AST REWRITE - // elements: ID, tipo + // elements: tipo, ID // token labels: // rule labels: retval // token list labels: @@ -1304,9 +1305,9 @@ else if ( (LA11_2==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 78:24: -> ^( FIELD_DECL ID tipo ) + // 79:24: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:27: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:27: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1330,44 +1331,44 @@ else if ( (LA11_2==ID) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' { - string_literal33=(Token)match(input,33,FOLLOW_33_in_membroClasse581); - stream_33.add(string_literal33); + string_literal33=(Token)match(input,34,FOLLOW_34_in_membroClasse586); + stream_34.add(string_literal33); - INIT34=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse583); + INIT34=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse588); stream_INIT.add(INIT34); - string_literal35=(Token)match(input,27,FOLLOW_27_in_membroClasse585); - stream_27.add(string_literal35); + string_literal35=(Token)match(input,28,FOLLOW_28_in_membroClasse590); + stream_28.add(string_literal35); - VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse587); + VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse592); stream_VOID.add(VOID36); - NEWLINE37=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse589); + NEWLINE37=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse594); stream_NEWLINE.add(NEWLINE37); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:40: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:40: ( operacao )* loop8: do { int alt8=2; int LA8_0 = input.LA(1); - if ( (LA8_0==ID||LA8_0==NEWLINE||(LA8_0 >= 37 && LA8_0 <= 99)) ) { + if ( (LA8_0==ID||LA8_0==NEWLINE||(LA8_0 >= 38 && LA8_0 <= 100)) ) { alt8=1; } switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:40: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:40: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse591); + pushFollow(FOLLOW_operacao_in_membroClasse596); operacao38=operacao(); state._fsp--; @@ -1383,12 +1384,12 @@ else if ( (LA11_2==ID) ) { } while (true); - string_literal39=(Token)match(input,31,FOLLOW_31_in_membroClasse594); - stream_31.add(string_literal39); + string_literal39=(Token)match(input,32,FOLLOW_32_in_membroClasse599); + stream_32.add(string_literal39); // AST REWRITE - // elements: INIT, operacao + // elements: operacao, INIT // token labels: // rule labels: retval // token list labels: @@ -1398,27 +1399,27 @@ else if ( (LA11_2==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 80:2: -> ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) + // 81:2: -> ^( CONSTR_DECL INIT ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:5: ^( METHOD_DECL INIT ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:5: ^( CONSTR_DECL INIT ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(METHOD_DECL, "METHOD_DECL") + (BytecodesAST)adaptor.create(CONSTR_DECL, "CONSTR_DECL") , root_1); adaptor.addChild(root_1, stream_INIT.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:24: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:24: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:31: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:31: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1439,24 +1440,24 @@ else if ( (LA11_2==ID) ) { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:7: '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:7: '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' { - string_literal40=(Token)match(input,33,FOLLOW_33_in_membroClasse618); - stream_33.add(string_literal40); + string_literal40=(Token)match(input,34,FOLLOW_34_in_membroClasse623); + stream_34.add(string_literal40); - ID41=(Token)match(input,ID,FOLLOW_ID_in_membroClasse620); + ID41=(Token)match(input,ID,FOLLOW_ID_in_membroClasse625); stream_ID.add(ID41); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:20: ( parametros | '(' parametros ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:20: ( parametros | '(' parametros ')' ) int alt9=2; int LA9_0 = input.LA(1); - if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==27) ) { + if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==28) ) { alt9=1; } - else if ( (LA9_0==26) ) { + else if ( (LA9_0==27) ) { alt9=2; } else { @@ -1468,9 +1469,9 @@ else if ( (LA9_0==26) ) { } switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:21: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:21: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse623); + pushFollow(FOLLOW_parametros_in_membroClasse628); parametros42=parametros(); state._fsp--; @@ -1480,21 +1481,21 @@ else if ( (LA9_0==26) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:34: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:34: '(' parametros ')' { - char_literal43=(Token)match(input,26,FOLLOW_26_in_membroClasse627); - stream_26.add(char_literal43); + char_literal43=(Token)match(input,27,FOLLOW_27_in_membroClasse632); + stream_27.add(char_literal43); - pushFollow(FOLLOW_parametros_in_membroClasse629); + pushFollow(FOLLOW_parametros_in_membroClasse634); parametros44=parametros(); state._fsp--; stream_parametros.add(parametros44.getTree()); - char_literal45=(Token)match(input,28,FOLLOW_28_in_membroClasse631); - stream_28.add(char_literal45); + char_literal45=(Token)match(input,29,FOLLOW_29_in_membroClasse636); + stream_29.add(char_literal45); } @@ -1503,33 +1504,33 @@ else if ( (LA9_0==26) ) { } - pushFollow(FOLLOW_tipo_in_membroClasse638); + pushFollow(FOLLOW_tipo_in_membroClasse643); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE46=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse640); + NEWLINE46=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse645); stream_NEWLINE.add(NEWLINE46); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:73: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:73: ( operacao )* loop10: do { int alt10=2; int LA10_0 = input.LA(1); - if ( (LA10_0==ID||LA10_0==NEWLINE||(LA10_0 >= 37 && LA10_0 <= 99)) ) { + if ( (LA10_0==ID||LA10_0==NEWLINE||(LA10_0 >= 38 && LA10_0 <= 100)) ) { alt10=1; } switch (alt10) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:73: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:73: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse642); + pushFollow(FOLLOW_operacao_in_membroClasse647); operacao47=operacao(); state._fsp--; @@ -1545,12 +1546,12 @@ else if ( (LA9_0==26) ) { } while (true); - string_literal48=(Token)match(input,31,FOLLOW_31_in_membroClasse645); - stream_31.add(string_literal48); + string_literal48=(Token)match(input,32,FOLLOW_32_in_membroClasse650); + stream_32.add(string_literal48); // AST REWRITE - // elements: ret, parametros, ID, operacao + // elements: parametros, operacao, ret, ID // token labels: // rule labels: ret, retval // token list labels: @@ -1561,9 +1562,9 @@ else if ( (LA9_0==26) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 82:9: -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) + // 83:9: -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:12: ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:12: ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1578,14 +1579,14 @@ else if ( (LA9_0==26) ) { adaptor.addChild(root_1, stream_parametros.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:46: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:46: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:53: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:53: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1636,7 +1637,7 @@ public static class parametros_return extends ParserRuleReturnScope { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:1: parametros : (a= '()' -> ^( PARAMS $a) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:1: parametros : (a= '()' -> ^( PARAMS $a) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); public final AssemblerParser.parametros_return parametros() throws RecognitionException { AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); @@ -1649,14 +1650,14 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx BytecodesAST a_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); + RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:2: (a= '()' -> ^( PARAMS $a) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:2: (a= '()' -> ^( PARAMS $a) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) int alt13=2; int LA13_0 = input.LA(1); - if ( (LA13_0==27) ) { + if ( (LA13_0==28) ) { alt13=1; } else if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { @@ -1671,10 +1672,10 @@ else if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { } switch (alt13) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:4: a= '()' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:4: a= '()' { - a=(Token)match(input,27,FOLLOW_27_in_parametros695); - stream_27.add(a); + a=(Token)match(input,28,FOLLOW_28_in_parametros700); + stream_28.add(a); // AST REWRITE @@ -1689,9 +1690,9 @@ else if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 86:13: -> ^( PARAMS $a) + // 87:13: -> ^( PARAMS $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:16: ^( PARAMS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:16: ^( PARAMS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1711,9 +1712,9 @@ else if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:4: (a= ID |a= TIPO_REF )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:4: (a= ID |a= TIPO_REF )+ int cnt12=0; loop12: do { @@ -1723,7 +1724,7 @@ else if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { if ( (LA12_0==TIPO_REF) ) { int LA12_1 = input.LA(2); - if ( (LA12_1==ID||LA12_1==INT||(LA12_1 >= TIPO_REF && LA12_1 <= VOID)||LA12_1==28) ) { + if ( (LA12_1==ID||LA12_1==INT||(LA12_1 >= TIPO_REF && LA12_1 <= VOID)||LA12_1==29) ) { alt12=2; } @@ -1736,18 +1737,18 @@ else if ( (LA12_0==ID) ) { switch (alt12) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:9: a= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= ID { - a=(Token)match(input,ID,FOLLOW_ID_in_parametros723); + a=(Token)match(input,ID,FOLLOW_ID_in_parametros728); stream_ID.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= TIPO_REF { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros738); + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros743); stream_TIPO_REF.add(a); @@ -1776,13 +1777,13 @@ else if ( (LA12_0==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 91:4: -> ( ^( PARAMS $a) )+ + // 92:4: -> ( ^( PARAMS $a) )+ { if ( !(stream_a.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:7: ^( PARAMS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:7: ^( PARAMS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1835,7 +1836,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -1848,7 +1849,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST set49_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: ( 'areturn' | 'ireturn' | 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: ( 'areturn' | 'ireturn' | 'return' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); @@ -1856,7 +1857,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio set49=(Token)input.LT(1); - if ( input.LA(1)==43||input.LA(1)==85||input.LA(1)==99 ) { + if ( input.LA(1)==44||input.LA(1)==86||input.LA(1)==100 ) { input.consume(); adaptor.addChild(root_0, (BytecodesAST)adaptor.create(set49) @@ -1900,7 +1901,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1923,35 +1924,35 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST a_tree=null; BytecodesAST char_literal52_tree=null; - RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); - RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); - RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); - RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); - RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); + RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); + RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); + RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); + RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); + RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) int alt14=4; switch ( input.LA(1) ) { - case 50: + case 51: { alt14=1; } break; - case 98: + case 99: { alt14=2; } break; - case 82: + case 83: { alt14=3; } break; - case 94: + case 95: { alt14=4; } @@ -1966,20 +1967,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt14) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,50,FOLLOW_50_in_manipulacaoObjetos804); - stream_50.add(a); + a=(Token)match(input,51,FOLLOW_51_in_manipulacaoObjetos805); + stream_51.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos810); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos811); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos812); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos813); tipo50=tipo(); state._fsp--; @@ -1987,7 +1988,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo50.getTree()); // AST REWRITE - // elements: tipo, b, 50 + // elements: 51, tipo, b // token labels: // rule labels: retval, b // token list labels: @@ -1998,13 +1999,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 104:52: -> ^( 'getfield' $b tipo ) + // 97:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_50.nextNode() + stream_51.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2022,20 +2023,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,98,FOLLOW_98_in_manipulacaoObjetos850); - stream_98.add(a); + a=(Token)match(input,99,FOLLOW_99_in_manipulacaoObjetos851); + stream_99.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos856); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos857); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos858); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos859); tipo51=tipo(); state._fsp--; @@ -2043,7 +2044,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo51.getTree()); // AST REWRITE - // elements: b, 98, tipo + // elements: tipo, b, 99 // token labels: // rule labels: retval, b // token list labels: @@ -2054,13 +2055,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 105:52: -> ^( 'putfield' $b tipo ) + // 98:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_98.nextNode() + stream_99.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2078,24 +2079,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,82,FOLLOW_82_in_manipulacaoObjetos896); - stream_82.add(a); + a=(Token)match(input,83,FOLLOW_83_in_manipulacaoObjetos897); + stream_83.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos902); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos903); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal52=(Token)match(input,35,FOLLOW_35_in_manipulacaoObjetos904); - stream_35.add(char_literal52); + char_literal52=(Token)match(input,36,FOLLOW_36_in_manipulacaoObjetos905); + stream_36.add(char_literal52); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos910); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos911); d=chamadaMetodo(); state._fsp--; @@ -2103,7 +2104,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, 82, d + // elements: 83, d, c // token labels: // rule labels: retval, d, c // token list labels: @@ -2115,13 +2116,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 107:23: -> ^( 'invokespecial' $c $d) + // 100:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_82.nextNode() + stream_83.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2139,13 +2140,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'new' c= classe + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:22: a= 'new' c= classe { - a=(Token)match(input,94,FOLLOW_94_in_manipulacaoObjetos971); - stream_94.add(a); + a=(Token)match(input,95,FOLLOW_95_in_manipulacaoObjetos972); + stream_95.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos976); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos977); c=classe(); state._fsp--; @@ -2153,7 +2154,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: 94, c + // elements: c, 95 // token labels: // rule labels: retval, c // token list labels: @@ -2164,13 +2165,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 108:42: -> ^( 'new' $c) + // 101:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:45: ^( 'new' $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_94.nextNode() + stream_95.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2216,7 +2217,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2229,7 +2230,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST set53_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); @@ -2281,7 +2282,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2292,52 +2293,52 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); - RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); - RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); + RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); + RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); + RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); + RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); - RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); - RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); - RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); + RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt15=7; switch ( input.LA(1) ) { - case 52: + case 53: { alt15=1; } break; - case 91: + case 92: { alt15=2; } break; - case 80: + case 81: { alt15=3; } break; - case 61: + case 62: { alt15=4; } break; - case 84: + case 85: { alt15=5; } break; - case 74: + case 75: { alt15=6; } break; - case 81: + case 82: { alt15=7; } @@ -2352,64 +2353,64 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt15) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:16: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:16: a= 'iadd' { - a=(Token)match(input,52,FOLLOW_52_in_aritmetica1054); - stream_52.add(a); + a=(Token)match(input,53,FOLLOW_53_in_aritmetica1055); + stream_53.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:19: a= 'isub' { - a=(Token)match(input,91,FOLLOW_91_in_aritmetica1078); - stream_91.add(a); + a=(Token)match(input,92,FOLLOW_92_in_aritmetica1079); + stream_92.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:19: a= 'imul' { - a=(Token)match(input,80,FOLLOW_80_in_aritmetica1102); - stream_80.add(a); + a=(Token)match(input,81,FOLLOW_81_in_aritmetica1103); + stream_81.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:19: a= 'idiv' { - a=(Token)match(input,61,FOLLOW_61_in_aritmetica1126); - stream_61.add(a); + a=(Token)match(input,62,FOLLOW_62_in_aritmetica1127); + stream_62.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:19: a= 'irem' { - a=(Token)match(input,84,FOLLOW_84_in_aritmetica1150); - stream_84.add(a); + a=(Token)match(input,85,FOLLOW_85_in_aritmetica1151); + stream_85.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:19: a= 'iinc' { - a=(Token)match(input,74,FOLLOW_74_in_aritmetica1174); - stream_74.add(a); + a=(Token)match(input,75,FOLLOW_75_in_aritmetica1175); + stream_75.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:19: a= 'ineg' { - a=(Token)match(input,81,FOLLOW_81_in_aritmetica1198); - stream_81.add(a); + a=(Token)match(input,82,FOLLOW_82_in_aritmetica1199); + stream_82.add(a); } @@ -2430,9 +2431,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 122:14: -> ^( ARITMETICA $a) + // 115:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2480,7 +2481,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -2499,98 +2500,98 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); - RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); + RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); - RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); + RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); - RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); + RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt16=16; switch ( input.LA(1) ) { - case 60: + case 61: { alt16=1; } break; - case 54: + case 55: { alt16=2; } break; - case 55: + case 56: { alt16=3; } break; - case 56: + case 57: { alt16=4; } break; - case 57: + case 58: { alt16=5; } break; - case 58: + case 59: { alt16=6; } break; - case 59: + case 60: { alt16=7; } break; - case 37: + case 38: { alt16=8; } break; - case 76: + case 77: { alt16=9; } break; - case 77: + case 78: { alt16=10; } break; - case 78: + case 79: { alt16=11; } break; - case 79: + case 80: { alt16=12; } break; - case 39: + case 40: { alt16=13; } break; - case 40: + case 41: { alt16=14; } break; - case 41: + case 42: { alt16=15; } break; - case 42: + case 43: { alt16=16; } @@ -2605,145 +2606,145 @@ public final AssemblerParser.load_return load() throws RecognitionException { switch (alt16) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'iconst_m1' { - a=(Token)match(input,60,FOLLOW_60_in_load1272); - stream_60.add(a); + a=(Token)match(input,61,FOLLOW_61_in_load1273); + stream_61.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'iconst_0' { - a=(Token)match(input,54,FOLLOW_54_in_load1290); - stream_54.add(a); + a=(Token)match(input,55,FOLLOW_55_in_load1291); + stream_55.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'iconst_1' { - a=(Token)match(input,55,FOLLOW_55_in_load1308); - stream_55.add(a); + a=(Token)match(input,56,FOLLOW_56_in_load1309); + stream_56.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'iconst_2' { - a=(Token)match(input,56,FOLLOW_56_in_load1326); - stream_56.add(a); + a=(Token)match(input,57,FOLLOW_57_in_load1327); + stream_57.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'iconst_3' { - a=(Token)match(input,57,FOLLOW_57_in_load1344); - stream_57.add(a); + a=(Token)match(input,58,FOLLOW_58_in_load1345); + stream_58.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'iconst_4' { - a=(Token)match(input,58,FOLLOW_58_in_load1362); - stream_58.add(a); + a=(Token)match(input,59,FOLLOW_59_in_load1363); + stream_59.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'iconst_5' { - a=(Token)match(input,59,FOLLOW_59_in_load1380); - stream_59.add(a); + a=(Token)match(input,60,FOLLOW_60_in_load1381); + stream_60.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'aconst_null' { - a=(Token)match(input,37,FOLLOW_37_in_load1398); - stream_37.add(a); + a=(Token)match(input,38,FOLLOW_38_in_load1399); + stream_38.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'iload_0' { - a=(Token)match(input,76,FOLLOW_76_in_load1416); - stream_76.add(a); + a=(Token)match(input,77,FOLLOW_77_in_load1417); + stream_77.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'iload_1' { - a=(Token)match(input,77,FOLLOW_77_in_load1434); - stream_77.add(a); + a=(Token)match(input,78,FOLLOW_78_in_load1435); + stream_78.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'iload_2' { - a=(Token)match(input,78,FOLLOW_78_in_load1452); - stream_78.add(a); + a=(Token)match(input,79,FOLLOW_79_in_load1453); + stream_79.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'iload_3' { - a=(Token)match(input,79,FOLLOW_79_in_load1470); - stream_79.add(a); + a=(Token)match(input,80,FOLLOW_80_in_load1471); + stream_80.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'aload_0' { - a=(Token)match(input,39,FOLLOW_39_in_load1488); - stream_39.add(a); + a=(Token)match(input,40,FOLLOW_40_in_load1489); + stream_40.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'aload_1' { - a=(Token)match(input,40,FOLLOW_40_in_load1506); - stream_40.add(a); + a=(Token)match(input,41,FOLLOW_41_in_load1507); + stream_41.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'aload_2' { - a=(Token)match(input,41,FOLLOW_41_in_load1524); - stream_41.add(a); + a=(Token)match(input,42,FOLLOW_42_in_load1525); + stream_42.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'aload_3' { - a=(Token)match(input,42,FOLLOW_42_in_load1542); - stream_42.add(a); + a=(Token)match(input,43,FOLLOW_43_in_load1543); + stream_43.add(a); } @@ -2764,9 +2765,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 142:8: -> ^( LOAD $a) + // 135:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2814,7 +2815,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -2827,29 +2828,29 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); + RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); - RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); + RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); + RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) int alt17=3; switch ( input.LA(1) ) { - case 75: + case 76: { alt17=1; } break; - case 93: + case 94: { alt17=2; } break; - case 38: + case 39: { alt17=3; } @@ -2864,39 +2865,39 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio switch (alt17) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,75,FOLLOW_75_in_loadint1592); - stream_75.add(a); + a=(Token)match(input,76,FOLLOW_76_in_loadint1593); + stream_76.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1598); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1599); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,93,FOLLOW_93_in_loadint1618); - stream_93.add(a); + a=(Token)match(input,94,FOLLOW_94_in_loadint1619); + stream_94.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1624); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1625); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,38,FOLLOW_38_in_loadint1644); - stream_38.add(a); + a=(Token)match(input,39,FOLLOW_39_in_loadint1645); + stream_39.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1650); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1651); stream_INTEIRO.add(b); @@ -2907,7 +2908,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -2919,9 +2920,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 149:11: -> ^( LOAD $a $b) + // 142:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2971,7 +2972,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -2982,58 +2983,58 @@ public final AssemblerParser.store_return store() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); - RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); + RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); - RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt18=8; switch ( input.LA(1) ) { - case 87: + case 88: { alt18=1; } break; - case 88: + case 89: { alt18=2; } break; - case 89: + case 90: { alt18=3; } break; - case 90: + case 91: { alt18=4; } break; - case 45: + case 46: { alt18=5; } break; - case 46: + case 47: { alt18=6; } break; - case 47: + case 48: { alt18=7; } break; - case 48: + case 49: { alt18=8; } @@ -3048,73 +3049,73 @@ public final AssemblerParser.store_return store() throws RecognitionException { switch (alt18) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:11: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: a= 'istore_0' { - a=(Token)match(input,87,FOLLOW_87_in_store1712); - stream_87.add(a); + a=(Token)match(input,88,FOLLOW_88_in_store1713); + stream_88.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'istore_1' { - a=(Token)match(input,88,FOLLOW_88_in_store1730); - stream_88.add(a); + a=(Token)match(input,89,FOLLOW_89_in_store1731); + stream_89.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'istore_2' { - a=(Token)match(input,89,FOLLOW_89_in_store1748); - stream_89.add(a); + a=(Token)match(input,90,FOLLOW_90_in_store1749); + stream_90.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'istore_3' { - a=(Token)match(input,90,FOLLOW_90_in_store1766); - stream_90.add(a); + a=(Token)match(input,91,FOLLOW_91_in_store1767); + stream_91.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'astore_0' { - a=(Token)match(input,45,FOLLOW_45_in_store1784); - stream_45.add(a); + a=(Token)match(input,46,FOLLOW_46_in_store1785); + stream_46.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:13: a= 'astore_1' { - a=(Token)match(input,46,FOLLOW_46_in_store1802); - stream_46.add(a); + a=(Token)match(input,47,FOLLOW_47_in_store1803); + stream_47.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:13: a= 'astore_2' { - a=(Token)match(input,47,FOLLOW_47_in_store1820); - stream_47.add(a); + a=(Token)match(input,48,FOLLOW_48_in_store1821); + stream_48.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:13: a= 'astore_3' { - a=(Token)match(input,48,FOLLOW_48_in_store1838); - stream_48.add(a); + a=(Token)match(input,49,FOLLOW_49_in_store1839); + stream_49.add(a); } @@ -3135,9 +3136,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 161:9: -> ^( STORE $a) + // 154:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3185,7 +3186,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3198,22 +3199,22 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); + RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); + RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) int alt19=2; int LA19_0 = input.LA(1); - if ( (LA19_0==86) ) { + if ( (LA19_0==87) ) { alt19=1; } - else if ( (LA19_0==44) ) { + else if ( (LA19_0==45) ) { alt19=2; } else { @@ -3225,26 +3226,26 @@ else if ( (LA19_0==44) ) { } switch (alt19) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,86,FOLLOW_86_in_storeint1892); - stream_86.add(a); + a=(Token)match(input,87,FOLLOW_87_in_storeint1893); + stream_87.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1898); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1899); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,44,FOLLOW_44_in_storeint1919); - stream_44.add(a); + a=(Token)match(input,45,FOLLOW_45_in_storeint1920); + stream_45.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1925); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1926); stream_INTEIRO.add(b); @@ -3255,7 +3256,7 @@ else if ( (LA19_0==44) ) { // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3267,9 +3268,9 @@ else if ( (LA19_0==44) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 167:12: -> ^( STORE $a $b) + // 160:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3319,7 +3320,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -3330,28 +3331,28 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); - RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); - RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); + RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); + RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); + RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt20=3; switch ( input.LA(1) ) { - case 53: + case 54: { alt20=1; } break; - case 83: + case 84: { alt20=2; } break; - case 92: + case 93: { alt20=3; } @@ -3366,28 +3367,28 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:12: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:12: a= 'iand' { - a=(Token)match(input,53,FOLLOW_53_in_logica1985); - stream_53.add(a); + a=(Token)match(input,54,FOLLOW_54_in_logica1986); + stream_54.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'ior' { - a=(Token)match(input,83,FOLLOW_83_in_logica2004); - stream_83.add(a); + a=(Token)match(input,84,FOLLOW_84_in_logica2005); + stream_84.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:14: a= 'ixor' { - a=(Token)match(input,92,FOLLOW_92_in_logica2023); - stream_92.add(a); + a=(Token)match(input,93,FOLLOW_93_in_logica2024); + stream_93.add(a); } @@ -3408,9 +3409,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 174:10: -> ^( LOGICA $a) + // 167:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3458,7 +3459,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -3476,84 +3477,84 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); - RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); + RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); - RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); - RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); + RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); + RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt21=13; switch ( input.LA(1) ) { - case 68: + case 69: { alt21=1; } break; - case 73: + case 74: { alt21=2; } break; - case 72: + case 73: { alt21=3; } break; - case 69: + case 70: { alt21=4; } break; - case 70: + case 71: { alt21=5; } break; - case 71: + case 72: { alt21=6; } break; - case 62: + case 63: { alt21=7; } break; - case 67: + case 68: { alt21=8; } break; - case 66: + case 67: { alt21=9; } break; - case 63: + case 64: { alt21=10; } break; - case 64: + case 65: { alt21=11; } break; - case 65: + case 66: { alt21=12; } break; - case 51: + case 52: { alt21=13; } @@ -3568,169 +3569,169 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:12: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:12: a= 'ifeq' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2074); - stream_68.add(a); + a=(Token)match(input,69,FOLLOW_69_in_desvio2075); + stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2080); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2081); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'ifne' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2099); - stream_73.add(a); + a=(Token)match(input,74,FOLLOW_74_in_desvio2100); + stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2105); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2106); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'iflt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2124); - stream_72.add(a); + a=(Token)match(input,73,FOLLOW_73_in_desvio2125); + stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2130); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2131); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:14: a= 'ifge' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2149); - stream_69.add(a); + a=(Token)match(input,70,FOLLOW_70_in_desvio2150); + stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2155); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2156); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'ifgt' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2174); - stream_70.add(a); + a=(Token)match(input,71,FOLLOW_71_in_desvio2175); + stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2180); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2181); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'ifle' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2199); - stream_71.add(a); + a=(Token)match(input,72,FOLLOW_72_in_desvio2200); + stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2205); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2206); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,62,FOLLOW_62_in_desvio2224); - stream_62.add(a); + a=(Token)match(input,63,FOLLOW_63_in_desvio2225); + stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2230); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2231); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,67,FOLLOW_67_in_desvio2249); - stream_67.add(a); + a=(Token)match(input,68,FOLLOW_68_in_desvio2250); + stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2255); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2256); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio2274); - stream_66.add(a); + a=(Token)match(input,67,FOLLOW_67_in_desvio2275); + stream_67.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2280); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2281); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2299); - stream_63.add(a); + a=(Token)match(input,64,FOLLOW_64_in_desvio2300); + stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2305); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2306); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2324); - stream_64.add(a); + a=(Token)match(input,65,FOLLOW_65_in_desvio2325); + stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2330); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2331); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'if_icmple' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio2349); - stream_65.add(a); + a=(Token)match(input,66,FOLLOW_66_in_desvio2350); + stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2355); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2356); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'goto' b= ID { - a=(Token)match(input,51,FOLLOW_51_in_desvio2374); - stream_51.add(a); + a=(Token)match(input,52,FOLLOW_52_in_desvio2375); + stream_52.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2380); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2381); stream_ID.add(b); @@ -3741,7 +3742,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3753,9 +3754,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 191:10: -> ^( DESVIO $a $b) + // 184:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3805,7 +3806,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -3816,28 +3817,28 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); + RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); - RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); + RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) int alt22=3; switch ( input.LA(1) ) { - case 96: + case 97: { alt22=1; } break; - case 97: + case 98: { alt22=2; } break; - case 49: + case 50: { alt22=3; } @@ -3852,28 +3853,28 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:11: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:11: a= 'pop' { - a=(Token)match(input,96,FOLLOW_96_in_pilha2441); - stream_96.add(a); + a=(Token)match(input,97,FOLLOW_97_in_pilha2442); + stream_97.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:13: a= 'pop2' { - a=(Token)match(input,97,FOLLOW_97_in_pilha2459); - stream_97.add(a); + a=(Token)match(input,98,FOLLOW_98_in_pilha2460); + stream_98.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:13: a= 'dup' { - a=(Token)match(input,49,FOLLOW_49_in_pilha2477); - stream_49.add(a); + a=(Token)match(input,50,FOLLOW_50_in_pilha2478); + stream_50.add(a); } @@ -3894,9 +3895,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 198:9: -> ^( PILHA $a) + // 191:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3945,7 +3946,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -3964,13 +3965,13 @@ public final AssemblerParser.classe_return classe() throws RecognitionException retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:8: (cls+= ID '/' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:8: (cls+= ID '/' )* loop23: do { int alt23=2; @@ -3979,7 +3980,7 @@ public final AssemblerParser.classe_return classe() throws RecognitionException if ( (LA23_0==ID) ) { int LA23_1 = input.LA(2); - if ( (LA23_1==35) ) { + if ( (LA23_1==36) ) { int LA23_2 = input.LA(3); if ( (LA23_2==ID) ) { @@ -3995,9 +3996,9 @@ public final AssemblerParser.classe_return classe() throws RecognitionException switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2543); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2544); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4007,7 +4008,7 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal54=(Token)match(input,35,FOLLOW_35_in_classe2545); + char_literal54=(Token)match(input,36,FOLLOW_36_in_classe2546); char_literal54_tree = (BytecodesAST)adaptor.create(char_literal54) ; @@ -4023,10 +4024,10 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:25: (cls+= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:26: cls+= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:25: (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2554); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2555); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4075,7 +4076,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -4097,27 +4098,27 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:6: (n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:207:6: (n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:207:8: n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2594); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2595); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,27,FOLLOW_27_in_chamadaMetodo2600); + par=(Token)match(input,28,FOLLOW_28_in_chamadaMetodo2601); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2606); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2607); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -4163,7 +4164,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -4185,13 +4186,13 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: (cls+= ID '/' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: (cls+= ID '/' )+ int cnt24=0; loop24: do { @@ -4201,7 +4202,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { if ( (LA24_0==ID) ) { int LA24_1 = input.LA(2); - if ( (LA24_1==35) ) { + if ( (LA24_1==36) ) { alt24=1; } @@ -4211,9 +4212,9 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2646); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2647); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4223,7 +4224,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal55=(Token)match(input,35,FOLLOW_35_in_campo2648); + char_literal55=(Token)match(input,36,FOLLOW_36_in_campo2649); char_literal55_tree = (BytecodesAST)adaptor.create(char_literal55) ; @@ -4243,7 +4244,7 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2656); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2657); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -4280,152 +4281,152 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { - public static final BitSet FOLLOW_instrucao_in_programa122 = new BitSet(new long[]{0xFFFFFFE020040202L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_instrucao150 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao164 = new BitSet(new long[]{0x0000000040000002L}); - public static final BitSet FOLLOW_30_in_instrucao167 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_operacao189 = new BitSet(new long[]{0xFFFFFFE000040000L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_comando_in_operacao191 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_comando_in_operacao195 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label217 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_36_in_label219 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_comando237 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_aritmetica_in_comando255 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_load_in_comando273 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_loadint_in_comando291 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_store_in_comando309 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_storeint_in_comando327 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_desvio_in_comando345 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_logica_in_comando363 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_pilha_in_comando381 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_retorno_in_comando399 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_95_in_comando417 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_comando433 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_definicaoClasse459 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse461 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse463 = new BitSet(new long[]{0x0000000700000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse466 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse468 = new BitSet(new long[]{0x0000000300000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse473 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse475 = new BitSet(new long[]{0x0000000300000002L}); - public static final BitSet FOLLOW_34_in_superClasse536 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse538 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_32_in_membroClasse559 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse561 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse563 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse581 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_INIT_in_membroClasse583 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_membroClasse585 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse587 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse589 = new BitSet(new long[]{0xFFFFFFE080040200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse591 = new BitSet(new long[]{0xFFFFFFE080040200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_31_in_membroClasse594 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse618 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_membroClasse620 = new BitSet(new long[]{0x000000000C800200L}); - public static final BitSet FOLLOW_parametros_in_membroClasse623 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_26_in_membroClasse627 = new BitSet(new long[]{0x0000000008800200L}); - public static final BitSet FOLLOW_parametros_in_membroClasse629 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_membroClasse631 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_membroClasse638 = new BitSet(new long[]{0x0000000000040000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse640 = new BitSet(new long[]{0xFFFFFFE080040200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse642 = new BitSet(new long[]{0xFFFFFFE080040200L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_31_in_membroClasse645 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_27_in_parametros695 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_parametros723 = new BitSet(new long[]{0x0000000000800202L}); - public static final BitSet FOLLOW_TIPO_REF_in_parametros738 = new BitSet(new long[]{0x0000000000800202L}); - public static final BitSet FOLLOW_50_in_manipulacaoObjetos804 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos810 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos812 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_manipulacaoObjetos850 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos856 = new BitSet(new long[]{0x0000000001800800L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos858 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_manipulacaoObjetos896 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos902 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_manipulacaoObjetos904 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos910 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_manipulacaoObjetos971 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos976 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_aritmetica1054 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_aritmetica1078 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_aritmetica1102 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_aritmetica1126 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_aritmetica1150 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_aritmetica1174 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_aritmetica1198 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load1272 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_load1290 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load1308 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load1326 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load1344 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load1362 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load1380 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_load1398 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_load1416 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_load1434 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_load1452 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_load1470 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_load1488 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load1506 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load1524 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load1542 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_loadint1592 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1598 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_loadint1618 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1624 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_loadint1644 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1650 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_store1712 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_store1730 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_store1748 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_store1766 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_store1784 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_store1802 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_store1820 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_store1838 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_storeint1892 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1898 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_storeint1919 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1925 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_logica1985 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_logica2004 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_logica2023 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2074 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2080 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2099 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2105 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2124 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2130 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2149 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2155 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2174 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2180 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2199 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_desvio2224 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2230 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_desvio2249 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2255 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio2274 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2280 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2299 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2305 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2324 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2330 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio2349 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2355 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_desvio2374 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_desvio2380 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_pilha2441 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_pilha2459 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_pilha2477 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2543 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_classe2545 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_classe2554 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2594 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_27_in_chamadaMetodo2600 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2606 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2646 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_campo2648 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_ID_in_campo2656 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_programa127 = new BitSet(new long[]{0xFFFFFFC040080402L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_instrucao155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao169 = new BitSet(new long[]{0x0000000080000002L}); + public static final BitSet FOLLOW_31_in_instrucao172 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_operacao194 = new BitSet(new long[]{0xFFFFFFC000080000L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_comando_in_operacao196 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_operacao200 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label222 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_label224 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_comando242 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_aritmetica_in_comando260 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_load_in_comando278 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_loadint_in_comando296 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_store_in_comando314 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_storeint_in_comando332 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_desvio_in_comando350 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_logica_in_comando368 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_pilha_in_comando386 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_retorno_in_comando404 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_96_in_comando422 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando438 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_definicaoClasse464 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse466 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse468 = new BitSet(new long[]{0x0000000E00000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse471 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse473 = new BitSet(new long[]{0x0000000600000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse478 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse480 = new BitSet(new long[]{0x0000000600000002L}); + public static final BitSet FOLLOW_35_in_superClasse541 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse543 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_membroClasse564 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_membroClasse566 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse568 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_membroClasse586 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INIT_in_membroClasse588 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_membroClasse590 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse592 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse594 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse596 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_32_in_membroClasse599 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_membroClasse623 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_membroClasse625 = new BitSet(new long[]{0x0000000019000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse628 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_27_in_membroClasse632 = new BitSet(new long[]{0x0000000011000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse634 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_29_in_membroClasse636 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse643 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse645 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse647 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_32_in_membroClasse650 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_parametros700 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_parametros728 = new BitSet(new long[]{0x0000000001000402L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros743 = new BitSet(new long[]{0x0000000001000402L}); + public static final BitSet FOLLOW_51_in_manipulacaoObjetos805 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos811 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos813 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_manipulacaoObjetos851 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos857 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos859 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_manipulacaoObjetos897 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos903 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_manipulacaoObjetos905 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos911 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_manipulacaoObjetos972 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos977 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_aritmetica1055 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_aritmetica1079 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_aritmetica1103 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_aritmetica1127 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_aritmetica1151 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_aritmetica1175 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_aritmetica1199 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load1273 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load1291 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load1309 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load1327 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load1345 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load1363 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load1381 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load1399 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_load1417 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_load1435 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_load1453 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_load1471 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load1489 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load1507 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load1525 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load1543 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_loadint1593 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1599 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_loadint1619 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1625 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_loadint1645 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1651 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_store1713 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_store1731 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_store1749 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_store1767 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_store1785 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_store1803 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_store1821 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_store1839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_storeint1893 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1899 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_storeint1920 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1926 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_logica1986 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_logica2005 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_logica2024 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2075 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2081 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2100 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2106 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2125 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2131 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2150 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2156 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2175 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2200 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2206 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2225 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2250 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2256 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_desvio2275 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2281 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2300 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2306 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio2325 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2331 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio2350 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio2375 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2381 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_pilha2442 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_pilha2460 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_pilha2478 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2544 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_classe2546 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_classe2555 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2595 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_chamadaMetodo2601 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2607 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2647 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_campo2649 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_campo2657 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 0fc3987..ac6d8bb 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-04 18:58:36 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-04 21:01:22 package br.ufpb.iged.interpretador.parser; @@ -22,11 +22,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; public static final int T__29=29; @@ -100,28 +99,30 @@ public class Def extends TreeFilter { public static final int T__97=97; public static final int T__98=98; public static final int T__99=99; + public static final int T__100=100; public static final int ARITMETICA=4; public static final int BODY=5; - public static final int DESVIO=6; - public static final int EXTENDS=7; - public static final int FIELD_DECL=8; - public static final int ID=9; - public static final int INIT=10; - public static final int INT=11; - public static final int INTEIRO=12; - public static final int LABEL=13; - public static final int LOAD=14; - public static final int LOGICA=15; - public static final int MEMBRO_CLASSE=16; - public static final int METHOD_DECL=17; - public static final int NEWLINE=18; - public static final int NULL=19; - public static final int PARAMS=20; - public static final int PILHA=21; - public static final int STORE=22; - public static final int TIPO_REF=23; - public static final int VOID=24; - public static final int WS=25; + public static final int CONSTR_DECL=6; + public static final int DESVIO=7; + public static final int EXTENDS=8; + public static final int FIELD_DECL=9; + public static final int ID=10; + public static final int INIT=11; + public static final int INT=12; + public static final int INTEIRO=13; + public static final int LABEL=14; + public static final int LOAD=15; + public static final int LOGICA=16; + public static final int MEMBRO_CLASSE=17; + public static final int METHOD_DECL=18; + public static final int NEWLINE=19; + public static final int NULL=20; + public static final int PARAMS=21; + public static final int PILHA=22; + public static final int STORE=23; + public static final int TIPO_REF=24; + public static final int VOID=25; + public static final int WS=26; // delegates public TreeFilter[] getDelegates() { @@ -153,10 +154,10 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:1: topdown : ( entraNoCorpoMetodo | entraNoMetodoInit | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ( entraNoCorpoMetodo | entraNoMetodoInit | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ) int alt1=6; switch ( input.LA(1) ) { case BODY: @@ -164,39 +165,17 @@ public final void topdown() throws RecognitionException { alt1=1; } break; - case METHOD_DECL: + case CONSTR_DECL: { - int LA1_2 = input.LA(2); - - if ( (LA1_2==DOWN) ) { - int LA1_6 = input.LA(3); - - if ( (LA1_6==INIT) ) { - alt1=2; - } - else if ( (LA1_6==ID) ) { - alt1=3; - } - else { - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 6, input); - - throw nvae; - - } - } - else { - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 2, input); - - throw nvae; - + alt1=2; } + break; + case METHOD_DECL: + { + alt1=3; } break; - case 29: + case 30: { alt1=4; } @@ -233,10 +212,10 @@ else if ( (LA1_6==ID) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:11: entraNoMetodoInit + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:11: entraNoConstrutor { - pushFollow(FOLLOW_entraNoMetodoInit_in_topdown61); - entraNoMetodoInit(); + pushFollow(FOLLOW_entraNoConstrutor_in_topdown61); + entraNoConstrutor(); state._fsp--; if (state.failed) return ; @@ -305,11 +284,11 @@ else if ( (LA1_6==ID) ) { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDaClasse ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDaClasse ) - int alt2=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ) + int alt2=4; switch ( input.LA(1) ) { case BODY: { @@ -321,11 +300,16 @@ public final void bottomup() throws RecognitionException { alt2=2; } break; - case 29: + case CONSTR_DECL: { alt2=3; } break; + case 30: + { + alt2=4; + } + break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = @@ -359,9 +343,20 @@ public final void bottomup() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:12: saiDaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:12: saiDoConstrutor + { + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup152); + saiDoConstrutor(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 4 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup152); + pushFollow(FOLLOW_saiDaClasse_in_bottomup165); saiDaClasse(); state._fsp--; @@ -387,21 +382,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,29,FOLLOW_29_in_entraNaClasse184); if (state.failed) return ; + match(input,30,FOLLOW_30_in_entraNaClasse197); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse188); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse201); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -417,7 +412,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 99)) ) { + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 100)) ) { alt3=1; } } @@ -426,12 +421,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse192); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse205); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse196); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse209); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -477,19 +472,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:59:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:7: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:61:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:61:7: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel230); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel243); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel232); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel245); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -525,19 +520,21 @@ public final void declaracaoVariavel() throws RecognitionException { - // $ANTLR start "entraNoMetodoInit" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:72:1: entraNoMetodoInit : ^( METHOD_DECL INIT ) ; - public final void entraNoMetodoInit() throws RecognitionException { + // $ANTLR start "entraNoConstrutor" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:1: entraNoConstrutor : ^( CONSTR_DECL INIT . ) ; + public final void entraNoConstrutor() throws RecognitionException { BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:2: ( ^( METHOD_DECL INIT ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:4: ^( METHOD_DECL INIT ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:2: ( ^( CONSTR_DECL INIT . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:4: ^( CONSTR_DECL INIT . ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodoInit267); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor280); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoMetodoInit269); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor282); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -565,37 +562,37 @@ public final void entraNoMetodoInit() throws RecognitionException { } return ; } - // $ANTLR end "entraNoMetodoInit" + // $ANTLR end "entraNoConstrutor" // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:85:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST ID3=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo286); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo301); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo288); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo303); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:32: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: ( . )+ int cnt4=0; loop4: do { int alt4=2; int LA4_0 = input.LA(1); - if ( ((LA4_0 >= ARITMETICA && LA4_0 <= 99)) ) { + if ( ((LA4_0 >= ARITMETICA && LA4_0 <= 100)) ) { alt4=1; } else if ( (LA4_0==UP) ) { @@ -605,7 +602,7 @@ else if ( (LA4_0==UP) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:32: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: . { matchAny(input); if (state.failed) return ; @@ -654,15 +651,15 @@ else if ( (LA4_0==UP) ) { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:1: parametros : ^( PARAMS pars= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:1: parametros : ^( PARAMS pars= . ) ; public final void parametros() throws RecognitionException { BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:4: ^( PARAMS pars= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:100:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:100:4: ^( PARAMS pars= . ) { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros313); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros328); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; pars=(BytecodesAST)input.LT(1); @@ -699,13 +696,13 @@ public final void parametros() throws RecognitionException { // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:110:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo341); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo356); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -727,13 +724,13 @@ public final void entraNoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo367); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo382); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -758,13 +755,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:122:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:123:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:122:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:122:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:123:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:123:15: '.class' { - match(input,29,FOLLOW_29_in_saiDaClasse394); if (state.failed) return ; + match(input,30,FOLLOW_30_in_saiDaClasse409); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -789,13 +786,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:129:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo444); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo459); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -817,34 +814,67 @@ public final void saiDoMetodo() throws RecognitionException { } // $ANTLR end "saiDoMetodo" + + + // $ANTLR start "saiDoConstrutor" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:1: saiDoConstrutor : CONSTR_DECL ; + public final void saiDoConstrutor() throws RecognitionException { + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:5: CONSTR_DECL + { + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor475); if (state.failed) return ; + + if ( state.backtracking==1 ) { + System.out.println("Saindo do construtor: "+escopoAtual); + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "saiDoConstrutor" + // Delegated rules public static final BitSet FOLLOW_entraNoCorpoMetodo_in_topdown49 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_entraNoMetodoInit_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoConstrutor_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_entraNoMetodo_in_topdown73 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_entraNaClasse_in_topdown85 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_parametros_in_topdown97 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declaracaoVariavel_in_topdown109 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDoCorpoMetodo_in_bottomup126 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDoMetodo_in_bottomup139 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDaClasse_in_bottomup152 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_entraNaClasse184 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse188 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse192 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse196 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel230 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel232 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodoInit267 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoMetodoInit269 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo286 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo288 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_PARAMS_in_parametros313 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo341 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo367 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_saiDaClasse394 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo444 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup165 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_entraNaClasse197 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse201 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse205 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse209 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel243 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel245 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor280 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor282 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo301 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo303 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_PARAMS_in_parametros328 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo382 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_saiDaClasse409 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo459 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor475 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index f4d0f3a..c1071fa 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,4 +1,3 @@ -T__26=26 T__27=27 T__28=28 T__29=29 @@ -72,99 +71,101 @@ T__96=96 T__97=97 T__98=98 T__99=99 +T__100=100 ARITMETICA=4 BODY=5 -DESVIO=6 -EXTENDS=7 -FIELD_DECL=8 -ID=9 -INIT=10 -INT=11 -INTEIRO=12 -LABEL=13 -LOAD=14 -LOGICA=15 -MEMBRO_CLASSE=16 -METHOD_DECL=17 -NEWLINE=18 -NULL=19 -PARAMS=20 -PILHA=21 -STORE=22 -TIPO_REF=23 -VOID=24 -WS=25 -'('=26 -'()'=27 -')'=28 -'.class'=29 -'.end class'=30 -'.end method'=31 -'.field'=32 -'.method'=33 -'.super'=34 -'/'=35 -':'=36 -'aconst_null'=37 -'aload'=38 -'aload_0'=39 -'aload_1'=40 -'aload_2'=41 -'aload_3'=42 -'areturn'=43 -'astore'=44 -'astore_0'=45 -'astore_1'=46 -'astore_2'=47 -'astore_3'=48 -'dup'=49 -'getfield'=50 -'goto'=51 -'iadd'=52 -'iand'=53 -'iconst_0'=54 -'iconst_1'=55 -'iconst_2'=56 -'iconst_3'=57 -'iconst_4'=58 -'iconst_5'=59 -'iconst_m1'=60 -'idiv'=61 -'if_icmpeq'=62 -'if_icmpge'=63 -'if_icmpgt'=64 -'if_icmple'=65 -'if_icmplt'=66 -'if_icmpne'=67 -'ifeq'=68 -'ifge'=69 -'ifgt'=70 -'ifle'=71 -'iflt'=72 -'ifne'=73 -'iinc'=74 -'iload'=75 -'iload_0'=76 -'iload_1'=77 -'iload_2'=78 -'iload_3'=79 -'imul'=80 -'ineg'=81 -'invokespecial'=82 -'ior'=83 -'irem'=84 -'ireturn'=85 -'istore'=86 -'istore_0'=87 -'istore_1'=88 -'istore_2'=89 -'istore_3'=90 -'isub'=91 -'ixor'=92 -'ldc'=93 -'new'=94 -'nop'=95 -'pop'=96 -'pop2'=97 -'putfield'=98 -'return'=99 +CONSTR_DECL=6 +DESVIO=7 +EXTENDS=8 +FIELD_DECL=9 +ID=10 +INIT=11 +INT=12 +INTEIRO=13 +LABEL=14 +LOAD=15 +LOGICA=16 +MEMBRO_CLASSE=17 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PARAMS=21 +PILHA=22 +STORE=23 +TIPO_REF=24 +VOID=25 +WS=26 +'('=27 +'()'=28 +')'=29 +'.class'=30 +'.end class'=31 +'.end method'=32 +'.field'=33 +'.method'=34 +'.super'=35 +'/'=36 +':'=37 +'aconst_null'=38 +'aload'=39 +'aload_0'=40 +'aload_1'=41 +'aload_2'=42 +'aload_3'=43 +'areturn'=44 +'astore'=45 +'astore_0'=46 +'astore_1'=47 +'astore_2'=48 +'astore_3'=49 +'dup'=50 +'getfield'=51 +'goto'=52 +'iadd'=53 +'iand'=54 +'iconst_0'=55 +'iconst_1'=56 +'iconst_2'=57 +'iconst_3'=58 +'iconst_4'=59 +'iconst_5'=60 +'iconst_m1'=61 +'idiv'=62 +'if_icmpeq'=63 +'if_icmpge'=64 +'if_icmpgt'=65 +'if_icmple'=66 +'if_icmplt'=67 +'if_icmpne'=68 +'ifeq'=69 +'ifge'=70 +'ifgt'=71 +'ifle'=72 +'iflt'=73 +'ifne'=74 +'iinc'=75 +'iload'=76 +'iload_0'=77 +'iload_1'=78 +'iload_2'=79 +'iload_3'=80 +'imul'=81 +'ineg'=82 +'invokespecial'=83 +'ior'=84 +'irem'=85 +'ireturn'=86 +'istore'=87 +'istore_0'=88 +'istore_1'=89 +'istore_2'=90 +'istore_3'=91 +'isub'=92 +'ixor'=93 +'ldc'=94 +'new'=95 +'nop'=96 +'pop'=97 +'pop2'=98 +'putfield'=99 +'return'=100 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index c9f1a7f..d66b904 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-04 18:58:36 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-04 21:01:22 package br.ufpb.iged.interpretador.parser; @@ -24,11 +24,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" }; public static final int EOF=-1; - public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; public static final int T__29=29; @@ -102,28 +101,30 @@ public class Ref extends TreeFilter { public static final int T__97=97; public static final int T__98=98; public static final int T__99=99; + public static final int T__100=100; public static final int ARITMETICA=4; public static final int BODY=5; - public static final int DESVIO=6; - public static final int EXTENDS=7; - public static final int FIELD_DECL=8; - public static final int ID=9; - public static final int INIT=10; - public static final int INT=11; - public static final int INTEIRO=12; - public static final int LABEL=13; - public static final int LOAD=14; - public static final int LOGICA=15; - public static final int MEMBRO_CLASSE=16; - public static final int METHOD_DECL=17; - public static final int NEWLINE=18; - public static final int NULL=19; - public static final int PARAMS=20; - public static final int PILHA=21; - public static final int STORE=22; - public static final int TIPO_REF=23; - public static final int VOID=24; - public static final int WS=25; + public static final int CONSTR_DECL=6; + public static final int DESVIO=7; + public static final int EXTENDS=8; + public static final int FIELD_DECL=9; + public static final int ID=10; + public static final int INIT=11; + public static final int INT=12; + public static final int INTEIRO=13; + public static final int LABEL=14; + public static final int LOAD=15; + public static final int LOGICA=16; + public static final int MEMBRO_CLASSE=17; + public static final int METHOD_DECL=18; + public static final int NEWLINE=19; + public static final int NULL=20; + public static final int PARAMS=21; + public static final int PILHA=22; + public static final int STORE=23; + public static final int TIPO_REF=24; + public static final int VOID=25; + public static final int WS=26; // delegates public TreeFilter[] getDelegates() { @@ -428,7 +429,7 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,29,FOLLOW_29_in_entraNaClasse221); if (state.failed) return ; + match(input,30,FOLLOW_30_in_entraNaClasse221); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse225); if (state.failed) return ; @@ -449,7 +450,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA2_4==UP) ) { int LA2_5 = input.LA(5); - if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 99)) ) { + if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 100)) ) { alt2=1; } } @@ -565,7 +566,7 @@ public final void getfield() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,50,FOLLOW_50_in_getfield311); if (state.failed) return ; + match(input,51,FOLLOW_51_in_getfield311); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -617,7 +618,7 @@ public final void putfield() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,98,FOLLOW_98_in_putfield360); if (state.failed) return ; + match(input,99,FOLLOW_99_in_putfield360); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -670,7 +671,7 @@ public final void invokespecial() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) { - match(input,82,FOLLOW_82_in_invokespecial409); if (state.failed) return ; + match(input,83,FOLLOW_83_in_invokespecial409); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -722,7 +723,7 @@ public final void novaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:3: ( ^( 'new' classe= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:5: ^( 'new' classe= . ) { - match(input,94,FOLLOW_94_in_novaClasse460); if (state.failed) return ; + match(input,95,FOLLOW_95_in_novaClasse460); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1137,14 +1138,14 @@ public final void label() throws RecognitionException, LabelException { static final String DFA1_minS = "\1\4\7\uffff\2\2\4\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; static final String DFA1_maxS = - "\1\142\7\uffff\2\2\4\uffff\5\143\2\uffff\1\143\2\uffff\4\143"; + "\1\143\7\uffff\2\2\4\uffff\5\144\2\uffff\1\144\2\uffff\4\144"; static final String DFA1_acceptS = "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\uffff\1\14\1\15\1\16\1\17"+ "\5\uffff\1\10\1\11\1\uffff\1\12\1\13\4\uffff"; static final String DFA1_specialS = "\34\uffff}>"; static final String[] DFA1_transitionS = { - "\1\7\1\uffff\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\5\uffff"+ + "\1\7\2\uffff\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\5\uffff"+ "\1\14\1\11\6\uffff\1\1\24\uffff\1\3\37\uffff\1\5\13\uffff\1"+ "\6\3\uffff\1\4", "", @@ -1160,20 +1161,20 @@ public final void label() throws RecognitionException, LabelException { "", "", "", - "\140\20", - "\140\21", - "\1\22\1\23\140\24", - "\1\25\1\26\140\27", - "\140\30", + "\141\20", + "\141\21", + "\1\22\1\23\141\24", + "\1\25\1\26\141\27", + "\141\30", "", "", - "\140\31", + "\141\31", "", "", - "\1\32\140\30", - "\1\33\140\31", - "\1\23\140\24", - "\1\26\140\27" + "\1\32\141\30", + "\1\33\141\31", + "\1\23\141\24", + "\1\26\141\27" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -1226,16 +1227,16 @@ public String getDescription() { public static final BitSet FOLLOW_logica_in_topdown179 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_pilha_in_topdown189 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_label_in_topdown199 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_entraNaClasse221 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse225 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); + public static final BitSet FOLLOW_30_in_entraNaClasse221 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse225 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse229 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse233 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel271 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel273 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000FFFFFFFFFL}); - public static final BitSet FOLLOW_50_in_getfield311 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_98_in_putfield360 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_82_in_invokespecial409 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_94_in_novaClasse460 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel273 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_51_in_getfield311 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_99_in_putfield360 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_83_in_invokespecial409 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_95_in_novaClasse460 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ARITMETICA_in_aritmetica491 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_LOAD_in_load525 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_LOAD_in_loadint554 = new BitSet(new long[]{0x0000000000000004L}); diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index f4d0f3a..c1071fa 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__26=26 T__27=27 T__28=28 T__29=29 @@ -72,99 +71,101 @@ T__96=96 T__97=97 T__98=98 T__99=99 +T__100=100 ARITMETICA=4 BODY=5 -DESVIO=6 -EXTENDS=7 -FIELD_DECL=8 -ID=9 -INIT=10 -INT=11 -INTEIRO=12 -LABEL=13 -LOAD=14 -LOGICA=15 -MEMBRO_CLASSE=16 -METHOD_DECL=17 -NEWLINE=18 -NULL=19 -PARAMS=20 -PILHA=21 -STORE=22 -TIPO_REF=23 -VOID=24 -WS=25 -'('=26 -'()'=27 -')'=28 -'.class'=29 -'.end class'=30 -'.end method'=31 -'.field'=32 -'.method'=33 -'.super'=34 -'/'=35 -':'=36 -'aconst_null'=37 -'aload'=38 -'aload_0'=39 -'aload_1'=40 -'aload_2'=41 -'aload_3'=42 -'areturn'=43 -'astore'=44 -'astore_0'=45 -'astore_1'=46 -'astore_2'=47 -'astore_3'=48 -'dup'=49 -'getfield'=50 -'goto'=51 -'iadd'=52 -'iand'=53 -'iconst_0'=54 -'iconst_1'=55 -'iconst_2'=56 -'iconst_3'=57 -'iconst_4'=58 -'iconst_5'=59 -'iconst_m1'=60 -'idiv'=61 -'if_icmpeq'=62 -'if_icmpge'=63 -'if_icmpgt'=64 -'if_icmple'=65 -'if_icmplt'=66 -'if_icmpne'=67 -'ifeq'=68 -'ifge'=69 -'ifgt'=70 -'ifle'=71 -'iflt'=72 -'ifne'=73 -'iinc'=74 -'iload'=75 -'iload_0'=76 -'iload_1'=77 -'iload_2'=78 -'iload_3'=79 -'imul'=80 -'ineg'=81 -'invokespecial'=82 -'ior'=83 -'irem'=84 -'ireturn'=85 -'istore'=86 -'istore_0'=87 -'istore_1'=88 -'istore_2'=89 -'istore_3'=90 -'isub'=91 -'ixor'=92 -'ldc'=93 -'new'=94 -'nop'=95 -'pop'=96 -'pop2'=97 -'putfield'=98 -'return'=99 +CONSTR_DECL=6 +DESVIO=7 +EXTENDS=8 +FIELD_DECL=9 +ID=10 +INIT=11 +INT=12 +INTEIRO=13 +LABEL=14 +LOAD=15 +LOGICA=16 +MEMBRO_CLASSE=17 +METHOD_DECL=18 +NEWLINE=19 +NULL=20 +PARAMS=21 +PILHA=22 +STORE=23 +TIPO_REF=24 +VOID=25 +WS=26 +'('=27 +'()'=28 +')'=29 +'.class'=30 +'.end class'=31 +'.end method'=32 +'.field'=33 +'.method'=34 +'.super'=35 +'/'=36 +':'=37 +'aconst_null'=38 +'aload'=39 +'aload_0'=40 +'aload_1'=41 +'aload_2'=42 +'aload_3'=43 +'areturn'=44 +'astore'=45 +'astore_0'=46 +'astore_1'=47 +'astore_2'=48 +'astore_3'=49 +'dup'=50 +'getfield'=51 +'goto'=52 +'iadd'=53 +'iand'=54 +'iconst_0'=55 +'iconst_1'=56 +'iconst_2'=57 +'iconst_3'=58 +'iconst_4'=59 +'iconst_5'=60 +'iconst_m1'=61 +'idiv'=62 +'if_icmpeq'=63 +'if_icmpge'=64 +'if_icmpgt'=65 +'if_icmple'=66 +'if_icmplt'=67 +'if_icmpne'=68 +'ifeq'=69 +'ifge'=70 +'ifgt'=71 +'ifle'=72 +'iflt'=73 +'ifne'=74 +'iinc'=75 +'iload'=76 +'iload_0'=77 +'iload_1'=78 +'iload_2'=79 +'iload_3'=80 +'imul'=81 +'ineg'=82 +'invokespecial'=83 +'ior'=84 +'irem'=85 +'ireturn'=86 +'istore'=87 +'istore_0'=88 +'istore_1'=89 +'istore_2'=90 +'istore_3'=91 +'isub'=92 +'ixor'=93 +'ldc'=94 +'new'=95 +'nop'=96 +'pop'=97 +'pop2'=98 +'putfield'=99 +'return'=100 From 59105ccd192d9f1ddce21139d020f92fceed95c3 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Tue, 4 Sep 2012 21:38:12 -0300 Subject: [PATCH 57/79] commit --- .../iged/interpretador/gramaticas/Assembler.g | 6 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 5 +- .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 67540 -> 68604 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 18430 -> 18633 bytes .../iged/interpretador/gramaticas/Assembler.g | 6 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 5 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 1053 +++++++++-------- .../ufpb/iged/interpretador/parser/Def.java | 138 ++- .../ufpb/iged/interpretador/parser/Ref.java | 2 +- .../symboltable/classes/SimboloMetodo.java | 15 + 24 files changed, 673 insertions(+), 559 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index f6f1050..e516eac 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -77,14 +77,14 @@ superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) - | '.method' INIT '()' VOID NEWLINE operacao* '.end method' - -> ^(CONSTR_DECL INIT ^(BODY operacao*)) + | '.method' INIT (parametros | '(' parametros ')') VOID NEWLINE operacao* '.end method' + -> ^(CONSTR_DECL INIT parametros ^(BODY operacao*)) | '.method' ID (parametros | '(' parametros ')') ret = tipo NEWLINE operacao* '.end method' -> ^(METHOD_DECL ID $ret parametros ^(BODY operacao*)) ; parametros - : a = '()' -> ^(PARAMS $a) + : '()' -> ^(PARAMS VOID) | ( a = ID | a = TIPO_REF diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 14c0088..dd25fe0 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -71,7 +71,7 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .) + : ^(CONSTR_DECL INIT .+) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); @@ -88,7 +88,8 @@ entraNoMetodo { System.out.println("linha "+$ID.getLine()+ ": def method "+$ID.text); - SimboloMetodo metodo = new SimboloMetodo($ID.text+""+$tipoRet.getText(), null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($ID.text, null, escopoAtual); + metodo.setRetorno($tipoRet.getText()); metodo.def = $ID; $ID.simbolo = metodo; escopoAtual.definir(metodo); diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index f5ca7e010de29ef1724f5c15578ffba69958d1e5..fc3b8653bb3f19a4387e687b56a82f0438ddcb9d 100644 GIT binary patch delta 21 ccmZ3-x{h^&GZPc1(qvaAYbH*W$xTc;06q}~5C8xG delta 21 dcmZ3-x{h^&GZPcXv&pVZ)=V5PCO0wZ002t@29^K- diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class index 208562f0ff6ca70c71e888243ae191f4a714613c..83d699cae651370c63a61c0730c999b14dcfa120 100644 GIT binary patch delta 19 acmaFC`hs;s9TQ{K#=6OSm~;S33I@^u delta 19 acmaFC`hs;s9TTJ7MyJVpm~;R~N(Nd0 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class index a9cbc33228234663a234b991dd6d1695c86df015..a039dd90606a745c25fc7ee0af126364978c7d53 100644 GIT binary patch delta 21 ccmZo-Yhv3lory_6aq>(iYbF7;$=8^406|^_#Q*>R delta 21 dcmZo-Yhv3lor#J6>ExMA)=d1bCSPOH0RT=<2TK3| diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class index ea2c77e9a6d63da4d71ff44f418f0c63852004d0..e07e0005338c4a4a683527d4dabe2100c43bee9a 100644 GIT binary patch delta 19 bcmX@cdW>~L3=`wR$+1i}j7uiZV$uNsML7m_ delta 19 acmX@cdW>~L3=?DOUBIOgaEMTm^gp diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index 6cc9b82e7cf1b5410adb55b4325b4e81e81a5cb6..8b6e7aa0c04d309605ea2daf24e9a20b73466c52 100644 GIT binary patch delta 19 bcmbQkI)`~L3=`wh$+1i}jLRp_V$uNsMRW#y delta 19 acmX@cdW>~L3=?DKTKJo?^ delta 19 bcmbQwI-hleDHG$2$!1J8jI$;eGwA>TJ2C~I diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class index 4a6afdf9a72fb08034b7cbf7d680c67af05193d0..3782620cce5b700e022f7f3b72c0beee002bc3cd 100644 GIT binary patch delta 19 bcmZ3%x`K6s9TVfK$@WY(jB6&>FzEmQK7a-A delta 19 acmZ3%x`K6s9TQ{TWP2tX#)8Q;OgaEMzy){! diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class index 8064f351ad9a2fe40aaaeba030e8a783e72cf8e8..ab6990c82f2fdcda2f8fcacb5efc7164da2482c3 100644 GIT binary patch delta 19 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 OF|_rtt|Qv|r2juySCQxd literal 67540 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

{=)te@2UnGjUkkh@lEA0p|Va-HJXrW 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 diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index f6f1050..e516eac 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -77,14 +77,14 @@ superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; membroClasse : '.field' ID tipo -> ^(FIELD_DECL ID tipo) - | '.method' INIT '()' VOID NEWLINE operacao* '.end method' - -> ^(CONSTR_DECL INIT ^(BODY operacao*)) + | '.method' INIT (parametros | '(' parametros ')') VOID NEWLINE operacao* '.end method' + -> ^(CONSTR_DECL INIT parametros ^(BODY operacao*)) | '.method' ID (parametros | '(' parametros ')') ret = tipo NEWLINE operacao* '.end method' -> ^(METHOD_DECL ID $ret parametros ^(BODY operacao*)) ; parametros - : a = '()' -> ^(PARAMS $a) + : '()' -> ^(PARAMS VOID) | ( a = ID | a = TIPO_REF diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 14c0088..dd25fe0 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -71,7 +71,7 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .) + : ^(CONSTR_DECL INIT .+) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); @@ -88,7 +88,8 @@ entraNoMetodo { System.out.println("linha "+$ID.getLine()+ ": def method "+$ID.text); - SimboloMetodo metodo = new SimboloMetodo($ID.text+""+$tipoRet.getText(), null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($ID.text, null, escopoAtual); + metodo.setRetorno($tipoRet.getText()); metodo.def = $ID; $ID.simbolo = metodo; escopoAtual.definir(metodo); diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index a5cf2db..4a215a4 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 21:01:21 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 21:35:37 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 273a0af..f46f6d9 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 21:01:20 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 21:35:36 package br.ufpb.iged.interpretador.parser; @@ -1002,7 +1002,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 30, ID, membroClasse, superClasse + // elements: ID, superClasse, 30, membroClasse // token labels: // rule labels: retval // token list labels: @@ -1181,7 +1181,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( CONSTR_DECL INIT ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1193,43 +1193,49 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti Token ID31=null; Token string_literal33=null; Token INIT34=null; - Token string_literal35=null; - Token VOID36=null; - Token NEWLINE37=null; - Token string_literal39=null; - Token string_literal40=null; - Token ID41=null; - Token char_literal43=null; - Token char_literal45=null; - Token NEWLINE46=null; - Token string_literal48=null; + Token char_literal36=null; + Token char_literal38=null; + Token VOID39=null; + Token NEWLINE40=null; + Token string_literal42=null; + Token string_literal43=null; + Token ID44=null; + Token char_literal46=null; + Token char_literal48=null; + Token NEWLINE49=null; + Token string_literal51=null; AssemblerParser.tipo_return ret =null; AssemblerParser.tipo_return tipo32 =null; - AssemblerParser.operacao_return operacao38 =null; + AssemblerParser.parametros_return parametros35 =null; - AssemblerParser.parametros_return parametros42 =null; + AssemblerParser.parametros_return parametros37 =null; - AssemblerParser.parametros_return parametros44 =null; + AssemblerParser.operacao_return operacao41 =null; - AssemblerParser.operacao_return operacao47 =null; + AssemblerParser.parametros_return parametros45 =null; + + AssemblerParser.parametros_return parametros47 =null; + + AssemblerParser.operacao_return operacao50 =null; BytecodesAST string_literal30_tree=null; BytecodesAST ID31_tree=null; BytecodesAST string_literal33_tree=null; BytecodesAST INIT34_tree=null; - BytecodesAST string_literal35_tree=null; - BytecodesAST VOID36_tree=null; - BytecodesAST NEWLINE37_tree=null; - BytecodesAST string_literal39_tree=null; - BytecodesAST string_literal40_tree=null; - BytecodesAST ID41_tree=null; - BytecodesAST char_literal43_tree=null; - BytecodesAST char_literal45_tree=null; - BytecodesAST NEWLINE46_tree=null; - BytecodesAST string_literal48_tree=null; + BytecodesAST char_literal36_tree=null; + BytecodesAST char_literal38_tree=null; + BytecodesAST VOID39_tree=null; + BytecodesAST NEWLINE40_tree=null; + BytecodesAST string_literal42_tree=null; + BytecodesAST string_literal43_tree=null; + BytecodesAST ID44_tree=null; + BytecodesAST char_literal46_tree=null; + BytecodesAST char_literal48_tree=null; + BytecodesAST NEWLINE49_tree=null; + BytecodesAST string_literal51_tree=null; RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); @@ -1238,31 +1244,30 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); - RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' -> ^( CONSTR_DECL INIT ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ) - int alt11=3; - int LA11_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ) + int alt12=3; + int LA12_0 = input.LA(1); - if ( (LA11_0==33) ) { - alt11=1; + if ( (LA12_0==33) ) { + alt12=1; } - else if ( (LA11_0==34) ) { - int LA11_2 = input.LA(2); + else if ( (LA12_0==34) ) { + int LA12_2 = input.LA(2); - if ( (LA11_2==INIT) ) { - alt11=2; + if ( (LA12_2==INIT) ) { + alt12=2; } - else if ( (LA11_2==ID) ) { - alt11=3; + else if ( (LA12_2==ID) ) { + alt12=3; } else { NoViableAltException nvae = - new NoViableAltException("", 11, 2, input); + new NoViableAltException("", 12, 2, input); throw nvae; @@ -1270,12 +1275,12 @@ else if ( (LA11_2==ID) ) { } else { NoViableAltException nvae = - new NoViableAltException("", 11, 0, input); + new NoViableAltException("", 12, 0, input); throw nvae; } - switch (alt11) { + switch (alt12) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: '.field' ID tipo { @@ -1295,7 +1300,7 @@ else if ( (LA11_2==ID) ) { stream_tipo.add(tipo32.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1331,7 +1336,7 @@ else if ( (LA11_2==ID) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.method' INIT '()' VOID NEWLINE ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( operacao )* '.end method' { string_literal33=(Token)match(input,34,FOLLOW_34_in_membroClasse586); stream_34.add(string_literal33); @@ -1341,55 +1346,105 @@ else if ( (LA11_2==ID) ) { stream_INIT.add(INIT34); - string_literal35=(Token)match(input,28,FOLLOW_28_in_membroClasse590); - stream_28.add(string_literal35); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:22: ( parametros | '(' parametros ')' ) + int alt8=2; + int LA8_0 = input.LA(1); + if ( (LA8_0==ID||LA8_0==TIPO_REF||LA8_0==28) ) { + alt8=1; + } + else if ( (LA8_0==27) ) { + alt8=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); - VOID36=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse592); - stream_VOID.add(VOID36); + throw nvae; + } + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:23: parametros + { + pushFollow(FOLLOW_parametros_in_membroClasse591); + parametros35=parametros(); + + state._fsp--; + + stream_parametros.add(parametros35.getTree()); + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:36: '(' parametros ')' + { + char_literal36=(Token)match(input,27,FOLLOW_27_in_membroClasse595); + stream_27.add(char_literal36); - NEWLINE37=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse594); - stream_NEWLINE.add(NEWLINE37); + pushFollow(FOLLOW_parametros_in_membroClasse597); + parametros37=parametros(); + + state._fsp--; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:40: ( operacao )* - loop8: + stream_parametros.add(parametros37.getTree()); + + char_literal38=(Token)match(input,29,FOLLOW_29_in_membroClasse599); + stream_29.add(char_literal38); + + + } + break; + + } + + + VOID39=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse602); + stream_VOID.add(VOID39); + + + NEWLINE40=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse604); + stream_NEWLINE.add(NEWLINE40); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:69: ( operacao )* + loop9: do { - int alt8=2; - int LA8_0 = input.LA(1); + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA8_0==ID||LA8_0==NEWLINE||(LA8_0 >= 38 && LA8_0 <= 100)) ) { - alt8=1; + if ( (LA9_0==ID||LA9_0==NEWLINE||(LA9_0 >= 38 && LA9_0 <= 100)) ) { + alt9=1; } - switch (alt8) { + switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:40: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:69: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse596); - operacao38=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse606); + operacao41=operacao(); state._fsp--; - stream_operacao.add(operacao38.getTree()); + stream_operacao.add(operacao41.getTree()); } break; default : - break loop8; + break loop9; } } while (true); - string_literal39=(Token)match(input,32,FOLLOW_32_in_membroClasse599); - stream_32.add(string_literal39); + string_literal42=(Token)match(input,32,FOLLOW_32_in_membroClasse609); + stream_32.add(string_literal42); // AST REWRITE - // elements: operacao, INIT + // elements: INIT, operacao, parametros // token labels: // rule labels: retval // token list labels: @@ -1399,9 +1454,9 @@ else if ( (LA11_2==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 81:2: -> ^( CONSTR_DECL INIT ^( BODY ( operacao )* ) ) + // 81:2: -> ^( CONSTR_DECL INIT parametros ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:5: ^( CONSTR_DECL INIT ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:5: ^( CONSTR_DECL INIT parametros ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1412,14 +1467,16 @@ else if ( (LA11_2==ID) ) { stream_INIT.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:24: ^( BODY ( operacao )* ) + adaptor.addChild(root_1, stream_parametros.nextTree()); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:35: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:31: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:42: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1442,60 +1499,60 @@ else if ( (LA11_2==ID) ) { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:7: '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' { - string_literal40=(Token)match(input,34,FOLLOW_34_in_membroClasse623); - stream_34.add(string_literal40); + string_literal43=(Token)match(input,34,FOLLOW_34_in_membroClasse635); + stream_34.add(string_literal43); - ID41=(Token)match(input,ID,FOLLOW_ID_in_membroClasse625); - stream_ID.add(ID41); + ID44=(Token)match(input,ID,FOLLOW_ID_in_membroClasse637); + stream_ID.add(ID44); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:20: ( parametros | '(' parametros ')' ) - int alt9=2; - int LA9_0 = input.LA(1); + int alt10=2; + int LA10_0 = input.LA(1); - if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==28) ) { - alt9=1; + if ( (LA10_0==ID||LA10_0==TIPO_REF||LA10_0==28) ) { + alt10=1; } - else if ( (LA9_0==27) ) { - alt9=2; + else if ( (LA10_0==27) ) { + alt10=2; } else { NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 10, 0, input); throw nvae; } - switch (alt9) { + switch (alt10) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:21: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse628); - parametros42=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse640); + parametros45=parametros(); state._fsp--; - stream_parametros.add(parametros42.getTree()); + stream_parametros.add(parametros45.getTree()); } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:34: '(' parametros ')' { - char_literal43=(Token)match(input,27,FOLLOW_27_in_membroClasse632); - stream_27.add(char_literal43); + char_literal46=(Token)match(input,27,FOLLOW_27_in_membroClasse644); + stream_27.add(char_literal46); - pushFollow(FOLLOW_parametros_in_membroClasse634); - parametros44=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse646); + parametros47=parametros(); state._fsp--; - stream_parametros.add(parametros44.getTree()); + stream_parametros.add(parametros47.getTree()); - char_literal45=(Token)match(input,29,FOLLOW_29_in_membroClasse636); - stream_29.add(char_literal45); + char_literal48=(Token)match(input,29,FOLLOW_29_in_membroClasse648); + stream_29.add(char_literal48); } @@ -1504,54 +1561,54 @@ else if ( (LA9_0==27) ) { } - pushFollow(FOLLOW_tipo_in_membroClasse643); + pushFollow(FOLLOW_tipo_in_membroClasse655); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE46=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse645); - stream_NEWLINE.add(NEWLINE46); + NEWLINE49=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse657); + stream_NEWLINE.add(NEWLINE49); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:73: ( operacao )* - loop10: + loop11: do { - int alt10=2; - int LA10_0 = input.LA(1); + int alt11=2; + int LA11_0 = input.LA(1); - if ( (LA10_0==ID||LA10_0==NEWLINE||(LA10_0 >= 38 && LA10_0 <= 100)) ) { - alt10=1; + if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 38 && LA11_0 <= 100)) ) { + alt11=1; } - switch (alt10) { + switch (alt11) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:73: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse647); - operacao47=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse659); + operacao50=operacao(); state._fsp--; - stream_operacao.add(operacao47.getTree()); + stream_operacao.add(operacao50.getTree()); } break; default : - break loop10; + break loop11; } } while (true); - string_literal48=(Token)match(input,32,FOLLOW_32_in_membroClasse650); - stream_32.add(string_literal48); + string_literal51=(Token)match(input,32,FOLLOW_32_in_membroClasse662); + stream_32.add(string_literal51); // AST REWRITE - // elements: parametros, operacao, ret, ID + // elements: operacao, ID, ret, parametros // token labels: // rule labels: ret, retval // token list labels: @@ -1637,7 +1694,7 @@ public static class parametros_return extends ParserRuleReturnScope { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:1: parametros : (a= '()' -> ^( PARAMS $a) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); public final AssemblerParser.parametros_return parametros() throws RecognitionException { AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); @@ -1646,60 +1703,63 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx BytecodesAST root_0 = null; Token a=null; + Token string_literal52=null; BytecodesAST a_tree=null; + BytecodesAST string_literal52_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:2: (a= '()' -> ^( PARAMS $a) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) - int alt13=2; - int LA13_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) + int alt14=2; + int LA14_0 = input.LA(1); - if ( (LA13_0==28) ) { - alt13=1; + if ( (LA14_0==28) ) { + alt14=1; } - else if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { - alt13=2; + else if ( (LA14_0==ID||LA14_0==TIPO_REF) ) { + alt14=2; } else { NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); + new NoViableAltException("", 14, 0, input); throw nvae; } - switch (alt13) { + switch (alt14) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:4: a= '()' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:4: '()' { - a=(Token)match(input,28,FOLLOW_28_in_parametros700); - stream_28.add(a); + string_literal52=(Token)match(input,28,FOLLOW_28_in_parametros708); + stream_28.add(string_literal52); // AST REWRITE - // elements: a - // token labels: a + // elements: + // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; - RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 87:13: -> ^( PARAMS $a) + // 87:9: -> ^( PARAMS VOID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:16: ^( PARAMS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:12: ^( PARAMS VOID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(PARAMS, "PARAMS") , root_1); - adaptor.addChild(root_1, stream_a.nextNode()); + adaptor.addChild(root_1, + (BytecodesAST)adaptor.create(VOID, "VOID") + ); adaptor.addChild(root_0, root_1); } @@ -1715,31 +1775,31 @@ else if ( (LA13_0==ID||LA13_0==TIPO_REF) ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:4: (a= ID |a= TIPO_REF )+ { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:4: (a= ID |a= TIPO_REF )+ - int cnt12=0; - loop12: + int cnt13=0; + loop13: do { - int alt12=3; - int LA12_0 = input.LA(1); + int alt13=3; + int LA13_0 = input.LA(1); - if ( (LA12_0==TIPO_REF) ) { - int LA12_1 = input.LA(2); + if ( (LA13_0==TIPO_REF) ) { + int LA13_2 = input.LA(2); - if ( (LA12_1==ID||LA12_1==INT||(LA12_1 >= TIPO_REF && LA12_1 <= VOID)||LA12_1==29) ) { - alt12=2; + if ( (LA13_2==ID||LA13_2==INT||(LA13_2 >= TIPO_REF && LA13_2 <= VOID)||LA13_2==29) ) { + alt13=2; } } - else if ( (LA12_0==ID) ) { - alt12=1; + else if ( (LA13_0==ID) ) { + alt13=1; } - switch (alt12) { + switch (alt13) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= ID { - a=(Token)match(input,ID,FOLLOW_ID_in_parametros728); + a=(Token)match(input,ID,FOLLOW_ID_in_parametros735); stream_ID.add(a); @@ -1748,7 +1808,7 @@ else if ( (LA12_0==ID) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= TIPO_REF { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros743); + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros750); stream_TIPO_REF.add(a); @@ -1756,12 +1816,12 @@ else if ( (LA12_0==ID) ) { break; default : - if ( cnt12 >= 1 ) break loop12; + if ( cnt13 >= 1 ) break loop13; EarlyExitException eee = - new EarlyExitException(12, input); + new EarlyExitException(13, input); throw eee; } - cnt12++; + cnt13++; } while (true); @@ -1844,9 +1904,9 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST root_0 = null; - Token set49=null; + Token set53=null; - BytecodesAST set49_tree=null; + BytecodesAST set53_tree=null; try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: ( 'areturn' | 'ireturn' | 'return' ) @@ -1855,12 +1915,12 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio root_0 = (BytecodesAST)adaptor.nil(); - set49=(Token)input.LT(1); + set53=(Token)input.LT(1); if ( input.LA(1)==44||input.LA(1)==86||input.LA(1)==100 ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set49) + (BytecodesAST)adaptor.create(set53) ); state.errorRecovery=false; } @@ -1910,20 +1970,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal52=null; + Token char_literal56=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; - AssemblerParser.tipo_return tipo50 =null; + AssemblerParser.tipo_return tipo54 =null; - AssemblerParser.tipo_return tipo51 =null; + AssemblerParser.tipo_return tipo55 =null; BytecodesAST a_tree=null; - BytecodesAST char_literal52_tree=null; + BytecodesAST char_literal56_tree=null; RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); @@ -1935,60 +1995,60 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) - int alt14=4; + int alt15=4; switch ( input.LA(1) ) { case 51: { - alt14=1; + alt15=1; } break; case 99: { - alt14=2; + alt15=2; } break; case 83: { - alt14=3; + alt15=3; } break; case 95: { - alt14=4; + alt15=4; } break; default: NoViableAltException nvae = - new NoViableAltException("", 14, 0, input); + new NoViableAltException("", 15, 0, input); throw nvae; } - switch (alt14) { + switch (alt15) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,51,FOLLOW_51_in_manipulacaoObjetos805); + a=(Token)match(input,51,FOLLOW_51_in_manipulacaoObjetos812); stream_51.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos811); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos818); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos813); - tipo50=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos820); + tipo54=tipo(); state._fsp--; - stream_tipo.add(tipo50.getTree()); + stream_tipo.add(tipo54.getTree()); // AST REWRITE - // elements: 51, tipo, b + // elements: tipo, b, 51 // token labels: // rule labels: retval, b // token list labels: @@ -2025,26 +2085,26 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,99,FOLLOW_99_in_manipulacaoObjetos851); + a=(Token)match(input,99,FOLLOW_99_in_manipulacaoObjetos858); stream_99.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos857); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos864); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos859); - tipo51=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos866); + tipo55=tipo(); state._fsp--; - stream_tipo.add(tipo51.getTree()); + stream_tipo.add(tipo55.getTree()); // AST REWRITE - // elements: tipo, b, 99 + // elements: b, 99, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2081,22 +2141,22 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,83,FOLLOW_83_in_manipulacaoObjetos897); + a=(Token)match(input,83,FOLLOW_83_in_manipulacaoObjetos904); stream_83.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos903); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos910); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal52=(Token)match(input,36,FOLLOW_36_in_manipulacaoObjetos905); - stream_36.add(char_literal52); + char_literal56=(Token)match(input,36,FOLLOW_36_in_manipulacaoObjetos912); + stream_36.add(char_literal56); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos911); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos918); d=chamadaMetodo(); state._fsp--; @@ -2104,7 +2164,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: 83, d, c + // elements: c, 83, d // token labels: // rule labels: retval, d, c // token list labels: @@ -2142,11 +2202,11 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:22: a= 'new' c= classe { - a=(Token)match(input,95,FOLLOW_95_in_manipulacaoObjetos972); + a=(Token)match(input,95,FOLLOW_95_in_manipulacaoObjetos979); stream_95.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos977); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos984); c=classe(); state._fsp--; @@ -2154,7 +2214,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: c, 95 + // elements: 95, c // token labels: // rule labels: retval, c // token list labels: @@ -2225,9 +2285,9 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set53=null; + Token set57=null; - BytecodesAST set53_tree=null; + BytecodesAST set57_tree=null; try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:6: ( INT | VOID | TIPO_REF ) @@ -2236,12 +2296,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { root_0 = (BytecodesAST)adaptor.nil(); - set53=(Token)input.LT(1); + set57=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set53) + (BytecodesAST)adaptor.create(set57) ); state.errorRecovery=false; } @@ -2306,56 +2366,56 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt15=7; + int alt16=7; switch ( input.LA(1) ) { case 53: { - alt15=1; + alt16=1; } break; case 92: { - alt15=2; + alt16=2; } break; case 81: { - alt15=3; + alt16=3; } break; case 62: { - alt15=4; + alt16=4; } break; case 85: { - alt15=5; + alt16=5; } break; case 75: { - alt15=6; + alt16=6; } break; case 82: { - alt15=7; + alt16=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 15, 0, input); + new NoViableAltException("", 16, 0, input); throw nvae; } - switch (alt15) { + switch (alt16) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:16: a= 'iadd' { - a=(Token)match(input,53,FOLLOW_53_in_aritmetica1055); + a=(Token)match(input,53,FOLLOW_53_in_aritmetica1062); stream_53.add(a); @@ -2364,7 +2424,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:19: a= 'isub' { - a=(Token)match(input,92,FOLLOW_92_in_aritmetica1079); + a=(Token)match(input,92,FOLLOW_92_in_aritmetica1086); stream_92.add(a); @@ -2373,7 +2433,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:19: a= 'imul' { - a=(Token)match(input,81,FOLLOW_81_in_aritmetica1103); + a=(Token)match(input,81,FOLLOW_81_in_aritmetica1110); stream_81.add(a); @@ -2382,7 +2442,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:19: a= 'idiv' { - a=(Token)match(input,62,FOLLOW_62_in_aritmetica1127); + a=(Token)match(input,62,FOLLOW_62_in_aritmetica1134); stream_62.add(a); @@ -2391,7 +2451,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:19: a= 'irem' { - a=(Token)match(input,85,FOLLOW_85_in_aritmetica1151); + a=(Token)match(input,85,FOLLOW_85_in_aritmetica1158); stream_85.add(a); @@ -2400,7 +2460,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:19: a= 'iinc' { - a=(Token)match(input,75,FOLLOW_75_in_aritmetica1175); + a=(Token)match(input,75,FOLLOW_75_in_aritmetica1182); stream_75.add(a); @@ -2409,7 +2469,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:19: a= 'ineg' { - a=(Token)match(input,82,FOLLOW_82_in_aritmetica1199); + a=(Token)match(input,82,FOLLOW_82_in_aritmetica1206); stream_82.add(a); @@ -2514,101 +2574,101 @@ public final AssemblerParser.load_return load() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt16=16; + int alt17=16; switch ( input.LA(1) ) { case 61: { - alt16=1; + alt17=1; } break; case 55: { - alt16=2; + alt17=2; } break; case 56: { - alt16=3; + alt17=3; } break; case 57: { - alt16=4; + alt17=4; } break; case 58: { - alt16=5; + alt17=5; } break; case 59: { - alt16=6; + alt17=6; } break; case 60: { - alt16=7; + alt17=7; } break; case 38: { - alt16=8; + alt17=8; } break; case 77: { - alt16=9; + alt17=9; } break; case 78: { - alt16=10; + alt17=10; } break; case 79: { - alt16=11; + alt17=11; } break; case 80: { - alt16=12; + alt17=12; } break; case 40: { - alt16=13; + alt17=13; } break; case 41: { - alt16=14; + alt17=14; } break; case 42: { - alt16=15; + alt17=15; } break; case 43: { - alt16=16; + alt17=16; } break; default: NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + new NoViableAltException("", 17, 0, input); throw nvae; } - switch (alt16) { + switch (alt17) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'iconst_m1' { - a=(Token)match(input,61,FOLLOW_61_in_load1273); + a=(Token)match(input,61,FOLLOW_61_in_load1280); stream_61.add(a); @@ -2617,7 +2677,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'iconst_0' { - a=(Token)match(input,55,FOLLOW_55_in_load1291); + a=(Token)match(input,55,FOLLOW_55_in_load1298); stream_55.add(a); @@ -2626,7 +2686,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'iconst_1' { - a=(Token)match(input,56,FOLLOW_56_in_load1309); + a=(Token)match(input,56,FOLLOW_56_in_load1316); stream_56.add(a); @@ -2635,7 +2695,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'iconst_2' { - a=(Token)match(input,57,FOLLOW_57_in_load1327); + a=(Token)match(input,57,FOLLOW_57_in_load1334); stream_57.add(a); @@ -2644,7 +2704,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'iconst_3' { - a=(Token)match(input,58,FOLLOW_58_in_load1345); + a=(Token)match(input,58,FOLLOW_58_in_load1352); stream_58.add(a); @@ -2653,7 +2713,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'iconst_4' { - a=(Token)match(input,59,FOLLOW_59_in_load1363); + a=(Token)match(input,59,FOLLOW_59_in_load1370); stream_59.add(a); @@ -2662,7 +2722,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'iconst_5' { - a=(Token)match(input,60,FOLLOW_60_in_load1381); + a=(Token)match(input,60,FOLLOW_60_in_load1388); stream_60.add(a); @@ -2671,7 +2731,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'aconst_null' { - a=(Token)match(input,38,FOLLOW_38_in_load1399); + a=(Token)match(input,38,FOLLOW_38_in_load1406); stream_38.add(a); @@ -2680,7 +2740,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'iload_0' { - a=(Token)match(input,77,FOLLOW_77_in_load1417); + a=(Token)match(input,77,FOLLOW_77_in_load1424); stream_77.add(a); @@ -2689,7 +2749,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'iload_1' { - a=(Token)match(input,78,FOLLOW_78_in_load1435); + a=(Token)match(input,78,FOLLOW_78_in_load1442); stream_78.add(a); @@ -2698,7 +2758,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'iload_2' { - a=(Token)match(input,79,FOLLOW_79_in_load1453); + a=(Token)match(input,79,FOLLOW_79_in_load1460); stream_79.add(a); @@ -2707,7 +2767,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'iload_3' { - a=(Token)match(input,80,FOLLOW_80_in_load1471); + a=(Token)match(input,80,FOLLOW_80_in_load1478); stream_80.add(a); @@ -2716,7 +2776,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'aload_0' { - a=(Token)match(input,40,FOLLOW_40_in_load1489); + a=(Token)match(input,40,FOLLOW_40_in_load1496); stream_40.add(a); @@ -2725,7 +2785,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 14 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'aload_1' { - a=(Token)match(input,41,FOLLOW_41_in_load1507); + a=(Token)match(input,41,FOLLOW_41_in_load1514); stream_41.add(a); @@ -2734,7 +2794,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 15 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'aload_2' { - a=(Token)match(input,42,FOLLOW_42_in_load1525); + a=(Token)match(input,42,FOLLOW_42_in_load1532); stream_42.add(a); @@ -2743,7 +2803,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 16 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'aload_3' { - a=(Token)match(input,43,FOLLOW_43_in_load1543); + a=(Token)match(input,43,FOLLOW_43_in_load1550); stream_43.add(a); @@ -2838,40 +2898,40 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) - int alt17=3; + int alt18=3; switch ( input.LA(1) ) { case 76: { - alt17=1; + alt18=1; } break; case 94: { - alt17=2; + alt18=2; } break; case 39: { - alt17=3; + alt18=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 17, 0, input); + new NoViableAltException("", 18, 0, input); throw nvae; } - switch (alt17) { + switch (alt18) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,76,FOLLOW_76_in_loadint1593); + a=(Token)match(input,76,FOLLOW_76_in_loadint1600); stream_76.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1599); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1606); stream_INTEIRO.add(b); @@ -2880,11 +2940,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,94,FOLLOW_94_in_loadint1619); + a=(Token)match(input,94,FOLLOW_94_in_loadint1626); stream_94.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1625); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1632); stream_INTEIRO.add(b); @@ -2893,11 +2953,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,39,FOLLOW_39_in_loadint1645); + a=(Token)match(input,39,FOLLOW_39_in_loadint1652); stream_39.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1651); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1658); stream_INTEIRO.add(b); @@ -2908,7 +2968,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -2997,61 +3057,61 @@ public final AssemblerParser.store_return store() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt18=8; + int alt19=8; switch ( input.LA(1) ) { case 88: { - alt18=1; + alt19=1; } break; case 89: { - alt18=2; + alt19=2; } break; case 90: { - alt18=3; + alt19=3; } break; case 91: { - alt18=4; + alt19=4; } break; case 46: { - alt18=5; + alt19=5; } break; case 47: { - alt18=6; + alt19=6; } break; case 48: { - alt18=7; + alt19=7; } break; case 49: { - alt18=8; + alt19=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 18, 0, input); + new NoViableAltException("", 19, 0, input); throw nvae; } - switch (alt18) { + switch (alt19) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: a= 'istore_0' { - a=(Token)match(input,88,FOLLOW_88_in_store1713); + a=(Token)match(input,88,FOLLOW_88_in_store1720); stream_88.add(a); @@ -3060,7 +3120,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'istore_1' { - a=(Token)match(input,89,FOLLOW_89_in_store1731); + a=(Token)match(input,89,FOLLOW_89_in_store1738); stream_89.add(a); @@ -3069,7 +3129,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'istore_2' { - a=(Token)match(input,90,FOLLOW_90_in_store1749); + a=(Token)match(input,90,FOLLOW_90_in_store1756); stream_90.add(a); @@ -3078,7 +3138,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'istore_3' { - a=(Token)match(input,91,FOLLOW_91_in_store1767); + a=(Token)match(input,91,FOLLOW_91_in_store1774); stream_91.add(a); @@ -3087,7 +3147,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'astore_0' { - a=(Token)match(input,46,FOLLOW_46_in_store1785); + a=(Token)match(input,46,FOLLOW_46_in_store1792); stream_46.add(a); @@ -3096,7 +3156,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:13: a= 'astore_1' { - a=(Token)match(input,47,FOLLOW_47_in_store1803); + a=(Token)match(input,47,FOLLOW_47_in_store1810); stream_47.add(a); @@ -3105,7 +3165,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:13: a= 'astore_2' { - a=(Token)match(input,48,FOLLOW_48_in_store1821); + a=(Token)match(input,48,FOLLOW_48_in_store1828); stream_48.add(a); @@ -3114,7 +3174,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:13: a= 'astore_3' { - a=(Token)match(input,49,FOLLOW_49_in_store1839); + a=(Token)match(input,49,FOLLOW_49_in_store1846); stream_49.add(a); @@ -3208,31 +3268,31 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) - int alt19=2; - int LA19_0 = input.LA(1); + int alt20=2; + int LA20_0 = input.LA(1); - if ( (LA19_0==87) ) { - alt19=1; + if ( (LA20_0==87) ) { + alt20=1; } - else if ( (LA19_0==45) ) { - alt19=2; + else if ( (LA20_0==45) ) { + alt20=2; } else { NoViableAltException nvae = - new NoViableAltException("", 19, 0, input); + new NoViableAltException("", 20, 0, input); throw nvae; } - switch (alt19) { + switch (alt20) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,87,FOLLOW_87_in_storeint1893); + a=(Token)match(input,87,FOLLOW_87_in_storeint1900); stream_87.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1899); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1906); stream_INTEIRO.add(b); @@ -3241,11 +3301,11 @@ else if ( (LA19_0==45) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,45,FOLLOW_45_in_storeint1920); + a=(Token)match(input,45,FOLLOW_45_in_storeint1927); stream_45.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1926); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1933); stream_INTEIRO.add(b); @@ -3256,7 +3316,7 @@ else if ( (LA19_0==45) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3340,36 +3400,36 @@ public final AssemblerParser.logica_return logica() throws RecognitionException // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt20=3; + int alt21=3; switch ( input.LA(1) ) { case 54: { - alt20=1; + alt21=1; } break; case 84: { - alt20=2; + alt21=2; } break; case 93: { - alt20=3; + alt21=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 20, 0, input); + new NoViableAltException("", 21, 0, input); throw nvae; } - switch (alt20) { + switch (alt21) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:12: a= 'iand' { - a=(Token)match(input,54,FOLLOW_54_in_logica1986); + a=(Token)match(input,54,FOLLOW_54_in_logica1993); stream_54.add(a); @@ -3378,7 +3438,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'ior' { - a=(Token)match(input,84,FOLLOW_84_in_logica2005); + a=(Token)match(input,84,FOLLOW_84_in_logica2012); stream_84.add(a); @@ -3387,7 +3447,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:14: a= 'ixor' { - a=(Token)match(input,93,FOLLOW_93_in_logica2024); + a=(Token)match(input,93,FOLLOW_93_in_logica2031); stream_93.add(a); @@ -3492,90 +3552,90 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt21=13; + int alt22=13; switch ( input.LA(1) ) { case 69: { - alt21=1; + alt22=1; } break; case 74: { - alt21=2; + alt22=2; } break; case 73: { - alt21=3; + alt22=3; } break; case 70: { - alt21=4; + alt22=4; } break; case 71: { - alt21=5; + alt22=5; } break; case 72: { - alt21=6; + alt22=6; } break; case 63: { - alt21=7; + alt22=7; } break; case 68: { - alt21=8; + alt22=8; } break; case 67: { - alt21=9; + alt22=9; } break; case 64: { - alt21=10; + alt22=10; } break; case 65: { - alt21=11; + alt22=11; } break; case 66: { - alt21=12; + alt22=12; } break; case 52: { - alt21=13; + alt22=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 21, 0, input); + new NoViableAltException("", 22, 0, input); throw nvae; } - switch (alt21) { + switch (alt22) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:12: a= 'ifeq' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2075); + a=(Token)match(input,69,FOLLOW_69_in_desvio2082); stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2081); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2088); stream_ID.add(b); @@ -3584,11 +3644,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'ifne' b= ID { - a=(Token)match(input,74,FOLLOW_74_in_desvio2100); + a=(Token)match(input,74,FOLLOW_74_in_desvio2107); stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2106); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2113); stream_ID.add(b); @@ -3597,11 +3657,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'iflt' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2125); + a=(Token)match(input,73,FOLLOW_73_in_desvio2132); stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2131); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2138); stream_ID.add(b); @@ -3610,11 +3670,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:14: a= 'ifge' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2150); + a=(Token)match(input,70,FOLLOW_70_in_desvio2157); stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2156); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2163); stream_ID.add(b); @@ -3623,11 +3683,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'ifgt' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2175); + a=(Token)match(input,71,FOLLOW_71_in_desvio2182); stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2181); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2188); stream_ID.add(b); @@ -3636,11 +3696,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'ifle' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2200); + a=(Token)match(input,72,FOLLOW_72_in_desvio2207); stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2206); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2213); stream_ID.add(b); @@ -3649,11 +3709,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2225); + a=(Token)match(input,63,FOLLOW_63_in_desvio2232); stream_63.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2231); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2238); stream_ID.add(b); @@ -3662,11 +3722,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2250); + a=(Token)match(input,68,FOLLOW_68_in_desvio2257); stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2256); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2263); stream_ID.add(b); @@ -3675,11 +3735,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,67,FOLLOW_67_in_desvio2275); + a=(Token)match(input,67,FOLLOW_67_in_desvio2282); stream_67.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2281); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2288); stream_ID.add(b); @@ -3688,11 +3748,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2300); + a=(Token)match(input,64,FOLLOW_64_in_desvio2307); stream_64.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2306); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2313); stream_ID.add(b); @@ -3701,11 +3761,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio2325); + a=(Token)match(input,65,FOLLOW_65_in_desvio2332); stream_65.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2331); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2338); stream_ID.add(b); @@ -3714,11 +3774,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'if_icmple' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio2350); + a=(Token)match(input,66,FOLLOW_66_in_desvio2357); stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2356); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2363); stream_ID.add(b); @@ -3727,11 +3787,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'goto' b= ID { - a=(Token)match(input,52,FOLLOW_52_in_desvio2375); + a=(Token)match(input,52,FOLLOW_52_in_desvio2382); stream_52.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2381); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2388); stream_ID.add(b); @@ -3742,7 +3802,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3826,36 +3886,36 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) - int alt22=3; + int alt23=3; switch ( input.LA(1) ) { case 97: { - alt22=1; + alt23=1; } break; case 98: { - alt22=2; + alt23=2; } break; case 50: { - alt22=3; + alt23=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 22, 0, input); + new NoViableAltException("", 23, 0, input); throw nvae; } - switch (alt22) { + switch (alt23) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:11: a= 'pop' { - a=(Token)match(input,97,FOLLOW_97_in_pilha2442); + a=(Token)match(input,97,FOLLOW_97_in_pilha2449); stream_97.add(a); @@ -3864,7 +3924,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:13: a= 'pop2' { - a=(Token)match(input,98,FOLLOW_98_in_pilha2460); + a=(Token)match(input,98,FOLLOW_98_in_pilha2467); stream_98.add(a); @@ -3873,7 +3933,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:13: a= 'dup' { - a=(Token)match(input,50,FOLLOW_50_in_pilha2478); + a=(Token)match(input,50,FOLLOW_50_in_pilha2485); stream_50.add(a); @@ -3954,11 +4014,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal54=null; + Token char_literal58=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal54_tree=null; + BytecodesAST char_literal58_tree=null; BytecodesAST cls_tree=null; @@ -3972,19 +4032,19 @@ public final AssemblerParser.classe_return classe() throws RecognitionException // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:8: (cls+= ID '/' )* - loop23: + loop24: do { - int alt23=2; - int LA23_0 = input.LA(1); + int alt24=2; + int LA24_0 = input.LA(1); - if ( (LA23_0==ID) ) { - int LA23_1 = input.LA(2); + if ( (LA24_0==ID) ) { + int LA24_1 = input.LA(2); - if ( (LA23_1==36) ) { - int LA23_2 = input.LA(3); + if ( (LA24_1==36) ) { + int LA24_2 = input.LA(3); - if ( (LA23_2==ID) ) { - alt23=1; + if ( (LA24_2==ID) ) { + alt24=1; } @@ -3994,11 +4054,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } - switch (alt23) { + switch (alt24) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2544); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2551); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4008,18 +4068,18 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal54=(Token)match(input,36,FOLLOW_36_in_classe2546); - char_literal54_tree = - (BytecodesAST)adaptor.create(char_literal54) + char_literal58=(Token)match(input,36,FOLLOW_36_in_classe2553); + char_literal58_tree = + (BytecodesAST)adaptor.create(char_literal58) ; - adaptor.addChild(root_0, char_literal54_tree); + adaptor.addChild(root_0, char_literal58_tree); } break; default : - break loop23; + break loop24; } } while (true); @@ -4027,7 +4087,7 @@ public final AssemblerParser.classe_return classe() throws RecognitionException // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:25: (cls+= ID ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2555); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2562); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4104,21 +4164,21 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2595); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2602); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,28,FOLLOW_28_in_chamadaMetodo2601); + par=(Token)match(input,28,FOLLOW_28_in_chamadaMetodo2608); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2607); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2614); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -4173,12 +4233,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal55=null; + Token char_literal59=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal55_tree=null; + BytecodesAST char_literal59_tree=null; BytecodesAST cls_tree=null; @@ -4193,28 +4253,28 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: (cls+= ID '/' )+ - int cnt24=0; - loop24: + int cnt25=0; + loop25: do { - int alt24=2; - int LA24_0 = input.LA(1); + int alt25=2; + int LA25_0 = input.LA(1); - if ( (LA24_0==ID) ) { - int LA24_1 = input.LA(2); + if ( (LA25_0==ID) ) { + int LA25_1 = input.LA(2); - if ( (LA24_1==36) ) { - alt24=1; + if ( (LA25_1==36) ) { + alt25=1; } } - switch (alt24) { + switch (alt25) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2647); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2654); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4224,27 +4284,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal55=(Token)match(input,36,FOLLOW_36_in_campo2649); - char_literal55_tree = - (BytecodesAST)adaptor.create(char_literal55) + char_literal59=(Token)match(input,36,FOLLOW_36_in_campo2656); + char_literal59_tree = + (BytecodesAST)adaptor.create(char_literal59) ; - adaptor.addChild(root_0, char_literal55_tree); + adaptor.addChild(root_0, char_literal59_tree); } break; default : - if ( cnt24 >= 1 ) break loop24; + if ( cnt25 >= 1 ) break loop25; EarlyExitException eee = - new EarlyExitException(24, input); + new EarlyExitException(25, input); throw eee; } - cnt24++; + cnt25++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2657); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2664); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -4315,118 +4375,121 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { public static final BitSet FOLLOW_ID_in_membroClasse566 = new BitSet(new long[]{0x0000000003001000L}); public static final BitSet FOLLOW_tipo_in_membroClasse568 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_34_in_membroClasse586 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INIT_in_membroClasse588 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_membroClasse590 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse592 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse594 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse596 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_32_in_membroClasse599 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_membroClasse623 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_membroClasse625 = new BitSet(new long[]{0x0000000019000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse628 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_27_in_membroClasse632 = new BitSet(new long[]{0x0000000011000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse634 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_29_in_membroClasse636 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse643 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse645 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse647 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_32_in_membroClasse650 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_parametros700 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_parametros728 = new BitSet(new long[]{0x0000000001000402L}); - public static final BitSet FOLLOW_TIPO_REF_in_parametros743 = new BitSet(new long[]{0x0000000001000402L}); - public static final BitSet FOLLOW_51_in_manipulacaoObjetos805 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos811 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos813 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_99_in_manipulacaoObjetos851 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos857 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos859 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_manipulacaoObjetos897 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos903 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_36_in_manipulacaoObjetos905 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos911 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_manipulacaoObjetos972 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos977 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_aritmetica1055 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_aritmetica1079 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_aritmetica1103 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_aritmetica1127 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_aritmetica1151 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_aritmetica1175 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_aritmetica1199 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load1273 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load1291 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load1309 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load1327 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load1345 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load1363 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load1381 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load1399 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_load1417 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_load1435 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_load1453 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_load1471 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load1489 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load1507 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load1525 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load1543 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_loadint1593 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1599 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_loadint1619 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1625 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_loadint1645 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1651 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_store1713 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_store1731 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_store1749 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_store1767 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_store1785 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_store1803 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_store1821 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_store1839 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_storeint1893 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1899 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_storeint1920 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1926 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_logica1986 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_logica2005 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_logica2024 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2075 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2081 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_desvio2100 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2106 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2125 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2131 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2150 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2156 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2175 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2200 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2206 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2225 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2231 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2250 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2256 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_desvio2275 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2281 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2300 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2306 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio2325 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2331 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio2350 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2356 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio2375 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2381 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_pilha2442 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_pilha2460 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_pilha2478 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2544 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_36_in_classe2546 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_classe2555 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2595 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_chamadaMetodo2601 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2607 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2647 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_36_in_campo2649 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_campo2657 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_membroClasse588 = new BitSet(new long[]{0x0000000019000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse591 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_27_in_membroClasse595 = new BitSet(new long[]{0x0000000011000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse597 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_29_in_membroClasse599 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse602 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse604 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse606 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_32_in_membroClasse609 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_membroClasse635 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_membroClasse637 = new BitSet(new long[]{0x0000000019000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse640 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_27_in_membroClasse644 = new BitSet(new long[]{0x0000000011000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse646 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_29_in_membroClasse648 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse655 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse657 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse659 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_32_in_membroClasse662 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_parametros708 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_parametros735 = new BitSet(new long[]{0x0000000001000402L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros750 = new BitSet(new long[]{0x0000000001000402L}); + public static final BitSet FOLLOW_51_in_manipulacaoObjetos812 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos818 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos820 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_manipulacaoObjetos858 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos864 = new BitSet(new long[]{0x0000000003001000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos866 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_manipulacaoObjetos904 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos910 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_manipulacaoObjetos912 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos918 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_manipulacaoObjetos979 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos984 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_aritmetica1062 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_aritmetica1086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_aritmetica1110 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_aritmetica1134 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_aritmetica1158 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_aritmetica1182 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_aritmetica1206 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load1280 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_load1298 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_load1316 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_load1334 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load1352 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load1370 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load1388 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_load1406 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_load1424 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_load1442 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_load1460 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_load1478 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load1496 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_load1514 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load1532 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load1550 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_loadint1600 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1606 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_loadint1626 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1632 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_loadint1652 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1658 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_store1720 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_store1738 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_store1756 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_store1774 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_store1792 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_store1810 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_store1828 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_store1846 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_storeint1900 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1906 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_storeint1927 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint1933 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_logica1993 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_logica2012 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_logica2031 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2082 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2088 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2107 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2113 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2132 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2138 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2157 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2163 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2182 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2188 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2207 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2213 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_desvio2232 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2238 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2257 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2263 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_desvio2282 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2288 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_desvio2307 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2313 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_desvio2332 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2338 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio2357 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2363 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_desvio2382 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2388 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_pilha2449 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_pilha2467 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_pilha2485 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2551 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_classe2553 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_classe2562 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2602 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_chamadaMetodo2608 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2614 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2654 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_campo2656 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_campo2664 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index ac6d8bb..5743952 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-04 21:01:22 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-04 21:35:38 package br.ufpb.iged.interpretador.parser; @@ -521,20 +521,53 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:1: entraNoConstrutor : ^( CONSTR_DECL INIT . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:2: ( ^( CONSTR_DECL INIT . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:4: ^( CONSTR_DECL INIT . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:4: ^( CONSTR_DECL INIT ( . )+ ) { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor280); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor282); if (state.failed) return ; - matchAny(input); if (state.failed) return ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:23: ( . )+ + int cnt4=0; + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0 >= ARITMETICA && LA4_0 <= 100)) ) { + alt4=1; + } + else if ( (LA4_0==UP) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:23: . + { + matchAny(input); if (state.failed) return ; + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + if (state.backtracking>0) {state.failed=true; return ;} + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + match(input, Token.UP, null); if (state.failed) return ; @@ -576,31 +609,31 @@ public final void entraNoMetodo() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo301); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo302); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo303); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo304); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: ( . )+ - int cnt4=0; - loop4: + int cnt5=0; + loop5: do { - int alt4=2; - int LA4_0 = input.LA(1); + int alt5=2; + int LA5_0 = input.LA(1); - if ( ((LA4_0 >= ARITMETICA && LA4_0 <= 100)) ) { - alt4=1; + if ( ((LA5_0 >= ARITMETICA && LA5_0 <= 100)) ) { + alt5=1; } - else if ( (LA4_0==UP) ) { - alt4=2; + else if ( (LA5_0==UP) ) { + alt5=2; } - switch (alt4) { + switch (alt5) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: . { @@ -610,13 +643,13 @@ else if ( (LA4_0==UP) ) { break; default : - if ( cnt4 >= 1 ) break loop4; + if ( cnt5 >= 1 ) break loop5; if (state.backtracking>0) {state.failed=true; return ;} EarlyExitException eee = - new EarlyExitException(4, input); + new EarlyExitException(5, input); throw eee; } - cnt4++; + cnt5++; } while (true); @@ -626,7 +659,8 @@ else if ( (LA4_0==UP) ) { if ( state.backtracking==1 ) { System.out.println("linha "+ID3.getLine()+ ": def method "+(ID3!=null?ID3.getText():null)); - SimboloMetodo metodo = new SimboloMetodo((ID3!=null?ID3.getText():null)+""+tipoRet.getText(), null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo((ID3!=null?ID3.getText():null), null, escopoAtual); + metodo.setRetorno(tipoRet.getText()); metodo.def = ID3; ID3.simbolo = metodo; escopoAtual.definir(metodo); @@ -651,15 +685,15 @@ else if ( (LA4_0==UP) ) { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:99:1: parametros : ^( PARAMS pars= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:100:1: parametros : ^( PARAMS pars= . ) ; public final void parametros() throws RecognitionException { BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:100:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:100:4: ^( PARAMS pars= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:101:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:101:4: ^( PARAMS pars= . ) { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros328); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros329); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; pars=(BytecodesAST)input.LT(1); @@ -696,13 +730,13 @@ public final void parametros() throws RecognitionException { // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo356); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo357); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -724,13 +758,13 @@ public final void entraNoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo382); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo383); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -755,13 +789,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:123:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:123:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:123:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:15: '.class' { - match(input,30,FOLLOW_30_in_saiDaClasse409); if (state.failed) return ; + match(input,30,FOLLOW_30_in_saiDaClasse410); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -786,13 +820,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:132:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:132:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo459); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo460); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -817,13 +851,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor475); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor476); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); @@ -868,13 +902,13 @@ public final void saiDoConstrutor() throws RecognitionException { public static final BitSet FOLLOW_ID_in_declaracaoVariavel245 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor280 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_INIT_in_entraNoConstrutor282 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo301 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo303 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_PARAMS_in_parametros328 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo356 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo382 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_saiDaClasse409 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo459 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor475 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo302 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo304 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_PARAMS_in_parametros329 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo357 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo383 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_saiDaClasse410 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo460 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor476 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index d66b904..a622f02 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-04 21:01:22 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-04 21:35:38 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index 81c57d6..d00a9ef 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -7,6 +7,8 @@ public class SimboloMetodo extends SimboloComEscopo{ Map parametros = new LinkedHashMap(); + private String retorno; + public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; public byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; @@ -15,6 +17,7 @@ public class SimboloMetodo extends SimboloComEscopo{ public SimboloMetodo(String nome, Tipo tipoRet, Escopo parent) { super(nome, tipoRet, parent); + setRetorno(""); } public Map obterMembros() { @@ -24,5 +27,17 @@ public Map obterMembros() { public String obterNome() { return nome+"("+stripBrackets(parametros.keySet().toString())+")"; } + + public String getRetorno() { + return retorno; + } + + public void setRetorno(String retorno) { + this.retorno = retorno; + } + + public String toString() { + return obterNome()+getRetorno(); + } } From 08b1cb90e0e7bd10394cb7f1711834ed0864fd28 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Tue, 4 Sep 2012 23:51:25 -0300 Subject: [PATCH 58/79] commit --- .../asm/Definicao$Instrucao.class | Bin 841 -> 841 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4595 -> 4791 bytes .../ufpb/iged/interpretador/gramaticas/Def.g | 52 ++ .../ufpb/iged/interpretador/parser/Def.class | Bin 18633 -> 23363 bytes instropcode_set.txt | 3 + .../bytecodeassembler/asm/Definicao.java | 6 + .../ufpb/iged/interpretador/gramaticas/Def.g | 52 ++ .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 2 +- .../ufpb/iged/interpretador/parser/Def.java | 565 ++++++++++++++---- .../ufpb/iged/interpretador/parser/Ref.java | 2 +- 11 files changed, 555 insertions(+), 129 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class index 69ae911c341e55a134960086ae8a08db361fa29a..f9fe2f11b10d9cc7351e57b4585efaf4a89d35b3 100644 GIT binary patch delta 43 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 diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index dd25fe0..d93f32d 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -34,6 +34,9 @@ topdown : entraNoCorpoMetodo | entraNaClasse | parametros | declaracaoVariavel + | operacoesUm + | operacoesDois + | outrasOperacoes ; bottomup : saiDoCorpoMetodo @@ -112,6 +115,55 @@ parametros entraNoCorpoMetodo : BODY {escopoAtual = new EscopoLocal(escopoAtual);} // push scope ; + +operacoesUm + : ^( + ( DESVIO + | LABEL + | ARITMETICA + | LOAD + | STORE + | LOGICA + | PILHA + ) + operacao = . + ) + { + System.out.println("def operacao "+$operacao.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + $operacao.simbolo = metodo; + } + ; + +operacoesDois + : ^( + ( LOAD + | STORE + | DESVIO + ) + operacao = . . + ) + { + System.out.println("def operacao "+$operacao.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + $operacao.simbolo = metodo; + } + ; + +outrasOperacoes + : ( nome = 'getfield' + | nome = 'putfield' + | nome = 'invokespecial' + | nome = 'ireturn' + | nome = 'areturn' + | nome = 'return' + | nome = 'new') + { + System.out.println("def operacao "+$nome.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + $nome.simbolo = metodo; + } + ; saiDoCorpoMetodo : BODY diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index 196ec885edd8109f2db9093ba87fd54f16e2e116..4a30ba64c094da24b2f231dd3f050c14dc995e2a 100644 GIT binary patch literal 23363 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 diff --git a/instropcode_set.txt b/instropcode_set.txt index 58b2931..12c5071 100755 --- a/instropcode_set.txt +++ b/instropcode_set.txt @@ -58,6 +58,9 @@ astore_0 4b 75 astore_1 4c 76 astore_2 4d 77 astore_3 4e 78 +ireturn ac 172 +areturn b0 176 +return b1 177 getfield b4 180 putfield b5 181 invokespecial b7 183 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java index 778fb70..0910dc5 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.java @@ -60,6 +60,9 @@ public class Definicao { public static final int ASTORE1 = 0x4c; public static final int ASTORE2 = 0x4d; public static final int ASTORE3 = 0x4e; + public static final int IRETURN = 0xac; + public static final int ARETURN = 0xb0; + public static final int RETURN = 0xb1; public static final int GETFIELD = 0xb4; public static final int PUTFIELD = 0xb5; public static final int INVOKESPECIAL = 0xb7; @@ -161,6 +164,9 @@ public Instrucao (String nome, int a, int opcode) { new Instrucao("astore_1", Definicao.ASTORE1), new Instrucao("astore_2", Definicao.ASTORE2), new Instrucao("astore_3", Definicao.ASTORE3), + new Instrucao("ireturn", Definicao.IRETURN), + new Instrucao("areturn", Definicao.ARETURN), + new Instrucao("return", Definicao.RETURN), new Instrucao("getfield", Definicao.GETFIELD), new Instrucao("putfield", Definicao.PUTFIELD), new Instrucao("invokespecial", Definicao.INVOKESPECIAL), diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index dd25fe0..d93f32d 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -34,6 +34,9 @@ topdown : entraNoCorpoMetodo | entraNaClasse | parametros | declaracaoVariavel + | operacoesUm + | operacoesDois + | outrasOperacoes ; bottomup : saiDoCorpoMetodo @@ -112,6 +115,55 @@ parametros entraNoCorpoMetodo : BODY {escopoAtual = new EscopoLocal(escopoAtual);} // push scope ; + +operacoesUm + : ^( + ( DESVIO + | LABEL + | ARITMETICA + | LOAD + | STORE + | LOGICA + | PILHA + ) + operacao = . + ) + { + System.out.println("def operacao "+$operacao.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + $operacao.simbolo = metodo; + } + ; + +operacoesDois + : ^( + ( LOAD + | STORE + | DESVIO + ) + operacao = . . + ) + { + System.out.println("def operacao "+$operacao.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + $operacao.simbolo = metodo; + } + ; + +outrasOperacoes + : ( nome = 'getfield' + | nome = 'putfield' + | nome = 'invokespecial' + | nome = 'ireturn' + | nome = 'areturn' + | nome = 'return' + | nome = 'new') + { + System.out.println("def operacao "+$nome.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + $nome.simbolo = metodo; + } + ; saiDoCorpoMetodo : BODY diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 4a215a4..e7bb1e3 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 21:35:37 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 23:46:54 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index f46f6d9..cc41a83 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 21:35:36 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 23:46:53 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 5743952..3b5b523 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-04 21:35:38 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-04 23:46:55 package br.ufpb.iged.interpretador.parser; @@ -154,51 +154,12 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | operacoesUm | operacoesDois | outrasOperacoes ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ) - int alt1=6; - switch ( input.LA(1) ) { - case BODY: - { - alt1=1; - } - break; - case CONSTR_DECL: - { - alt1=2; - } - break; - case METHOD_DECL: - { - alt1=3; - } - break; - case 30: - { - alt1=4; - } - break; - case PARAMS: - { - alt1=5; - } - break; - case FIELD_DECL: - { - alt1=6; - } - break; - default: - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - - throw nvae; - - } - + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | operacoesUm | operacoesDois | outrasOperacoes ) + int alt1=9; + alt1 = dfa1.predict(input); switch (alt1) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: entraNoCorpoMetodo @@ -264,6 +225,39 @@ public final void topdown() throws RecognitionException { state._fsp--; if (state.failed) return ; + } + break; + case 7 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:11: operacoesUm + { + pushFollow(FOLLOW_operacoesUm_in_topdown121); + operacoesUm(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 8 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:38:11: operacoesDois + { + pushFollow(FOLLOW_operacoesDois_in_topdown133); + operacoesDois(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 9 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:11: outrasOperacoes + { + pushFollow(FOLLOW_outrasOperacoes_in_topdown145); + outrasOperacoes(); + + state._fsp--; + if (state.failed) return ; + } break; @@ -284,10 +278,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ) int alt2=4; switch ( input.LA(1) ) { case BODY: @@ -321,9 +315,9 @@ public final void bottomup() throws RecognitionException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:12: saiDoCorpoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:12: saiDoCorpoMetodo { - pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup126); + pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup162); saiDoCorpoMetodo(); state._fsp--; @@ -332,9 +326,9 @@ public final void bottomup() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:12: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:43:12: saiDoMetodo { - pushFollow(FOLLOW_saiDoMetodo_in_bottomup139); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup175); saiDoMetodo(); state._fsp--; @@ -343,9 +337,9 @@ public final void bottomup() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:12: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:12: saiDoConstrutor { - pushFollow(FOLLOW_saiDoConstrutor_in_bottomup152); + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup188); saiDoConstrutor(); state._fsp--; @@ -354,9 +348,9 @@ public final void bottomup() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:12: saiDaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup165); + pushFollow(FOLLOW_saiDaClasse_in_bottomup201); saiDaClasse(); state._fsp--; @@ -382,21 +376,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:48:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:49:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:49:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,30,FOLLOW_30_in_entraNaClasse197); if (state.failed) return ; + match(input,30,FOLLOW_30_in_entraNaClasse233); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse201); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse237); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:49:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -421,12 +415,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:49:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse205); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse241); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse209); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse245); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -472,19 +466,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:63:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:61:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:61:7: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:64:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:64:7: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel243); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel279); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel245); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel281); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -521,20 +515,20 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:4: ^( CONSTR_DECL INIT ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:77:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:77:4: ^( CONSTR_DECL INIT ( . )+ ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor280); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor316); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor282); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor318); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:77:23: ( . )+ int cnt4=0; loop4: do { @@ -551,7 +545,7 @@ else if ( (LA4_0==UP) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:77:23: . { matchAny(input); if (state.failed) return ; @@ -600,25 +594,25 @@ else if ( (LA4_0==UP) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST ID3=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo302); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo338); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo304); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo340); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:32: ( . )+ int cnt5=0; loop5: do { @@ -635,7 +629,7 @@ else if ( (LA5_0==UP) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:32: . { matchAny(input); if (state.failed) return ; @@ -685,15 +679,15 @@ else if ( (LA5_0==UP) ) { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:100:1: parametros : ^( PARAMS pars= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:103:1: parametros : ^( PARAMS pars= . ) ; public final void parametros() throws RecognitionException { BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:101:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:101:4: ^( PARAMS pars= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:104:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:104:4: ^( PARAMS pars= . ) { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros329); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros365); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; pars=(BytecodesAST)input.LT(1); @@ -730,13 +724,13 @@ public final void parametros() throws RecognitionException { // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo357); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo393); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -757,14 +751,253 @@ public final void entraNoCorpoMetodo() throws RecognitionException { + // $ANTLR start "operacoesUm" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:119:1: operacoesUm : ^( ( DESVIO | LABEL | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ; + public final void operacoesUm() throws RecognitionException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:120:9: ( ^( ( DESVIO | LABEL | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:120:12: ^( ( DESVIO | LABEL | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) + { + if ( input.LA(1)==ARITMETICA||input.LA(1)==DESVIO||(input.LA(1) >= LABEL && input.LA(1) <= LOGICA)||(input.LA(1) >= PILHA && input.LA(1) <= STORE) ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("def operacao "+operacao.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + operacao.simbolo = metodo; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "operacoesUm" + + + + // $ANTLR start "operacoesDois" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:1: operacoesDois : ^( ( LOAD | STORE | DESVIO ) operacao= . . ) ; + public final void operacoesDois() throws RecognitionException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:9: ( ^( ( LOAD | STORE | DESVIO ) operacao= . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:12: ^( ( LOAD | STORE | DESVIO ) operacao= . . ) + { + if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("def operacao "+operacao.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + operacao.simbolo = metodo; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "operacoesDois" + + + + // $ANTLR start "outrasOperacoes" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:153:1: outrasOperacoes : (nome= 'getfield' |nome= 'putfield' |nome= 'invokespecial' |nome= 'ireturn' |nome= 'areturn' |nome= 'return' |nome= 'new' ) ; + public final void outrasOperacoes() throws RecognitionException { + BytecodesAST nome=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:2: ( (nome= 'getfield' |nome= 'putfield' |nome= 'invokespecial' |nome= 'ireturn' |nome= 'areturn' |nome= 'return' |nome= 'new' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:4: (nome= 'getfield' |nome= 'putfield' |nome= 'invokespecial' |nome= 'ireturn' |nome= 'areturn' |nome= 'return' |nome= 'new' ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:4: (nome= 'getfield' |nome= 'putfield' |nome= 'invokespecial' |nome= 'ireturn' |nome= 'areturn' |nome= 'return' |nome= 'new' ) + int alt6=7; + switch ( input.LA(1) ) { + case 51: + { + alt6=1; + } + break; + case 99: + { + alt6=2; + } + break; + case 83: + { + alt6=3; + } + break; + case 86: + { + alt6=4; + } + break; + case 44: + { + alt6=5; + } + break; + case 100: + { + alt6=6; + } + break; + case 95: + { + alt6=7; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + + } + + switch (alt6) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:8: nome= 'getfield' + { + nome=(BytecodesAST)match(input,51,FOLLOW_51_in_outrasOperacoes760); if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:155:8: nome= 'putfield' + { + nome=(BytecodesAST)match(input,99,FOLLOW_99_in_outrasOperacoes774); if (state.failed) return ; + + } + break; + case 3 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:156:8: nome= 'invokespecial' + { + nome=(BytecodesAST)match(input,83,FOLLOW_83_in_outrasOperacoes788); if (state.failed) return ; + + } + break; + case 4 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:157:8: nome= 'ireturn' + { + nome=(BytecodesAST)match(input,86,FOLLOW_86_in_outrasOperacoes802); if (state.failed) return ; + + } + break; + case 5 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:158:8: nome= 'areturn' + { + nome=(BytecodesAST)match(input,44,FOLLOW_44_in_outrasOperacoes816); if (state.failed) return ; + + } + break; + case 6 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:159:8: nome= 'return' + { + nome=(BytecodesAST)match(input,100,FOLLOW_100_in_outrasOperacoes830); if (state.failed) return ; + + } + break; + case 7 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:8: nome= 'new' + { + nome=(BytecodesAST)match(input,95,FOLLOW_95_in_outrasOperacoes844); if (state.failed) return ; + + } + break; + + } + + + if ( state.backtracking==1 ) { + System.out.println("def operacao "+nome.getText()); + SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); + nome.simbolo = metodo; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "outrasOperacoes" + + + // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:168:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo383); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo868); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -789,13 +1022,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:15: '.class' { - match(input,30,FOLLOW_30_in_saiDaClasse410); if (state.failed) return ; + match(input,30,FOLLOW_30_in_saiDaClasse895); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -820,13 +1053,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:183:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:132:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:132:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:184:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:184:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo460); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo945); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -851,13 +1084,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:191:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:192:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:192:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor476); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor961); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); @@ -882,6 +1115,74 @@ public final void saiDoConstrutor() throws RecognitionException { // Delegated rules + protected DFA1 dfa1 = new DFA1(this); + static final String DFA1_eotS = + "\20\uffff"; + static final String DFA1_eofS = + "\20\uffff"; + static final String DFA1_minS = + "\1\4\6\uffff\1\2\2\uffff\1\4\1\2\1\4\1\uffff\2\3"; + static final String DFA1_maxS = + "\1\144\6\uffff\1\2\2\uffff\3\144\1\uffff\2\144"; + static final String DFA1_acceptS = + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\uffff\1\7\1\11\3\uffff\1\10\2"+ + "\uffff"; + static final String DFA1_specialS = + "\20\uffff}>"; + static final String[] DFA1_transitionS = { + "\1\10\1\1\1\2\1\7\1\uffff\1\6\4\uffff\1\10\1\7\1\10\1\uffff"+ + "\1\3\2\uffff\1\5\1\10\1\7\6\uffff\1\4\15\uffff\1\11\6\uffff"+ + "\1\11\37\uffff\1\11\2\uffff\1\11\10\uffff\1\11\3\uffff\2\11", + "", + "", + "", + "", + "", + "", + "\1\12", + "", + "", + "\141\13", + "\1\14\1\10\141\15", + "\141\16", + "", + "\1\17\141\16", + "\1\10\141\15" + }; + + static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); + static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS); + static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS); + static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS); + static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS); + static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS); + static final short[][] DFA1_transition; + + static { + int numStates = DFA1_transitionS.length; + DFA1_transition = new short[numStates][]; + for (int i=0; i Date: Wed, 5 Sep 2012 23:53:23 -0300 Subject: [PATCH 59/79] commit --- .../asm/BytecodeAssembler.class | Bin 6816 -> 6804 bytes .../ufpb/iged/interpretador/gramaticas/Def.g | 54 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 64 +- .../ufpb/iged/interpretador/parser/Def.class | Bin 23363 -> 18675 bytes .../iged/interpretador/parser/Ref$DFA1.class | Bin 1348 -> 1395 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 23938 -> 29086 bytes .../principal/Interpretador$1.class | Bin 1637 -> 1637 bytes .../principal/Interpretador.class | Bin 14051 -> 14177 bytes .../asm/BytecodeAssembler.java | 4 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 54 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 64 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 16 +- .../ufpb/iged/interpretador/parser/Def.java | 567 +++---------- .../ufpb/iged/interpretador/parser/Ref.java | 786 +++++++++++++----- .../principal/Interpretador.java | 27 +- .../symboltable/classes/SimboloMetodo.java | 39 +- 17 files changed, 922 insertions(+), 755 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 28fda5f922ab6aecf3fcb95a06c9415bb3955592..7deca01ad267cc1ed3a49f6da8b1043efd91097a 100644 GIT binary patch delta 2807 zcmZ{mYj6`)6vzLY-DHz=fi%UGKGJtfo1}yms8A>rTBOCcs9+(0(%8nf(55w{1q4ln zDvF@ir9K#SO2@HM5s*I8T6xSkqaXbO;seIvgO5?iFFNA~aq79dX%a#u!`;K)bNBqt z|D1a-1Itb>yKr42|DYK#P6&ph~Mq*c00TLt!>UK_uiIT zcc&2xVPo#825@jlFd~jwizLidt;G^dh!asP|IRNcD}s$pFOv`tGqdiOkO&>KR!CT& zS}P?asaBbUWM-|wS`p>)TA`X>hYIm@t@9S2=UXJbc`$A~Iy6j42c+2-~( zJFC5ZPqW7-;X%~Mw}jl3Iy@v|6NfpGR45Gz595&$t2U1lc5<-F$9O9*Vw>Eos}r8! zuukSQDe^U4L2eVC6yf2J*x_q-y1o83pVQan^|!WroLf5fc)Svt(IRJw*}1zpaEpy- zgI7d52a^&{VcP8XwR)Q+bf8n-E!wkumocpzo42ee~B#*$RF$T^>uhf!mD^q zzNKHHdtHKzld{E-Z)DQHA>lq))fSE@27UY$WEPRbk})i`@na}q!*VtRO4+zdSUrSv+bHY~Yw;*n zD`VvZHcXcUICk$1~y|0eUK8uqo`LjX~$M)1vd$~_lm>pk9cciyw@^s?I2b}yt^ab zx+w2F7CM2s>jn`w<8D)d$FV=8xLgyzBf$C~Lro|w*CY<%8A@2hMLdfNl7NXc5BfXE z6w#)!&SO7CpFl_-9X;LXVG7|qeU7zJ`4p;L4n?IP4%acB!g2IQfub~f2$q?NyI39L zcyWfa+MKO$s%0$?bC!oVDHM(ov4)PgV!Vvw1i*+5(A+_uh$=I&(ypbE@$DlzR>49F zY$s7pXmAx(wHJ{lG)$oHBKpa62@SM&h@v+h)6ez=wnVm(S;@{%!Mb6=ermjfO53S2 z7KZT(@g|AKkzYEUi^mC%QOqdDI!e{6o@N-2DN-RD1%4|MaV}iUp@(+xVX8xKR5(*O zoGGk^DWnF6Q+GA68tzi4JT-h7>j?Stg#4T;S0R;%k}Vs8!A4bjuS}I8bpnGkWtcZV zx(qepz%}?lX%`J`p&{B+8WO$&AJSj73~}K9g@blh+gvRreP$M>_d_MAq>>b>eHyCE zaINDD%$Y)u%X~Hn`?)Jq71RHY!!*G865ud$P5hWFeIzZX5B4mc*DP2Q!Uxw($f;e}@F^b?>a#GJTGXiWM z3{eN1p(FPrI>gRJl`b<(lu1NtrzFG@rHXX2E0+Tiv+nJs8XwTc?ZwtCUDj67(stX4_ZT4H;to|>o{c}q+@o1j?ziw;}SCE97`^@UEXNP z;riqbO9hu9k65y~O!0}>DYzp*WppU3GijJUw@0Fw^#TG(Iakz$~A>>8$ zWPSowjHwg7_V%o6uZPzP`47N%@=d1&itxE(p7QSOg9??jZ>{Wel*E$!JuAs~vy+s>lKev?v=2zLdo^LVG6(r)QbyL&*dCaUjVh-l=j1Jo Z^qwL)$3x2rv7eV)l8eMO_z^$D@E?7I*=+y- delta 2754 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 delta 77 zcmV-T0J8t{3d9PqKm!B4IXRO=10a)#1DTU61g$Crt^f%HuK*4NumBSTu>cwbvH&3j jvj8Xrv;Z#zwE#8*wg5c@w*W*0xRU|}LjnZ4lSc(CP}USP diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index 3974bd538ffd69b8ca9b7db008097afaefd1a4f4..18f1c9b2702d09b54483887a4a9b43d812075922 100644 GIT binary patch literal 29086 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 diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class index f8135cfc0f2bbfbfca54c6b121f67fa103a7e84d..96ca7d30b165411d829a0566737e64fd02b2b61d 100644 GIT binary patch delta 43 zcmaFL^OR@9Zx%+|$$wZ}7#$`%vIcXyFt9MVGO#hYPoB#f&Fag*$KW^lFKY$>E1?WB delta 43 zcmaFL^OR@9Zx%+I$$wZ}80{xJvIcWHGq5nYFt9PWO`gjd&FaIz$KX5pFKY$>D;f+d diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index f47a85477e087de414d007534b19fc8c33b40b1e..5f13b4f6fa218e37a6eb90256825338ce5844100 100644 GIT binary patch literal 14177 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 MZRqe1#e4kwe`7hVRR910 literal 14051 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 AbN~PV diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index 980195c..f21493d 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -13,6 +13,7 @@ import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; public class BytecodeAssembler extends AssemblerParser{ @@ -30,13 +31,12 @@ public class BytecodeAssembler extends AssemblerParser{ protected List constantPool = new ArrayList(); public static int ip = 0; - public static byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; + public static byte[] codigo; protected int tamMemoriaGlobalEstruturas = 0; protected int tamMemoriaGlobalReferencias = 0; protected int tamMemoriaGlobal = 0; protected int idProximaClasse = 0; - public BytecodeAssembler(TokenStream lexer, Definicao.Instrucao[] instrucoes) { super(lexer); diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index d93f32d..e6f7b9f 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -34,9 +34,6 @@ topdown : entraNoCorpoMetodo | entraNaClasse | parametros | declaracaoVariavel - | operacoesUm - | operacoesDois - | outrasOperacoes ; bottomup : saiDoCorpoMetodo @@ -78,7 +75,7 @@ entraNoConstrutor { System.out.println("linha "+$INIT.getLine()+ ": def method init "); - SimboloMetodo metodo = new SimboloMetodo("init", null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($INIT.text, null, escopoAtual); metodo.def = $INIT; $INIT.simbolo = metodo; escopoAtual.definir(metodo); @@ -115,55 +112,6 @@ parametros entraNoCorpoMetodo : BODY {escopoAtual = new EscopoLocal(escopoAtual);} // push scope ; - -operacoesUm - : ^( - ( DESVIO - | LABEL - | ARITMETICA - | LOAD - | STORE - | LOGICA - | PILHA - ) - operacao = . - ) - { - System.out.println("def operacao "+$operacao.getText()); - SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); - $operacao.simbolo = metodo; - } - ; - -operacoesDois - : ^( - ( LOAD - | STORE - | DESVIO - ) - operacao = . . - ) - { - System.out.println("def operacao "+$operacao.getText()); - SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); - $operacao.simbolo = metodo; - } - ; - -outrasOperacoes - : ( nome = 'getfield' - | nome = 'putfield' - | nome = 'invokespecial' - | nome = 'ireturn' - | nome = 'areturn' - | nome = 'return' - | nome = 'new') - { - System.out.println("def operacao "+$nome.getText()); - SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); - $nome.simbolo = metodo; - } - ; saiDoCorpoMetodo : BODY diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index c18475b..1765fd0 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -16,12 +16,15 @@ options { import br.ufpb.iged.interpretador.symboltable.classes.Tipo; import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; } @members { + TabelaSimbolos tabelaSimbolos; SimboloClasse simboloClasse; BytecodeAssembler assembler; + Escopo escopoAtual; public Ref(TreeNodeStream input, TabelaSimbolos tabelaSimbolos, BytecodeAssembler assembler) { this(input); @@ -97,7 +100,9 @@ options { } topdown - : entraNaClasse + : entraNaClasse + | entraNoMetodo + | entraNoConstrutor | declaracaoVariavel | getfield | putfield @@ -112,8 +117,15 @@ topdown | logica | pilha | label + | retorno ; +bottomup + : saiDoMetodo + | saiDoConstrutor + + ; + entraNaClasse : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) { @@ -139,6 +151,44 @@ declaracaoVariavel } ; +entraNoConstrutor + : ^(CONSTR_DECL INIT .+) + { + System.out.println("Ref: Entrou no construtor "+$INIT.text); + escopoAtual = (SimboloMetodo)$INIT.simbolo; + BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; + BytecodeAssembler.ip = 0; + } + ; + +entraNoMetodo + : ^(METHOD_DECL ID . .+) + { + System.out.println("Ref: Entrou no metodo "+$ID.text); + escopoAtual = (SimboloMetodo)$ID.simbolo; + BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; + BytecodeAssembler.ip = 0; + } + ; + +saiDoMetodo + : METHOD_DECL + { + System.out.println("Ref: Saindo do metodo... "); + ((SimboloMetodo)escopoAtual).setCodigo(assembler.obterCodigoMaquina()); + ((SimboloMetodo)escopoAtual).setTamanhoMemoriaLocal(assembler.obterTamanhoMemoriaCodigo()); + } + ; + +saiDoConstrutor + : CONSTR_DECL + { + System.out.println("Ref: Saindo do construtor... "); + ((SimboloMetodo)escopoAtual).setCodigo(assembler.obterCodigoMaquina()); + ((SimboloMetodo)escopoAtual).setTamanhoMemoriaLocal(assembler.obterTamanhoMemoriaCodigo()); + } + ; + getfield : ^('getfield' classe = . . campo = . tipo = .) { @@ -228,4 +278,14 @@ label { assembler.definirLabel($operacao.token); } - ; \ No newline at end of file + ; + +retorno + : ( operacao = 'ireturn' + | operacao = 'areturn' + | operacao = 'return' + ) + { + assembler.escreverOpcode($operacao.getText()); + } + ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index e7bb1e3..8b66699 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 23:46:54 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-05 23:51:35 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index cc41a83..90dd146 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-04 23:46:53 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-05 23:51:34 package br.ufpb.iged.interpretador.parser; @@ -1002,7 +1002,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: ID, superClasse, 30, membroClasse + // elements: 30, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1444,7 +1444,7 @@ else if ( (LA8_0==27) ) { // AST REWRITE - // elements: INIT, operacao, parametros + // elements: operacao, parametros, INIT // token labels: // rule labels: retval // token list labels: @@ -1608,7 +1608,7 @@ else if ( (LA10_0==27) ) { // AST REWRITE - // elements: operacao, ID, ret, parametros + // elements: ret, ID, operacao, parametros // token labels: // rule labels: ret, retval // token list labels: @@ -2048,7 +2048,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo54.getTree()); // AST REWRITE - // elements: tipo, b, 51 + // elements: 51, tipo, b // token labels: // rule labels: retval, b // token list labels: @@ -2104,7 +2104,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo55.getTree()); // AST REWRITE - // elements: b, 99, tipo + // elements: tipo, 99, b // token labels: // rule labels: retval, b // token list labels: @@ -2164,7 +2164,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, 83, d + // elements: d, 83, c // token labels: // rule labels: retval, d, c // token list labels: @@ -3316,7 +3316,7 @@ else if ( (LA20_0==45) ) { // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 3b5b523..ed80468 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-04 23:46:55 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-05 23:51:36 package br.ufpb.iged.interpretador.parser; @@ -154,12 +154,51 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | operacoesUm | operacoesDois | outrasOperacoes ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | operacoesUm | operacoesDois | outrasOperacoes ) - int alt1=9; - alt1 = dfa1.predict(input); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ) + int alt1=6; + switch ( input.LA(1) ) { + case BODY: + { + alt1=1; + } + break; + case CONSTR_DECL: + { + alt1=2; + } + break; + case METHOD_DECL: + { + alt1=3; + } + break; + case 30: + { + alt1=4; + } + break; + case PARAMS: + { + alt1=5; + } + break; + case FIELD_DECL: + { + alt1=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + + } + switch (alt1) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: entraNoCorpoMetodo @@ -225,39 +264,6 @@ public final void topdown() throws RecognitionException { state._fsp--; if (state.failed) return ; - } - break; - case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:11: operacoesUm - { - pushFollow(FOLLOW_operacoesUm_in_topdown121); - operacoesUm(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:38:11: operacoesDois - { - pushFollow(FOLLOW_operacoesDois_in_topdown133); - operacoesDois(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:11: outrasOperacoes - { - pushFollow(FOLLOW_outrasOperacoes_in_topdown145); - outrasOperacoes(); - - state._fsp--; - if (state.failed) return ; - } break; @@ -278,10 +284,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ) int alt2=4; switch ( input.LA(1) ) { case BODY: @@ -315,9 +321,9 @@ public final void bottomup() throws RecognitionException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:12: saiDoCorpoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:12: saiDoCorpoMetodo { - pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup162); + pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup126); saiDoCorpoMetodo(); state._fsp--; @@ -326,9 +332,9 @@ public final void bottomup() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:43:12: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:12: saiDoMetodo { - pushFollow(FOLLOW_saiDoMetodo_in_bottomup175); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup139); saiDoMetodo(); state._fsp--; @@ -337,9 +343,9 @@ public final void bottomup() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:44:12: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:12: saiDoConstrutor { - pushFollow(FOLLOW_saiDoConstrutor_in_bottomup188); + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup152); saiDoConstrutor(); state._fsp--; @@ -348,9 +354,9 @@ public final void bottomup() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:12: saiDaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup201); + pushFollow(FOLLOW_saiDaClasse_in_bottomup165); saiDaClasse(); state._fsp--; @@ -376,21 +382,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:48:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:49:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:49:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,30,FOLLOW_30_in_entraNaClasse233); if (state.failed) return ; + match(input,30,FOLLOW_30_in_entraNaClasse197); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse237); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse201); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:49:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -415,12 +421,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:49:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse241); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse205); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse245); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse209); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -466,19 +472,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:63:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:64:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:64:7: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:61:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:61:7: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel279); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel243); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel281); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel245); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -515,20 +521,20 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:76:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:77:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:77:4: ^( CONSTR_DECL INIT ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:4: ^( CONSTR_DECL INIT ( . )+ ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor316); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor280); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor318); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor282); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:77:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:23: ( . )+ int cnt4=0; loop4: do { @@ -545,7 +551,7 @@ else if ( (LA4_0==UP) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:77:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:23: . { matchAny(input); if (state.failed) return ; @@ -569,7 +575,7 @@ else if ( (LA4_0==UP) ) { if ( state.backtracking==1 ) { System.out.println("linha "+INIT2.getLine()+ ": def method init "); - SimboloMetodo metodo = new SimboloMetodo("init", null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo((INIT2!=null?INIT2.getText():null), null, escopoAtual); metodo.def = INIT2; INIT2.simbolo = metodo; escopoAtual.definir(metodo); @@ -594,25 +600,25 @@ else if ( (LA4_0==UP) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST ID3=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo338); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo302); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo340); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo304); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:32: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: ( . )+ int cnt5=0; loop5: do { @@ -629,7 +635,7 @@ else if ( (LA5_0==UP) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:90:32: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: . { matchAny(input); if (state.failed) return ; @@ -679,15 +685,15 @@ else if ( (LA5_0==UP) ) { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:103:1: parametros : ^( PARAMS pars= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:100:1: parametros : ^( PARAMS pars= . ) ; public final void parametros() throws RecognitionException { BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:104:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:104:4: ^( PARAMS pars= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:101:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:101:4: ^( PARAMS pars= . ) { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros365); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros329); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; pars=(BytecodesAST)input.LT(1); @@ -724,13 +730,13 @@ public final void parametros() throws RecognitionException { // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo393); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo357); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -751,253 +757,14 @@ public final void entraNoCorpoMetodo() throws RecognitionException { - // $ANTLR start "operacoesUm" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:119:1: operacoesUm : ^( ( DESVIO | LABEL | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ; - public final void operacoesUm() throws RecognitionException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:120:9: ( ^( ( DESVIO | LABEL | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:120:12: ^( ( DESVIO | LABEL | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) - { - if ( input.LA(1)==ARITMETICA||input.LA(1)==DESVIO||(input.LA(1) >= LABEL && input.LA(1) <= LOGICA)||(input.LA(1) >= PILHA && input.LA(1) <= STORE) ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return ;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - System.out.println("def operacao "+operacao.getText()); - SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); - operacao.simbolo = metodo; - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "operacoesUm" - - - - // $ANTLR start "operacoesDois" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:1: operacoesDois : ^( ( LOAD | STORE | DESVIO ) operacao= . . ) ; - public final void operacoesDois() throws RecognitionException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:9: ( ^( ( LOAD | STORE | DESVIO ) operacao= . . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:12: ^( ( LOAD | STORE | DESVIO ) operacao= . . ) - { - if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { - if (state.backtracking>0) {state.failed=true; return ;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; - } - - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - System.out.println("def operacao "+operacao.getText()); - SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); - operacao.simbolo = metodo; - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "operacoesDois" - - - - // $ANTLR start "outrasOperacoes" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:153:1: outrasOperacoes : (nome= 'getfield' |nome= 'putfield' |nome= 'invokespecial' |nome= 'ireturn' |nome= 'areturn' |nome= 'return' |nome= 'new' ) ; - public final void outrasOperacoes() throws RecognitionException { - BytecodesAST nome=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:2: ( (nome= 'getfield' |nome= 'putfield' |nome= 'invokespecial' |nome= 'ireturn' |nome= 'areturn' |nome= 'return' |nome= 'new' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:4: (nome= 'getfield' |nome= 'putfield' |nome= 'invokespecial' |nome= 'ireturn' |nome= 'areturn' |nome= 'return' |nome= 'new' ) - { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:4: (nome= 'getfield' |nome= 'putfield' |nome= 'invokespecial' |nome= 'ireturn' |nome= 'areturn' |nome= 'return' |nome= 'new' ) - int alt6=7; - switch ( input.LA(1) ) { - case 51: - { - alt6=1; - } - break; - case 99: - { - alt6=2; - } - break; - case 83: - { - alt6=3; - } - break; - case 86: - { - alt6=4; - } - break; - case 44: - { - alt6=5; - } - break; - case 100: - { - alt6=6; - } - break; - case 95: - { - alt6=7; - } - break; - default: - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); - - throw nvae; - - } - - switch (alt6) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:8: nome= 'getfield' - { - nome=(BytecodesAST)match(input,51,FOLLOW_51_in_outrasOperacoes760); if (state.failed) return ; - - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:155:8: nome= 'putfield' - { - nome=(BytecodesAST)match(input,99,FOLLOW_99_in_outrasOperacoes774); if (state.failed) return ; - - } - break; - case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:156:8: nome= 'invokespecial' - { - nome=(BytecodesAST)match(input,83,FOLLOW_83_in_outrasOperacoes788); if (state.failed) return ; - - } - break; - case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:157:8: nome= 'ireturn' - { - nome=(BytecodesAST)match(input,86,FOLLOW_86_in_outrasOperacoes802); if (state.failed) return ; - - } - break; - case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:158:8: nome= 'areturn' - { - nome=(BytecodesAST)match(input,44,FOLLOW_44_in_outrasOperacoes816); if (state.failed) return ; - - } - break; - case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:159:8: nome= 'return' - { - nome=(BytecodesAST)match(input,100,FOLLOW_100_in_outrasOperacoes830); if (state.failed) return ; - - } - break; - case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:8: nome= 'new' - { - nome=(BytecodesAST)match(input,95,FOLLOW_95_in_outrasOperacoes844); if (state.failed) return ; - - } - break; - - } - - - if ( state.backtracking==1 ) { - System.out.println("def operacao "+nome.getText()); - SimboloMetodo metodo = (SimboloMetodo)escopoAtual.obterEscopoEnvolvente(); - nome.simbolo = metodo; - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "outrasOperacoes" - - - // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:168:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo868); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo383); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -1022,13 +789,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:15: '.class' { - match(input,30,FOLLOW_30_in_saiDaClasse895); if (state.failed) return ; + match(input,30,FOLLOW_30_in_saiDaClasse410); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -1053,13 +820,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:183:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:184:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:184:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:132:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:132:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo945); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo460); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -1084,13 +851,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:191:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:139:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:192:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:192:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor961); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor476); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); @@ -1115,74 +882,6 @@ public final void saiDoConstrutor() throws RecognitionException { // Delegated rules - protected DFA1 dfa1 = new DFA1(this); - static final String DFA1_eotS = - "\20\uffff"; - static final String DFA1_eofS = - "\20\uffff"; - static final String DFA1_minS = - "\1\4\6\uffff\1\2\2\uffff\1\4\1\2\1\4\1\uffff\2\3"; - static final String DFA1_maxS = - "\1\144\6\uffff\1\2\2\uffff\3\144\1\uffff\2\144"; - static final String DFA1_acceptS = - "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\uffff\1\7\1\11\3\uffff\1\10\2"+ - "\uffff"; - static final String DFA1_specialS = - "\20\uffff}>"; - static final String[] DFA1_transitionS = { - "\1\10\1\1\1\2\1\7\1\uffff\1\6\4\uffff\1\10\1\7\1\10\1\uffff"+ - "\1\3\2\uffff\1\5\1\10\1\7\6\uffff\1\4\15\uffff\1\11\6\uffff"+ - "\1\11\37\uffff\1\11\2\uffff\1\11\10\uffff\1\11\3\uffff\2\11", - "", - "", - "", - "", - "", - "", - "\1\12", - "", - "", - "\141\13", - "\1\14\1\10\141\15", - "\141\16", - "", - "\1\17\141\16", - "\1\10\141\15" - }; - - static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); - static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS); - static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS); - static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS); - static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS); - static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS); - static final short[][] DFA1_transition; - - static { - int numStates = DFA1_transitionS.length; - DFA1_transition = new short[numStates][]; - for (int i=0; i0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 2, 0, input); + + throw nvae; + + } + switch (alt2) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:7: saiDoMetodo + { + pushFollow(FOLLOW_saiDoMetodo_in_bottomup252); + saiDoMetodo(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:7: saiDoConstrutor + { + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup260); + saiDoConstrutor(); + + state._fsp--; + if (state.failed) return ; + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "bottomup" + + + // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,30,FOLLOW_30_in_entraNaClasse221); if (state.failed) return ; + match(input,30,FOLLOW_30_in_entraNaClasse283); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse225); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse287); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:26: ( ^( EXTENDS sup= TIPO_REF ) )? - int alt2=2; - int LA2_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:26: ( ^( EXTENDS sup= TIPO_REF ) )? + int alt3=2; + int LA3_0 = input.LA(1); - if ( (LA2_0==EXTENDS) ) { - int LA2_1 = input.LA(2); + if ( (LA3_0==EXTENDS) ) { + int LA3_1 = input.LA(2); - if ( (LA2_1==DOWN) ) { - int LA2_3 = input.LA(3); + if ( (LA3_1==DOWN) ) { + int LA3_3 = input.LA(3); - if ( (LA2_3==TIPO_REF) ) { - int LA2_4 = input.LA(4); + if ( (LA3_3==TIPO_REF) ) { + int LA3_4 = input.LA(4); - if ( (LA2_4==UP) ) { - int LA2_5 = input.LA(5); + if ( (LA3_4==UP) ) { + int LA3_5 = input.LA(5); - if ( ((LA2_5 >= ARITMETICA && LA2_5 <= 100)) ) { - alt2=1; + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 100)) ) { + alt3=1; } } } } } - switch (alt2) { + switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse229); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse291); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse233); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse295); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -512,19 +608,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:7: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel271); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel333); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel273); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel335); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -555,18 +651,236 @@ public final void declaracaoVariavel() throws RecognitionException { + // $ANTLR start "entraNoConstrutor" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:154:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; + public final void entraNoConstrutor() throws RecognitionException { + BytecodesAST INIT2=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:4: ^( CONSTR_DECL INIT ( . )+ ) + { + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor370); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor372); if (state.failed) return ; + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:23: ( . )+ + int cnt4=0; + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0 >= ARITMETICA && LA4_0 <= 100)) ) { + alt4=1; + } + else if ( (LA4_0==UP) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:23: . + { + matchAny(input); if (state.failed) return ; + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + if (state.backtracking>0) {state.failed=true; return ;} + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("Ref: Entrou no construtor "+(INIT2!=null?INIT2.getText():null)); + escopoAtual = (SimboloMetodo)INIT2.simbolo; + BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; + BytecodeAssembler.ip = 0; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "entraNoConstrutor" + + + + // $ANTLR start "entraNoMetodo" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ) ; + public final void entraNoMetodo() throws RecognitionException { + BytecodesAST ID3=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:2: ( ^( METHOD_DECL ID . ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:4: ^( METHOD_DECL ID . ( . )+ ) + { + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo395); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo397); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:23: ( . )+ + int cnt5=0; + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( ((LA5_0 >= ARITMETICA && LA5_0 <= 100)) ) { + alt5=1; + } + else if ( (LA5_0==UP) ) { + alt5=2; + } + + + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:23: . + { + matchAny(input); if (state.failed) return ; + + } + break; + + default : + if ( cnt5 >= 1 ) break loop5; + if (state.backtracking>0) {state.failed=true; return ;} + EarlyExitException eee = + new EarlyExitException(5, input); + throw eee; + } + cnt5++; + } while (true); + + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("Ref: Entrou no metodo "+(ID3!=null?ID3.getText():null)); + escopoAtual = (SimboloMetodo)ID3.simbolo; + BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; + BytecodeAssembler.ip = 0; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "entraNoMetodo" + + + + // $ANTLR start "saiDoMetodo" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:174:1: saiDoMetodo : METHOD_DECL ; + public final void saiDoMetodo() throws RecognitionException { + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:5: METHOD_DECL + { + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo419); if (state.failed) return ; + + if ( state.backtracking==1 ) { + System.out.println("Ref: Saindo do metodo... "); + ((SimboloMetodo)escopoAtual).setCodigo(assembler.obterCodigoMaquina()); + ((SimboloMetodo)escopoAtual).setTamanhoMemoriaLocal(assembler.obterTamanhoMemoriaCodigo()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "saiDoMetodo" + + + + // $ANTLR start "saiDoConstrutor" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:183:1: saiDoConstrutor : CONSTR_DECL ; + public final void saiDoConstrutor() throws RecognitionException { + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:184:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:184:5: CONSTR_DECL + { + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor435); if (state.failed) return ; + + if ( state.backtracking==1 ) { + System.out.println("Ref: Saindo do construtor... "); + ((SimboloMetodo)escopoAtual).setCodigo(assembler.obterCodigoMaquina()); + ((SimboloMetodo)escopoAtual).setTamanhoMemoriaLocal(assembler.obterTamanhoMemoriaCodigo()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "saiDoConstrutor" + + + // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:193:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:193:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,51,FOLLOW_51_in_getfield311); if (state.failed) return ; + match(input,51,FOLLOW_51_in_getfield457); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -608,17 +922,17 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:149:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:200:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:200:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,99,FOLLOW_99_in_putfield360); if (state.failed) return ; + match(input,99,FOLLOW_99_in_putfield506); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -660,7 +974,7 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:156:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -668,10 +982,10 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) { - match(input,83,FOLLOW_83_in_invokespecial409); if (state.failed) return ; + match(input,83,FOLLOW_83_in_invokespecial555); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -715,15 +1029,15 @@ public final void invokespecial() throws RecognitionException { // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:163:1: novaClasse : ^( 'new' classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:1: novaClasse : ^( 'new' classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:3: ( ^( 'new' classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:5: ^( 'new' classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:3: ( ^( 'new' classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:5: ^( 'new' classe= . ) { - match(input,95,FOLLOW_95_in_novaClasse460); if (state.failed) return ; + match(input,95,FOLLOW_95_in_novaClasse606); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -755,15 +1069,15 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:7: ^( ARITMETICA operacao= . ) { - match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica491); if (state.failed) return ; + match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica637); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -795,15 +1109,15 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:177:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:5: ^( LOAD operacao= . ) { - match(input,LOAD,FOLLOW_LOAD_in_load525); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_load671); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -835,16 +1149,16 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:184:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:234:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:185:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:7: ^( LOAD operacao= . operando= . ) { - match(input,LOAD,FOLLOW_LOAD_in_loadint554); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_loadint700); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -880,15 +1194,15 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:191:1: store : ^( STORE operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:241:1: store : ^( STORE operacao= . ) ; public final void store() throws RecognitionException, AcessoIndevidoMemoriaException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:6: ^( STORE operacao= . ) { - match(input,STORE,FOLLOW_STORE_in_store596); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_store742); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -920,16 +1234,16 @@ public final void store() throws RecognitionException, AcessoIndevidoMemoriaExce // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: storeint : ^( STORE operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:1: storeint : ^( STORE operacao= . operando= . ) ; public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:7: ^( STORE operacao= . operando= . ) { - match(input,STORE,FOLLOW_STORE_in_storeint625); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_storeint771); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -965,16 +1279,16 @@ public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaE // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:205:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:255:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:7: ^( DESVIO operacao= . operando= . ) { - match(input,DESVIO,FOLLOW_DESVIO_in_desvio666); if (state.failed) return ; + match(input,DESVIO,FOLLOW_DESVIO_in_desvio812); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1010,15 +1324,15 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:212:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:263:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:263:7: ^( LOGICA operacao= . ) { - match(input,LOGICA,FOLLOW_LOGICA_in_logica707); if (state.failed) return ; + match(input,LOGICA,FOLLOW_LOGICA_in_logica853); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1050,15 +1364,15 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:219:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:269:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:6: ^( PILHA operacao= . ) { - match(input,PILHA,FOLLOW_PILHA_in_pilha741); if (state.failed) return ; + match(input,PILHA,FOLLOW_PILHA_in_pilha887); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1090,15 +1404,15 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:276:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:6: ^( LABEL operacao= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label769); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label915); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1127,54 +1441,140 @@ public final void label() throws RecognitionException, LabelException { } // $ANTLR end "label" + + + // $ANTLR start "retorno" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:283:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; + public final void retorno() throws RecognitionException { + BytecodesAST operacao=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + int alt6=3; + switch ( input.LA(1) ) { + case 86: + { + alt6=1; + } + break; + case 44: + { + alt6=2; + } + break; + case 100: + { + alt6=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + + } + + switch (alt6) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:8: operacao= 'ireturn' + { + operacao=(BytecodesAST)match(input,86,FOLLOW_86_in_retorno951); if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:285:8: operacao= 'areturn' + { + operacao=(BytecodesAST)match(input,44,FOLLOW_44_in_retorno965); if (state.failed) return ; + + } + break; + case 3 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:286:8: operacao= 'return' + { + operacao=(BytecodesAST)match(input,100,FOLLOW_100_in_retorno979); if (state.failed) return ; + + } + break; + + } + + + if ( state.backtracking==1 ) { + assembler.escreverOpcode(operacao.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "retorno" + // Delegated rules protected DFA1 dfa1 = new DFA1(this); static final String DFA1_eotS = - "\34\uffff"; + "\37\uffff"; static final String DFA1_eofS = - "\34\uffff"; + "\37\uffff"; static final String DFA1_minS = - "\1\4\7\uffff\2\2\4\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; + "\1\4\11\uffff\2\2\5\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; static final String DFA1_maxS = - "\1\143\7\uffff\2\2\4\uffff\5\144\2\uffff\1\144\2\uffff\4\144"; + "\1\144\11\uffff\2\2\5\uffff\5\144\2\uffff\1\144\2\uffff\4\144"; static final String DFA1_acceptS = - "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\uffff\1\14\1\15\1\16\1\17"+ - "\5\uffff\1\10\1\11\1\uffff\1\12\1\13\4\uffff"; + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\2\uffff\1\16\1\17"+ + "\1\20\1\21\1\22\5\uffff\1\12\1\13\1\uffff\1\14\1\15\4\uffff"; static final String DFA1_specialS = - "\34\uffff}>"; + "\37\uffff}>"; static final String[] DFA1_transitionS = { - "\1\7\2\uffff\1\12\1\uffff\1\2\4\uffff\1\15\1\10\1\13\5\uffff"+ - "\1\14\1\11\6\uffff\1\1\24\uffff\1\3\37\uffff\1\5\13\uffff\1"+ - "\6\3\uffff\1\4", + "\1\11\1\uffff\1\3\1\14\1\uffff\1\4\4\uffff\1\17\1\12\1\15\1"+ + "\uffff\1\2\3\uffff\1\16\1\13\6\uffff\1\1\15\uffff\1\20\6\uffff"+ + "\1\5\37\uffff\1\7\2\uffff\1\20\10\uffff\1\10\3\uffff\1\6\1\20", + "", + "", + "", "", "", "", "", "", "", + "\1\21", + "\1\22", "", - "\1\16", - "\1\17", "", "", "", "", - "\141\20", - "\141\21", - "\1\22\1\23\141\24", + "\141\23", + "\141\24", "\1\25\1\26\141\27", - "\141\30", + "\1\30\1\31\141\32", + "\141\33", "", "", - "\141\31", + "\141\34", "", "", - "\1\32\141\30", - "\1\33\141\31", - "\1\23\141\24", - "\1\26\141\27" + "\1\35\141\33", + "\1\36\141\34", + "\1\26\141\27", + "\1\31\141\32" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -1207,44 +1607,58 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "99:1: topdown : ( entraNaClasse | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label );"; + return "102:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; } } - public static final BitSet FOLLOW_entraNaClasse_in_topdown59 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown69 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getfield_in_topdown79 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_topdown89 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_topdown99 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_novaClasse_in_topdown109 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_aritmetica_in_topdown119 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_load_in_topdown129 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_loadint_in_topdown139 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_store_in_topdown149 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_storeint_in_topdown159 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_desvio_in_topdown169 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_logica_in_topdown179 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_pilha_in_topdown189 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_topdown199 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_entraNaClasse221 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse225 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse229 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse233 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel271 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel273 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_51_in_getfield311 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_99_in_putfield360 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_83_in_invokespecial409 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_95_in_novaClasse460 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARITMETICA_in_aritmetica491 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_load525 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_loadint554 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_store596 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_storeint625 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_DESVIO_in_desvio666 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOGICA_in_logica707 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PILHA_in_pilha741 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label769 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_entraNaClasse_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoMetodo_in_topdown71 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_entraNoConstrutor_in_topdown81 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown91 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getfield_in_topdown101 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_topdown111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_topdown121 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_novaClasse_in_topdown131 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_aritmetica_in_topdown141 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_load_in_topdown151 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_loadint_in_topdown161 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_store_in_topdown171 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_storeint_in_topdown181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_desvio_in_topdown191 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_logica_in_topdown201 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_pilha_in_topdown211 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_topdown221 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_retorno_in_topdown231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoMetodo_in_bottomup252 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup260 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_entraNaClasse283 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse287 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse291 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse295 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel333 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel335 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor370 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor372 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo395 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo397 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo419 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor435 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_getfield457 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_99_in_putfield506 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_83_in_invokespecial555 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_95_in_novaClasse606 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARITMETICA_in_aritmetica637 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_load671 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_loadint700 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_store742 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_storeint771 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_DESVIO_in_desvio812 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOGICA_in_logica853 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PILHA_in_pilha887 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label915 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_86_in_retorno951 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_retorno965 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_100_in_retorno979 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 9f6a042..f352081 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -29,6 +29,7 @@ import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; import br.ufpb.iged.interpretador.parser.Def; import br.ufpb.iged.interpretador.parser.Ref; @@ -85,9 +86,25 @@ public static void main(String[] args) { carregar(); - Interpretador interpretador = new Interpretador(); + //Interpretador interpretador = new Interpretador(); - interpretador.cpu(); + //interpretador.cpu(); + + //Para testes + //Simbolo classe = tabelaSimbolos.global.resolver("LTeste"); + //System.out.println("Classe adicionada:" + classe.nome); + + SimboloClasse classe = (SimboloClasse) tabelaSimbolos.global.resolver("LClasse"); + SimboloMetodo kioeot = (SimboloMetodo) classe.resolver("kioeot"); + kioeot.exibirCodigo(); + + SimboloClasse principal = (SimboloClasse) tabelaSimbolos.global.resolver("LMain"); + SimboloMetodo main = (SimboloMetodo) principal.resolver("main"); + main.exibirCodigo(); + + SimboloClasse teste = (SimboloClasse) tabelaSimbolos.global.resolver("LTeste"); + SimboloMetodo init = (SimboloMetodo) teste.resolver(""); + init.exibirCodigo(); } catch (IOException ioe) { @@ -144,10 +161,6 @@ public static void carregar() global.codigo = assembler.obterCodigoMaquina(); tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; - - //Para testes - Simbolo classe = tabelaSimbolos.global.resolver("LTeste"); - System.out.println("Classe adicionada:" + classe.nome); } @@ -1039,7 +1052,7 @@ protected void cpu() { ip++; // Para testes - exibirTela(); + //exibirTela(); } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index d00a9ef..2418ef6 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -11,9 +11,11 @@ public class SimboloMetodo extends SimboloComEscopo{ public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; - public byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; + private byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; public Object[] memoriaLocal; + + private int tamanhoMemoriaLocal; public SimboloMetodo(String nome, Tipo tipoRet, Escopo parent) { super(nome, tipoRet, parent); @@ -36,8 +38,43 @@ public void setRetorno(String retorno) { this.retorno = retorno; } + public byte[] getCodigo() { + return codigo; + } + + public void setCodigo(byte[] codigo) { + this.codigo = codigo; + } + + public int getTamanhoMemoriaLocal() { + return tamanhoMemoriaLocal; + } + + public void setTamanhoMemoriaLocal(int tamanhoMemoriaLocal) { + this.tamanhoMemoriaLocal = tamanhoMemoriaLocal; + memoriaLocal = new Object[this.tamanhoMemoriaLocal]; + } + public String toString() { return obterNome()+getRetorno(); } + //para testes + public void exibirCodigo() { + + System.out.println("--------- Método "+this+" ---------"); + System.out.print("Memória do código: "); + + int i; + + for (i = 0; i < codigo.length; i++) + + System.out.print(codigo[i] + " "); + + System.out.print("\n"); + + System.out.println("Tamanho da memória local: "+tamanhoMemoriaLocal+"\n\n"); + + } + } From d4a7678776fad3e3c0455d6c5f4294ba7bff2d19 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Thu, 6 Sep 2012 02:06:56 -0300 Subject: [PATCH 60/79] commit --- .../ufpb/iged/interpretador/gramaticas/Def.g | 3 +- .../ufpb/iged/interpretador/parser/Def.class | Bin 18675 -> 18675 bytes .../iged/interpretador/parser/Ref$DFA1.class | Bin 1395 -> 1395 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 29086 -> 29079 bytes .../principal/Interpretador$1.class | Bin 1637 -> 1637 bytes .../principal/Interpretador.class | Bin 14177 -> 16306 bytes .../symboltable/classes/EscopoBase.class | Bin 1966 -> 1966 bytes .../symboltable/classes/SimboloClasse.class | Bin 3428 -> 4150 bytes .../excecoes/ClassNotFoundException.java | 22 + .../ufpb/iged/interpretador/gramaticas/Def.g | 3 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 16 +- .../ufpb/iged/interpretador/parser/Def.java | 11 +- .../ufpb/iged/interpretador/parser/Ref.java | 8 +- .../interpretador/principal/ClassLoader.java | 60 +++ .../principal/Interpretador.java | 384 +++++++++--------- .../interpretador/principal/StackFrame.java | 15 +- .../symboltable/classes/EscopoBase.java | 2 +- .../symboltable/classes/EscopoGlobal.java | 2 +- .../symboltable/classes/SimboloClasse.java | 29 ++ .../symboltable/classes/SimboloMetodo.java | 5 +- 21 files changed, 349 insertions(+), 213 deletions(-) create mode 100644 src/br/ufpb/iged/interpretador/excecoes/ClassNotFoundException.java create mode 100644 src/br/ufpb/iged/interpretador/principal/ClassLoader.java diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index e6f7b9f..069b954 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -132,7 +132,8 @@ saiDoMetodo : METHOD_DECL { System.out.println("Saindo do metodo: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + } ; diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index 7f42033833dccb3c2a0e3f00cc084075adf38cc3..d37c64482685e8f3c592d0e2c839faf6b47f847b 100644 GIT binary patch delta 172 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 delta 6063 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 QzYjS53^7{gpIsjLZ~b>g&j0`b diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class index 96ca7d30b165411d829a0566737e64fd02b2b61d..68f2485bf808a24fe3d18e06a6b535ffafd97769 100644 GIT binary patch delta 43 zcmaFL^OR@9Zx%+o$$wZ}7#$}&vIcXyGO#eXF|aXsOrFac&FaU%$KXHtFKY$>EGP^) delta 43 zcmaFL^OR@9Zx%+|$$wZ}7#$`%vIcXyFt9MVGO#hYPoB#f&Fag*$KW^lFKY$>E1?WB diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 5f13b4f6fa218e37a6eb90256825338ce5844100..ee6f1cdf1bf6e10a3fd62785cf616b52ab5ef275 100644 GIT binary patch literal 16306 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 literal 14177 zcmd5@d3+RA@~?WYXS%1SK?sM2aD+=kI7WhkBpfCXAesP@2nJM`BtsaO%!J7V!SxpJ zRTNJ|R76F*xe_qzvCHmyySuLIxw`7AtLwGitL#sH-`71enIw}4e)f;$V^XiXUe&9r zS5>cGb$sT>M;;@haeS{%f+?>m>T6tDU*!wd25Nl4a4Zn5j|O7?nn=`F9}R}9gZ2K9 zuO#)oP8w5><^ENEU&tS>_06eT9;l8n^{FT0S4)h*_)^M{v3rbTLkwGk#)eK54l&(v#C3L8hd0;cXUe^nslFAvsL zMM4oUnp)b0?hR|yG?0V>iKTrNZ5V*1yEYW5@`sovA1bTjhU!RtWTs6HMtUF|i~4II z`w=OkI~FKvT)H$6#UyQ6zz?l^I5Qe!!H};s*boE8Qy#1h`(usKfYQn~VG=#5E74ka zSeYpnDVUuuBfZl!~)fknm}^C&)-nzD~i7@OmG3q9*L<9g*E>ASOlDh zl}4hqK6peZ>WempW5K$BFBT01d=>Z=p9M-|QgtX84#uW1$(#}MVFm1VK&N3$$8@oM zt%|jA-C<)*8cIi6bQBH7_D!-mdx&X-MFVLNT(UG64$N+>s|rN1+acI9qcl?O56$;S zgX-CSX_BNP71bDvx{+Irj<%?~Gs?552ldqH82Dl9P83F?{xxd1Od99VPO#_*%7i|# zWkEROFyIjNkGCj;dU>db zrt35fle#eFPe+19y{V5uGvLRi)9f%cX%?NJ69T{B5ILs?hD9e*DI|{u8X}=p${kB{ zI)q2Th^{P`PWX5RD9~v()1*U`FHY>JY0zAF(TZRs5W&WlDV58AHp?=^UrofMd33Tx z^VODFfz`pPVAM%(2AzToS6YVsHYneqMOeACBG3>E7<80}PNyY0EpC&S%hv!|XOW+( z5Im7am7*Q<1tY$>NUkwBO2A)NU{Vb&)d|k-cr4H*bBb422kK+NNZ6uUTE=A724ZD_ zh6aBv=Jn1Q(QzY8T23LIR-~{=S;e9{f~V@rmt!G}`lQ=SxNNON`4bOD?3QzaF-`fI4(s?Fg8t_+a6AkQJjsLtmx?JLg6t|6!cXAL zseY2;2p|;dgvm*hxzp{8ny)fwm#Hmj+qN46TFs9m;U`X@Bz4z218&{QWB%$DW&Zkj zS~rv1)}YfB$e`^D59io5>2fDsUu98WI$Wo#5tjB;1j&qGC}7e$TCdKNuo_)w(e-o# zWDgU7&> z(QazOxt%!OoFG9E&OnOlBBm1s$xqcT>a^TrQGXhsM$=7dp+|N4Ro4mQAemeA7(I>( zBT|K`+sX1}{*{fvFzP@Ju2bZ}G5TwZenb0I`iNJ#Vo{Nj;&&GPo}OgNw5cncN;sa9 z9A0+CRHDRw+M>hAt*D;0=s88z3)vhr@%c_2s#bf!qCZeigiD>1+#C$VSqeu&4V^qc zlw%>R41W{?uTteS2a!yI;d*t>3{8_F+W8}n-!(eDin*P*uH!6@^D0Myx4c5@b^0r+ ztu8jU-XCoUM19HXvox?e5H;xydP_y=-w-P4^4GLw{;0E5!HD@fy^~g~X_30RNVp=h zA`ni9^)~%ov3-weNIJI8+(=`zIsm>N`hY&v=^sq_T_}*=d8P-JB0*RCBNlx`|3t6` zai5Adsxysg=AuJ)^(4b#B@QQl1mW63pD2AkWeRq#k5e`Lm)2BOY72dC(ZA>mI9LPx zvh@PMbW}PqAVAxDg2Uu1i@v6B;FR^zNNp4m!BpIJ7HID*b8Y7tmY`pZn{Z<^47+?s z-|O`6w0U-3V<<4so>z`LUBIFrXg}&46<`pveXSI~j_UM(X_?uY#r+J_Ivrpd*)c%c zO`DA?QNkmCWX29MuJ#iT%5*8YJ1(0t=8vpd>|%F(M_OIJOGk%TC?^p>Y%mS)!pGxw zhYy;pv#A93cH(ljsui$BtC9s>d3(Bwzum47e{Q&SFn;AJ%sO@TGu5es1(CI+2Sc`k=}L* zGp9Zf^@nS4y@~~bQCx(XkGHr`#hqRgXjm2W;}~z@X%8hTMBlCRG%%h{>fqM`?|wKw(Z- z-jFUwwP`FMhbqzMSzOK)5Yu0S(mQQ_TBzpDw|D`c0y_n9HC?SXChgo3wJ!@TUc{%u ziJ*EhrblrvR`b*EV=13*@nT-$*gIY>+8r^QCiQj`Hyfml)WfgvI}d>!sYl%kFNGq= zv}zl%8ZSfvgCL0eA=B8dtd+d1`dVEVj@7Nf>Et>Uzgo)P1r@%BuxVf$$q00^80CcNbYv>fM>ZIqqm|6f&&DN(SK$`JXe0D*>qc-Dx^pHes-k@UeX0+1dnMbv=Ql_Z0Z9U&&@g{XE)xv?**vMW^8I-yrJi{!vOLukGL3&Xx zk^DF^M&%PYONkQBalrYuGmeZbLDRG<@Ts~lrR{Z+d|{O^w`}r zzLjY|TZ`eOfu)B=L%Xq%dm@FH3POda?|z-=W(!RcITr1R(ua9cxH z(J$yGJgMEOCog_)pw)O!;Cd3B2`tho&7`?>7L4bkW9V$WlUQQ}e$IltbKpMb;GGL= z8Q^^uwx>ECuV9Coc#l$i-5U&C1!){SB`F?2b<`j1#1QOANknk z1JATj5!mk7NmKXG&YjfkxWi7`yF>lg+(eJ;rYG#dZ+FsDiI>mVKKs0KRA-Nh@GXj< zsR=!Mqlc0S%?Hxeu-vuipslBAXjjh0y9IO$cJWs1+U-zsGc0%q?6ifhqr2^W$%V4L zVa-3%pTI8@_!qH5jLf-&Wi9k}<)~(QcXkW4RF2+3?>E!OC+6;; zoF@7Vmj2R-h;N^u|Kz(`=tr=~$#gZN$AUl@-Ndqm^~y{)4A{(`d_7aobTzSs7~vi* z+{?k_HglhRBhyf*BXS>xI8O3#%%@`Zei-sWDE<(3|6v+K+v!-^fvDa|#Zavr%2iS` z%(sWav=?6T2wbiOp7W?}zEhzh{D?E{EY<_A`V#kp`7$ZWS==AEAr#~RJP@WSz&E8q zoDG8)uD-@GXT#9L?(Cj2FwI}2oPCZy9F={@DafNfUg1~qif#+ zB2Bv{0D_0>WWZ5?D%p$%yasSQmOKG4AMky^0=$0_5VE`e1vnY+y8})E1T8)qlDiJD z6z~ebGC-xrY``Z07eLj|08atj4_FD6p#zc|iMfC^fL8%71AGoJ1bt1wdcawLF}xoG zcn(aU=*|O#OxO|9!+>is?_$6Wc-{ZC7v+r=qApalz5g|HGBA2 z%(y%8MyqK*C;mLSRffdeto}Sc*HhejP=JNM^NFSFM+KKXgnA&2_GpGRHqP}e7@ z+uLj{bCxrutmBqQ2Q#iCMsqNk9WgE&qaWyqaXXmzJ7RPP^K3_q;b69R#0Up-V@FI2 zkE!Hlo>;zBUz37u;z>zwa#YqArl8|qXeY7fWgdtpb%xaxc3@{%m%>tKSU0flcT=#b zVmXUvsVR@AOz9w+dvj-4C7S!f&ag@}cc3$@E!xZ!Y$u`(i`yvaQsoYf9p`QwemDl6 z*V1BLA39i9dh9a})}0=Ef36b9nUa-$%4H5#rpK;uu$_oj=3qM!&F5e{5v}J>il!y= zU+0-8tN%H1pR-M=wItN&isZaDB$plx$pvjlPEL>{QbX3w)D8Mf)y8XEwFwEVoeR`P z`*dV&-&Sov0+XcM&`Ku{B(Ux2m8Q{JAy930a-Q<$zwkhYhUPfcJBj_H;Zrh^lt z9hmBNCdkb~h^Y9X@8X%ExrvLi_VNrtxPIrmTeuXrfo7hauY=Y2Onon(B*<|_yMkJ> z5T%hi$r9+31>wZAk2SiZ)qzqXlCDTd1&S)a!pief);-(p#br{Y@M}?}{PxcQKs)A;!^1VlsU!X3^*3MEXW7 zqVL3V`a#sukK$Z(>ejIk8(0(fup#baOFYWm#q-=lyuumc1MVw6;(lU3_m^HCDEn}> z9LB>WZZ&cu=gJZuCChn?tl~Tw;PLVdK2Bc3`SKc`ByZ>AN|BS$uC8 z_6qOO-r+~IFZnU;8~%-UfPd@i!B4q*@pG;L{DNx?zvvpvFS`o(RoC(Sy6Yr<%T>Ye zx=!c!ToL}z73EJ{XYpsQEBQ;;)%>mNX8yP9KK_sEK|!uPLb#q5Zr5|dbiFJr*Bhd{ z>l2aT`dnn<)}7@x#UOV#G1NU!40q><5$=&{f?-0zb96>zY%rr z17f8vM5C^YGxQ_G8hwa3TOTei)F+6G^qJxk{X}t@ezLeyKSf-lFBjM9XNv3fbHt7M zrDCIgg}6=MBsS|0h%NedahKjAw&{K};~{VVZn{af)n z!!4dPO!2hQT|8^_7Jo1Xi$577#Vf`b@rE%)ylE7PzZo;cJ4UH^->4M-Fsj9;#!~Tx zu}XYpoGHFB&Jo`kYsG%!8u5R|Mk$S3rEWYZJ;n~{HJW5M<5#k$@wDt^{8?riFUtYO z2Xc_{PdV85Ob#`^mPdJ5j_`P;&(mFw^JL3oJx9w4o_smcGgTINrpd{k5?Sb(FQ<8y z$P!PrEb}zVIi8E;NuG7G+;g2g*>jUz;JH;U^4up+^X!(@o;|YG^Nb97UY9F8@5wsP zM>691RIc=VCGk~Ho?)8uY_pp@-y9?_G=1_SbE3S&oFXqXi{usNEV<4+SzcojQ2nVaM`^ImzMxl3+0o8@lvY1wSPCij|umo4Up@=@~> z`MCL|+-Dw;zw>(JvtCR7(c4qL=7xD}5Mew4e~$U`{j?`?HXFGn(#iW>E0JKulFsjoA+z&Fz@$TPpgO4 z&+4P~w+7)ajYeog)tz4C5N`KYuG0-ghR9$)@(YV|X;gglXmYeaF_IILqcf7Doz%;r z(6&(zXXHAbddEj^Bu4HK4Rqe=dU7-Y9}?|#_2tRYrsU`a%5kuUJ2{$?9IZ-@9!!ot zNQ^w$_zP;Av!^jRdL}V42PH?bHHfoZ~*=dY4i0NPotto{d)`Hr-lR@(nDWRROfDqCO` z{H*}s5O7GW(%-%T+Wk!p-K0AE66IWmvhGi=gl05W8cRL2anw&cHf5Fm@l|?|m0SgX zVG&3R4sYsr#pTbU}6NGnKT=8ZE$_l;K~Je0`Mgkkt`v`--hL*&!cXMkSZ zfbRgR3~OS1cexjzUXqyA4hGHZR!lEGvx(1=leW@P@p+E!S>yKbxtQOJFL1snV3uki zIaqv3cnQ;c@mjpL2N$>F(#)4S*XXRgCcZ2!m*+cj`DL8T@VG4CqBcA&4}}1SSMBAm zO2~0F1}(h4atB}6%s1ha7jImUEJbM{3Qy9eW4mV1G1@GeterqbS}9cnuGD7Jnc7^s zP@6}WY8A8%uvwc=PiUvm)7nCMK|7T`1^iw+orSi9U7DZ0S~d680-U8Svv(}p*^Bs& zO{F*OuNcgI;chqZt#Co4B7D(s|A&fr=-{D)@g0cKpT+Onc{5-?l6(h!z;~hxe;04% MZRqe1#e4kwe`7hVRR910 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.class index bfb57af4997c0d3350508ecbfad0382e3efaf480..2179850f604328beac7ef7c7f0ca563ef1841be2 100644 GIT binary patch delta 14 VcmZ3-zm9)HJ1ZmO<_=ahCIBSz1R($b delta 14 VcmZ3-zm9)HJ1Zm8<_=ahCIBS(1R?+c diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class index 3ad6ef47561a9a897a5a2837927c58e5b6c9a292..48d10d37f5a3431ee68394617d15425b3446b015 100644 GIT binary patch delta 1082 zcmZuv+fEZv6kVrfIyjwPC?!V4Knf@=ZAwI`+J-0>L4_jVjiTbvjiHL78-@0e?EQz(1De=!e_3< zoRZVY_=21ok~7Ijk|EMMI4vzm-nf*AddD)USR(3IUK?ta%_?6_amX(qfIboD(60;_ z9K8b0<06j>4A%cwMGRty!646PrFfd5t`dECYFZ9w{LT=M;Z@VA?jpJXh7l3n=wT3~ zbUK!hGTD^GAkHPz>1^zu(4&=56++D+;+rkG=^9+Mc5>Q^@{L>3^O#U(4fXb$G!u>! zdZU04CPmnATX|`yw@!&@gIjGzM98?K{4n@O?=t94FB##(w1^qRX?aFo9FsE)HLcEK zUfE16?xhxmlRzI2in1b&qE*$}yoeOi$^`EhvJ7llrRrOM#UIi!aeZ@Nj^!Ba^n>0& zk19HSu6H=>-aw}gTL=U_-@&oGr-0tJ0tQ~7+OvgVo@S10!=xT#7qt$8Anh62qyN)!u=~PV=`P$(c z(M&MhD-(K&P9@}2o?R4!)|{x=-c@@ai)B|2lupsnG`Z*85+0W4mX#&3i3@{6MCmf^ r=S}qA7#=BK#aew1kCk6y^MUA|C{OTIv71`B8QP80ZUg^J^ZNWRn`^?$ delta 546 zcmZusSuX=o6#nisZKu=GsoG*`NE->&q=JN~co15O)>>;Zt+7w#D@t)+4@1`v|Kuq simbs = escopoGlobal.simbolos.values(); + + for(Simbolo simb: simbs){ + + if (simb.nome.startsWith("L")) { + + if (((SimboloClasse)simb).nome.equals(nome)) + return (SimboloClasse)simb; + + } + + } + + throw new ClassNotFoundException("A classe "+nome+" năo foi encontrada"); + + } + + public SimboloClasse carregarClasseMain() throws ClassNotFoundException{ + + Collection simbs = escopoGlobal.simbolos.values(); + + for(Simbolo simb: simbs){ + + if (simb.nome.startsWith("L")) { + + if (((SimboloClasse)simb).possuiMetodo(METODO_MAIN, "main")) + return (SimboloClasse)simb; + + } + + } + + throw new ClassNotFoundException("Năo foi encontrada nenhuma classe que possua um método main"); + + } + +} diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index f352081..5704364 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -23,6 +23,7 @@ import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; import br.ufpb.iged.interpretador.parser.AssemblerLexer; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; +import br.ufpb.iged.interpretador.excecoes.ClassNotFoundException; import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesErrorNode; @@ -36,18 +37,12 @@ public class Interpretador { - public static final int TAMANHO_INICIAL_PILHA = 100; - + public static final int TAMANHO_PILHA = 100; + private static final String DIRETORIO_FONTE = "./classes"; - public int sp = -1; - - public int ip = 0; - - private static int tamanhoCodigo; - - public Object[] pilha = new Object[TAMANHO_INICIAL_PILHA]; - + public static int tamanhoCodigo = 0; + public static TabelaSimbolos tabelaSimbolos; static EscopoGlobal global; @@ -57,6 +52,12 @@ public class Interpretador { public List heap = new ArrayList(); private static BytecodeAssembler assembler; + + private static StackFrame[] pilha = new StackFrame[TAMANHO_PILHA]; + + private static int topoPilha = -1; + + private static ClassLoader loader; public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { @@ -94,7 +95,7 @@ public static void main(String[] args) { //Simbolo classe = tabelaSimbolos.global.resolver("LTeste"); //System.out.println("Classe adicionada:" + classe.nome); - SimboloClasse classe = (SimboloClasse) tabelaSimbolos.global.resolver("LClasse"); + /*SimboloClasse classe = (SimboloClasse) tabelaSimbolos.global.resolver("LClasse"); SimboloMetodo kioeot = (SimboloMetodo) classe.resolver("kioeot"); kioeot.exibirCodigo(); @@ -104,7 +105,27 @@ public static void main(String[] args) { SimboloClasse teste = (SimboloClasse) tabelaSimbolos.global.resolver("LTeste"); SimboloMetodo init = (SimboloMetodo) teste.resolver(""); - init.exibirCodigo(); + init.exibirCodigo();*/ + + loader = new ClassLoader(global); + + try { + + SimboloClasse principal = loader.carregarClasseMain(); + SimboloMetodo main = (SimboloMetodo) principal.resolver("main"); + + pilha[++topoPilha] = new StackFrame(main.getTamanhoMemoriaLocal()); + + global.codigo = main.getCodigo(); + tamanhoCodigo = main.getCodigo().length; + + Interpretador interpretador = new Interpretador(); + + interpretador.cpu(); + + } catch (ClassNotFoundException e) { + System.out.println(e.getMessage()); + } } catch (IOException ioe) { @@ -158,9 +179,6 @@ public static void carregar() assembler = carregarClasses(); global = tabelaSimbolos.global; - global.codigo = assembler.obterCodigoMaquina(); - tamanhoCodigo = assembler.obterTamanhoMemoriaCodigo(); - global.memoriaGlobal = new Object[assembler.getTamMemoriaGlobal()]; } @@ -200,11 +218,11 @@ protected void cpu() { Referencia referencia; - while (ip < tamanhoCodigo) { + while (pilha[topoPilha].pc < tamanhoCodigo) { desvio = false; - opcode = global.codigo[ip]; + opcode = global.codigo[pilha[topoPilha].pc]; if (opcode < 0) @@ -219,20 +237,20 @@ protected void cpu() { break; case Definicao.POP: - sp-- ; + pilha[topoPilha].sp-- ; break; case Definicao.POP2: - sp -= 2 ; + pilha[topoPilha].sp -= 2 ; break; case Definicao.DUP: { - Referencia ref = (Referencia)pilha[sp]; + Referencia ref = (Referencia)pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp++; + pilha[topoPilha].sp++; - pilha[sp] = ref; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = ref; } ; @@ -242,22 +260,22 @@ protected void cpu() { case Definicao.INEG: { - op1 = (Integer) pilha[sp]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - pilha[sp] = 0 - op1; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0 - op1; }; break; case Definicao.IADD: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; - pilha[sp] = op1 + op2; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 + op2; } ; @@ -265,13 +283,13 @@ protected void cpu() { case Definicao.ISUB: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; - pilha[sp] = op1 - op2; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 - op2; } ; @@ -279,13 +297,13 @@ protected void cpu() { case Definicao.IMUL: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; - pilha[sp] = op1 * op2; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 * op2; } ; @@ -293,13 +311,13 @@ protected void cpu() { case Definicao.IDIV: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; - pilha[sp] = op1 / op2; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 / op2; } ; @@ -307,13 +325,13 @@ protected void cpu() { case Definicao.IREM: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; - pilha[sp] = op1 % op2; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 % op2; } ; @@ -321,9 +339,9 @@ protected void cpu() { case Definicao.IINC: { - op1 = (Integer) pilha[sp]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - pilha[sp] = ++op1; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = ++op1; } ; @@ -333,9 +351,9 @@ protected void cpu() { case Definicao.ICONST0: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; } ; @@ -343,9 +361,9 @@ protected void cpu() { case Definicao.ICONST1: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = 1; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 1; } ; @@ -353,9 +371,9 @@ protected void cpu() { case Definicao.ICONST2: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = 2; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 2; } ; @@ -363,9 +381,9 @@ protected void cpu() { case Definicao.ICONST3: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = 3; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 3; } ; @@ -373,9 +391,9 @@ protected void cpu() { case Definicao.ICONST4: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = 4; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 4; } ; @@ -383,9 +401,9 @@ protected void cpu() { case Definicao.ICONST5: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = 5; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 5; } ; @@ -393,9 +411,9 @@ protected void cpu() { case Definicao.ICONSTM1: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = -1; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = -1; } ; @@ -403,9 +421,9 @@ protected void cpu() { case Definicao.ACONSTNULL: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = new Referencia(null); + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = new Referencia(null); } ; @@ -413,11 +431,11 @@ protected void cpu() { case Definicao.LDC: { - sp++; + pilha[topoPilha].sp++; op1 = obterOperandoInteiro(); - pilha[sp] = op1; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1; } ; @@ -427,9 +445,9 @@ protected void cpu() { case Definicao.ILOAD0: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = global.memoriaGlobal[0]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[0]; } ; @@ -437,9 +455,9 @@ protected void cpu() { case Definicao.ILOAD1: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = global.memoriaGlobal[1]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[1]; } ; @@ -447,9 +465,9 @@ protected void cpu() { case Definicao.ILOAD2: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = global.memoriaGlobal[2]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[2]; } ; @@ -457,9 +475,9 @@ protected void cpu() { case Definicao.ILOAD3: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = global.memoriaGlobal[3]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[3]; } ; @@ -467,11 +485,11 @@ protected void cpu() { case Definicao.ILOAD: { - sp++; + pilha[topoPilha].sp++; op1 = obterOperandoInteiro(); - pilha[sp] = global.memoriaGlobal[op1]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[op1]; } ; @@ -479,9 +497,9 @@ protected void cpu() { case Definicao.ALOAD0: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = global.memoriaGlobal[0]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[0]; } ; @@ -489,9 +507,9 @@ protected void cpu() { case Definicao.ALOAD1: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = global.memoriaGlobal[1]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[1]; } ; @@ -499,9 +517,9 @@ protected void cpu() { case Definicao.ALOAD2: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = global.memoriaGlobal[2]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[2]; } ; @@ -509,9 +527,9 @@ protected void cpu() { case Definicao.ALOAD3: { - sp++; + pilha[topoPilha].sp++; - pilha[sp] = global.memoriaGlobal[3]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[3]; } ; @@ -519,11 +537,11 @@ protected void cpu() { case Definicao.ALOAD: { - sp++; + pilha[topoPilha].sp++; op1 = obterOperandoInteiro(); - pilha[sp] = global.memoriaGlobal[op1]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[op1]; } ; @@ -534,9 +552,9 @@ protected void cpu() { case Definicao.ISTORE0: { - global.memoriaGlobal[0] = pilha[sp]; + pilha[topoPilha].variaveis[0] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -544,9 +562,9 @@ protected void cpu() { case Definicao.ISTORE1: { - global.memoriaGlobal[1] = pilha[sp]; + pilha[topoPilha].variaveis[1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -554,9 +572,9 @@ protected void cpu() { case Definicao.ISTORE2: { - global.memoriaGlobal[2] = pilha[sp]; + pilha[topoPilha].variaveis[2] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -564,9 +582,9 @@ protected void cpu() { case Definicao.ISTORE3: { - global.memoriaGlobal[3] = pilha[sp]; + pilha[topoPilha].variaveis[3] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -576,9 +594,9 @@ protected void cpu() { op1 = obterOperandoInteiro(); - global.memoriaGlobal[op1] = pilha[sp]; + pilha[topoPilha].variaveis[op1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -586,9 +604,9 @@ protected void cpu() { case Definicao.ASTORE0: { - global.memoriaGlobal[0] = pilha[sp]; + pilha[topoPilha].variaveis[0] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -596,9 +614,9 @@ protected void cpu() { case Definicao.ASTORE1: { - global.memoriaGlobal[1] = pilha[sp]; + pilha[topoPilha].variaveis[1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -606,9 +624,9 @@ protected void cpu() { case Definicao.ASTORE2: { - global.memoriaGlobal[2] = pilha[sp]; + pilha[topoPilha].variaveis[2] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -616,9 +634,9 @@ protected void cpu() { case Definicao.ASTORE3: { - global.memoriaGlobal[3] = pilha[sp]; + pilha[topoPilha].variaveis[3] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -628,9 +646,9 @@ protected void cpu() { op1 = obterOperandoInteiro(); - global.memoriaGlobal[op1] = pilha[sp]; + pilha[topoPilha].variaveis[op1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; } ; @@ -640,13 +658,13 @@ protected void cpu() { case Definicao.IAND: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; op1 = op1 & op2; - sp--; + pilha[topoPilha].sp--; } ; @@ -654,13 +672,13 @@ protected void cpu() { case Definicao.IOR: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; op1 = op1 | op2; - sp--; + pilha[topoPilha].sp--; } ; @@ -668,13 +686,13 @@ protected void cpu() { case Definicao.IXOR: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; op1 = op1 ^ op2; - sp--; + pilha[topoPilha].sp--; } ; @@ -684,7 +702,7 @@ protected void cpu() { case Definicao.IFEQ: { - op1 = (Integer) pilha[sp]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; if (op1 == 0) { @@ -694,9 +712,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -706,7 +724,7 @@ protected void cpu() { case Definicao.IFNE: { - op1 = (Integer) pilha[sp]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; if (op1 != 0) { @@ -716,9 +734,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -728,7 +746,7 @@ protected void cpu() { case Definicao.IFLT: { - op1 = (Integer) pilha[sp]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; if (op1 > 0) { @@ -738,9 +756,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -750,7 +768,7 @@ protected void cpu() { case Definicao.IFGE: { - op1 = (Integer) pilha[sp]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; if (op1 >= 0) { @@ -760,9 +778,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -772,7 +790,7 @@ protected void cpu() { case Definicao.IFGT: { - op1 = (Integer) pilha[sp]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; if (op1 > 0) { @@ -782,9 +800,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -794,7 +812,7 @@ protected void cpu() { case Definicao.IFLE: { - op1 = (Integer) pilha[sp]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; if (op1 <= 0) { @@ -804,9 +822,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -816,11 +834,11 @@ protected void cpu() { case Definicao.IF_ICMPEQ: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; if (op1 == op2) { @@ -830,9 +848,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -842,11 +860,11 @@ protected void cpu() { case Definicao.IF_ICMPNE: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; if (op1 != op2) { @@ -856,9 +874,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -868,11 +886,11 @@ protected void cpu() { case Definicao.IF_ICMPLT: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; if (op1 < op2) { @@ -882,9 +900,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -894,11 +912,11 @@ protected void cpu() { case Definicao.IF_ICMPGE: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; if (op1 >= op2) { @@ -908,9 +926,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -920,11 +938,11 @@ protected void cpu() { case Definicao.IF_ICMPGT: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; if (op1 > op2) { @@ -934,9 +952,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -946,11 +964,11 @@ protected void cpu() { case Definicao.IF_ICMPLE: { - op1 = (Integer) pilha[sp - 1]; + op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - op2 = (Integer) pilha[sp]; + op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - sp--; + pilha[topoPilha].sp--; if (op1 <= op2) { @@ -960,9 +978,9 @@ protected void cpu() { } else { - pilha[sp] = 0; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -975,7 +993,7 @@ protected void cpu() { op1 = obterOperandoInteiro(); - ip = op1; + pilha[topoPilha].pc = op1; desvio = true; @@ -983,7 +1001,7 @@ protected void cpu() { ; break; - //manipulaçăo de objetos + //manpilha[topoPilha].pculaçăo de objetos case Definicao.NEW: { @@ -995,7 +1013,7 @@ protected void cpu() { heap.add(objeto); - pilha[++sp] = new Referencia(heap.indexOf(objeto)); + pilha[topoPilha].pilhaOperandos[++pilha[topoPilha].sp] = new Referencia(heap.indexOf(objeto)); } @@ -1004,9 +1022,9 @@ protected void cpu() { case Definicao.INVOKESPECIAL: { - sp--; + pilha[topoPilha].sp--; - ip += 4; + pilha[topoPilha].pc += 4; } @@ -1015,15 +1033,15 @@ protected void cpu() { case Definicao.GETFIELD: { - referencia = (Referencia)pilha[sp]; + referencia = (Referencia)pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; Objeto objeto = heap.get(referencia.getEndereco()); op1 = obterOperandoInteiro(); - pilha[sp] = null; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = null; - pilha[sp] = objeto.getMemoriaLocal()[op1]; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = objeto.getMemoriaLocal()[op1]; } @@ -1032,13 +1050,13 @@ protected void cpu() { case Definicao.PUTFIELD: { - referencia = (Referencia)pilha[sp - 1]; + referencia = (Referencia)pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; Objeto objeto = heap.get(referencia.getEndereco()); op1 = obterOperandoInteiro(); - objeto.getMemoriaLocal()[op1] = pilha[sp--]; + objeto.getMemoriaLocal()[op1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp--]; } @@ -1049,10 +1067,10 @@ protected void cpu() { if (!desvio) - ip++; + pilha[topoPilha].pc++; // Para testes - //exibirTela(); + exibirTela(); } @@ -1060,19 +1078,19 @@ protected void cpu() { protected void desviar() { - pilha[sp] = 1; + pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 1; int op = obterOperandoInteiro(); - ip = op; + pilha[topoPilha].pc = op; } protected int obterOperandoInteiro() { - int op = BytecodeAssembler.obterInteiro(global.codigo, ip + 1); + int op = BytecodeAssembler.obterInteiro(global.codigo, pilha[topoPilha].pc + 1); - ip += 4; + pilha[topoPilha].pc += 4; return op; @@ -1089,9 +1107,9 @@ protected void exibirTela() { int i; - System.out.println("IP: " + ip); + System.out.println("pilha[topoPilha].pc: " + pilha[topoPilha].pc); - System.out.println("SP: " + sp); + System.out.println("pilha[topoPilha].sp: " + pilha[topoPilha].sp); System.out.print("Memória do código: "); @@ -1103,17 +1121,17 @@ protected void exibirTela() { System.out.print("Memória global das variáveis: "); - for (i = 0; i < global.memoriaGlobal.length; i++) + for (i = 0; i < pilha[topoPilha].variaveis.length; i++) - System.out.print(global.memoriaGlobal[i] + " "); + System.out.print(pilha[topoPilha].variaveis[i] + " "); System.out.print("\n"); System.out.print("Pilha: "); - for (i = 0; i < pilha.length; i++) + for (i = 0; i < pilha[topoPilha].pilhaOperandos.length; i++) - System.out.print(pilha[i] + " "); + System.out.print(pilha[topoPilha].pilhaOperandos[i] + " "); System.out.print("\n\n"); diff --git a/src/br/ufpb/iged/interpretador/principal/StackFrame.java b/src/br/ufpb/iged/interpretador/principal/StackFrame.java index 76994a8..7344555 100644 --- a/src/br/ufpb/iged/interpretador/principal/StackFrame.java +++ b/src/br/ufpb/iged/interpretador/principal/StackFrame.java @@ -4,14 +4,19 @@ public class StackFrame { public static final int TAMANHO_INICIAL_PILHA = 100; - private Object[] pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA]; + public Object[] pilhaOperandos = new Object[TAMANHO_INICIAL_PILHA]; - private Object[] variaveis; + public Object[] variaveis; + + public int sp = -1; - private int sp = -1; - - private int pc = 0; + public int pc = 0; + public StackFrame(int tamanhoMemoriaLocal) { + + this.variaveis = new Object[tamanhoMemoriaLocal]; + + } } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java index f1ab64f..f8a0f0f 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java @@ -7,7 +7,7 @@ public abstract class EscopoBase implements Escopo { private Escopo escopoEnvolvente; // null if global (outermost) scope - private Map simbolos = new LinkedHashMap(); + public Map simbolos = new LinkedHashMap(); public EscopoBase(Escopo parent) { this.escopoEnvolvente = parent; } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java index 1044a89..b7cbff8 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoGlobal.java @@ -13,6 +13,6 @@ public EscopoGlobal() { public String obterNomeEscopo() { return "global"; } - + } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java index d3a676c..089fa8c 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -44,6 +44,35 @@ public Simbolo resolverMembro(String nome) { return null; // not found } + + public SimboloMetodo resolverMetodo(String assinatura, String nome) { + + Simbolo s = membros.get(nome); + + if (s == null) + return null; + + if (s.toString().equals(assinatura)) + return (SimboloMetodo)s; + + // if not here, check just the superclass chain + if ( superClasse != null ) { + return superClasse.resolverMetodo(assinatura, nome); + } + return null; // not found + + } + + public boolean possuiMetodo(String assinatura, String nome) { + + SimboloMetodo metodo = resolverMetodo(assinatura, nome); + + if (metodo != null) + return true; + + return false; + + } public Map obterMembros() { diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index 2418ef6..02dd00c 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -12,9 +12,7 @@ public class SimboloMetodo extends SimboloComEscopo{ public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; private byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; - - public Object[] memoriaLocal; - + private int tamanhoMemoriaLocal; public SimboloMetodo(String nome, Tipo tipoRet, Escopo parent) { @@ -52,7 +50,6 @@ public int getTamanhoMemoriaLocal() { public void setTamanhoMemoriaLocal(int tamanhoMemoriaLocal) { this.tamanhoMemoriaLocal = tamanhoMemoriaLocal; - memoriaLocal = new Object[this.tamanhoMemoriaLocal]; } public String toString() { From a7fd06e6135cec4ea948b1be1972adea7595ba80 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Thu, 6 Sep 2012 12:23:54 -0300 Subject: [PATCH 61/79] commit --- .../ufpb/iged/interpretador/gramaticas/Ref.g | 5 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1395 -> 1395 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 29079 -> 29152 bytes .../principal/Interpretador.class | Bin 16306 -> 15365 bytes .../ufpb/iged/interpretador/gramaticas/Ref.g | 5 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 16 +- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 137 +-- .../interpretador/principal/ClassLoader.java | 47 +- .../principal/Interpretador.java | 922 +++++++++--------- 11 files changed, 580 insertions(+), 556 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index 1765fd0..a0970ab 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -129,7 +129,10 @@ bottomup entraNaClasse : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) { - simboloClasse = ((SimboloClasse)$nome.simbolo); + + simboloClasse =(SimboloClasse)tabelaSimbolos.global.resolver("L" + $nome.getText()); + if(!assembler.getConstantPool().contains(simboloClasse)) + assembler.getConstantPool().add(simboloClasse); if ( $sup!=null ) { $sup.simbolo = $sup.escopo.resolver($sup.text); simboloClasse.superClasse = diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 1592f34fd4a61c1e7dde7ccd9afb5234e6770da7..68356f7d9f1c4bbddf01d19cfb2b8924a0582a23 100644 GIT binary patch delta 59 zcmey&^_gqKO%_dO22M5?20k`d24OZg1}Qdo21Pax1`Re(27NX!1~WEq23s~C1{XHp O$xN&+jQ*3|S#pQ?tj94$`%`6?q;`7)bW0ti1fZM|lC2`goyNxn5lP zZLcCP<|W?p=uZBZ>U9e%e2k7rCHhn<(-#sBQ?3cJi$#Rl3PnHZZEa@1*yYb1X##e|t&>*lUvEAek;i zvRsr5ba9gHy2>EeUvgaGNXd26WUyNyL);b_>h{SncT#@qZpd(9$&(tAFHK~Gbdiyg zE~9jHv=qr0SuA5^jf|5WGG0EC-^m%7Ah%_rPvrN$YEs~9B$IscQs_&O$-ZnU@{N}% zzS%O>w*u8^I)E?`e}>v#)ecw913!1%R58edLl8je{+$WwrqG~4gA&?MLi={op|lV> zQbtD`mh!ApI#x<2O6lYtD%na~wCAs-bV|#X?esO_kErsirSpVdjXuQ4MvY2%j$Tw~ zq>eSPW;@R(Y~@Aeq~2RpuH)jr@#}#&_If3S2L~E8Fof6ZcSG&+ijrEHS>Cp!=pHY# zpeACeyf#N-peEr=pq|B@K)q{%%c}`7^#ZlNc_vWXn&d!Dp)TbWOw;sGR-?YxqFYX3 zXETMmm?iY0SxqmQ_4KlNpSqg;lwgi({e%+DeM+JbN~CI(LN8Mqb)`O(OzHZa5jfsK zs8D{AG>7J@mne-latRD9_2R91MMySxxfG9p(brt%GQG0MMuHGMo)KcNvnV30AD!$TuNgG0YZ_Xh}p^T9m4Z44-Iwcvq*zgp*q>;Bov zQKsUe2IWtpjQ4Ei_q@cUutyL4e8i=E$a^=bx)(WEydP8A#0}B;hw9`bP?JWXIgLgV zjYVG?k9?Yd=~RG)Gzo7~Ar9#&9@hOIqZ#;;=KAxxk1`?ueTL;f8s5|(@DTrOD7oX5RT%`TDMF&h3I%p#4kcpi|%Khxvb{~IpK zyWA_W@Si&1B^~gJ4tP}uyoLdE1DSLi1L<4c`yCX}T}+|xFq7`%HTn_Dn6QZ-K^X_( z5I>5~xdOi6ia5=c@HIbT+wua2vGeIHYhqx^oBg=8nkV&R*3%M{1{PS5NKgrCq(XD^0ulYu5nn z%FwPH?P~1Brr&V0${)JdpkMBb`T7qq0+vTYcswF`0$TD!JjVs-$%PoqMHt6Z@fuIV zA9w~f@GR`*IXJ>|bt@ju@M2uxCAh(Fc&GdI^;-7*rTZ;)uTuAFb-%6djq2W{?k(!} zt9z@u%hbJH-8MTHt#t{+k1w zv9ro7dz16Sz2MB)n8!gj6cM&6n%Qu~+v-TMHIQo~G0N7$BpZc78;w_OJud%25nfhSY)orq+o8IRM^oDY?d`Kjw$CHScE(8C1(R(eifj_5+isX|dwTC>o&1?S zHN074+h5^q4bIWvTn!$g!NW8-PlNLn9E&M-9A?<@SYRi4ad{p5so7yBZiZqrVeLHB zv4;+{jU>x5CRGm2aS zrnp4Ra7kF;dX(?LJ3j1}d_Uy}DnCg19OVZqKUDeQ%I7IRM)|SIk5j%Nz&|zoV$5`< z<|s8!srgDRRLWDTSgEB-EmvxVQY)2O<&VpIuKZ_Qke`sYQNgXc^-?r-+Y#$_qNUr7 z)@~1;cJHID`#@#;Rdx_r?f?e5!x-c~#$~r>QB53m>Zc-Cc@d}bqO-e9Tqlh#K8jm26NK{DVQN}C8qm7{9 zXS7NcT^-caqc@U>GFYfFrp?TFwVg$b(TrMNqnNd@GCS9Ft`@8$|`R?;O z_jenvs`sv{y-uXB4=te;epEp#9n*P8w0v6aNAKdS0%sRZ$uG$Fl}l^zaCubtIu!?{TFVfFLG;riJ#T~;OF!Y?62=~ zfc`fJ>Lv~%=3r{cZ77i2lAA-Q1Gl3t?518EN_{zu68L#~mD|$@{spCSIE~{Dl))V- zmm?^jU!b?R6D{CKTFRZNg1gXK?n)cD8+};HzO;pV&<^fNd$||Yax@*`7&^tVRL_0s z9KS?=<2bs)@pMb-15P$RoMJ*b)%4_1=9fI$jOH;Wm)|h+IL)l)v1TieGgUm^e905c zx14Tn@2jx+5Do?<6)mMtyhY`cu7+RdC}_i?U0&eQA#e$(FJ=}er* zp*(|o@=PAe`8=KrWHpNyb0M$eBHqr$T*oE+Cw_|?csAeTIWFd3yFz%bt2@tg4dD5% z6kg!U=7p{~TlaZVKDFkbeQL0;&>HHs+!`>DKZl{84Jvpgx%-}_Cqt`DG3<-OV9 z{66VLRp~rPiX7dN7-5Lf%{3Myy)_99-g*TOy!D~-Z>}mpb@tXS>Sb^3r;@!jMf)~a zkX|PH*o;W0@b#S1Au3n@O6BRHYMFjbmFr=uQmUhet1t8jbx!JcI!U+GV{|M1h7Qna zI#f^e-ifL3ZQitAsaJ_lYd7ttDkvBoLi=Tqnb-=gD1$O(vT`vUM9>q2xoC;Jg4|CqRjKFN2DyX$gPPC<)&=$SJEfq#t94C6 z{m*rJdflZWn-K4`O6leJrrhE3uFVIqHnpQEucp(^lcaXepwxu89GN{=rk;r~U4U3U z3rV^N>AD03dN!8pxmcs;VT+!R)4B|Q)JssWm*N|}!c&`Cqym0Aw`zU1n)Y~)-bomp zSL%p%1KfHeqV*;u>W@Ub4axdrQGbFr^>2}{cc4V?#BBW;R_cBDNY`Myu0@@$!%2Mr zr}ROIJA|+FVfi^$xot&7ok)@Yqz-uyKqYU^@8Sn>8);E!z$! z@pMQ}Q`$fk9*q!+MFjOm6!k#@y@(X*hg9m1G)h1Q4R$7vI}@HPU8&MFO1ef%*BI%V zAYJLwHBq{7GgFn z!U`(G`?M6hXgQ8jInK}u*-9lEXbrxnwYWp?d&1Kb)z8FRMZ8VKAB%XWh` z;=LmNT*Or(t`>2vi0edrNW_Old|bpQM0`@jXPof#bZ7CTCV9pePtHv~C*Jeoy&&F; z@S#iSKn-|_uE-N}6=Ufda;On=={nw_8`wxU@hRQLA-apd(vRZ4kL&aZH|R0$(i1!~ z%lj^j{y5Qy9&h4C-s0qSm zN@kX1W=m#{WKNUJJjt9PToKAlG2S*Ms5JAOk+}msA7%%uxTS(EgE18dGpi75R%4K< z#3-{CnPweI%z9Lq4OnkJzz(woJIz+?Hrr5Rb~u-(jdbF38l(1!p+m651%C*Cq6Zgx-?S+Y)+T zLLW%zLkWH2xjZdP#WA$}0U6s8VYW45?XwtU{V~c0BGU$=#I{9+bz{8^#SYs6J8eho zwh^eYUA;4(p8no{Z`;>1VxnTj6$iI{8PT>M2G|6o*n!Bkub{{d#$r1RWp+5;wj)q! zQ<`s^6FTGP{CMFrgr6dOmhe-B&lP^U@Oi=)3ST6AvG8*}J!VF#s3n4w3sND-NVK diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index ee6f1cdf1bf6e10a3fd62785cf616b52ab5ef275..b2040f9079c07f3438adb7de74566b9d40528466 100644 GIT binary patch literal 15365 zcmdU0d3;pW^*`s{H}huRya2LEOu(=RA%I~MBmp#mfRO}{P%vPTNiu}dNoJf(0`7>r z;I6f}px_eRC4mHuB6X=&TeWJf)>eO7*J5pLaj8`KeeZj-g-pgs`%m*p=G^zrx#ymH z?m6e4d+y|g?;qPuM3Z=rPJ(G-RXD$KRj4Z8U+b&M_t!^!;ZWEY@zw;x`Ju4CzSud8DRGsFljxc2`E-EjYf5L)O7nYWtP{hQgcsDCp-w^TE zN0xX4jXsHiYnXb^E?rczc)_C51*gtgFn@6gQ{S=#yNU>gtu1ts$>csdzdGP;Xz(?F zRm5B8tzR9S6|C{s2AO(Ayj8w{x58gn6$}JHa9mlMxip-q$j~L=i?PgK+=)RUle0Du ztnvn!X8c%IB@NZVP;jo*9gK8eeI)Fy@iGnSGPB~wRjYhq5NWG@-ViitQ#3~Wf&4Om zLj)Lig}=7m8)*#t)T}Jk#L?5!iI!L~wJ4Eb;Y`I%DXQe9*SqS>h_5Cnj-2QH?hg34+gvvS7G29|ji)=Z72XBmO#HekAPk8 z5fcm=OZg^^r(rP6>6WmH?L?D~q#QU=nZMpQzp<{$7ls`NU@3jeg4N!@5^vbAo~@S# zNy^u0DpS9N6%~cU-ZPb@88n6R70&{b`qKa?A+p*JN1EKTwdf=-bgI>P{q;-(bC-9q z`NGjl42*NUNkwWpu4->M?5p*Lb(+OAzDL?gT6raMiAjSf)1YFSt8{b%)7;#2V#h4y zhirTF62<*QlLpfe#l6g=a+(k2#zeN{@ReIrJwA7Ix-nD5oM^bRxgf~RFz6(z&}k9V z^fY?-K~^R$rk_BwVP8Wq(4;)7EH}k69HO{|IxRh90m~7HYJvtWp-PjM(Q=qbtuM0J zj^^dQx*!bJGF{6TOAQ)HKUHhG0w$GPYA?u2llstMibs`6)oK%QgGX#D&~isFFLu)^ zTCGzpQ{j(PWODE}$xo-j;SdL{T}CV~R+gKuKI%-WSLQ3LLyc|<5zP0DPCH@6nGF#i zs2T{{p$sY-b1P`x^2sYndO6%n3Hu z*OcIGDB=&+n{+0f#biJc<-UdnZ!Ka#e^_Lft<<1%=scayjYWaZ!kBbEt;3e3B3dK> z2Of~haNxh|mB<$+F)3XTm&Krq74{OQkzM2OBFv%|!4@(nb+}A*xIBFZ64yYP+NzT} zZ%~~#G8OkkeMQw!Pq4JU#@FPp2}Uh0&J0%O4c8*<^-B@AU}y12&ouK8-6!hpht9xu zA;j1WtWhFELymXsXwy18&_PW(@v(LUHzC=sA03Uo@!~^;Qx6HzvJAFC&@iyt^Y9 z%t^ns_cWbwW6YJXj#XF{99iOe3V%Cjaj_#` zrPEuW?Zysl&D)lsv<}t3NzFR_=?4-nZ@9r1&W|ViWxln(ut9&Mca_QiAM7qwFqpO4 z8@7i+rl-^UDaD!1Oe}xD6al8#Ts$CixXxh`z4=@~2YIE`i;X@zM-;`ed z&gAc2FLo;NUm8;-=pWHPO!_D7gP}GcK}#H%m`0@%0|InDSJ_OyGU;pj2F4u<2WxTW z!#S}ey*GspGP;G<^N3jgQ&Es;4A(<1-_pNz+MhD`Eouz-7Fl!^IEwpB`i{OwR--aa zhV(20<$-*C-4RsF3 z>P(1H`QGSJrO=`@G?4p1Ird614N0*xBn4mSCZGcL57ko+@;58UV>@z2l!YOZ z9hGXBgTpsEFh)wXSsmnzpwyHBr6#saE8%P)mi1~!9G60fgJ_eM3%zQ5s}QNuDL!HF zYLswK>0v^JZW_tsOg@^NNOD8f$R2pS$rE@Ylc&iW2!>1Q)B<9rxfP=;6!m12kFls5 zLh5m<$;a|Ec(PSHTM+Vvz4bL}o}JDe@xTNDdscsfaK5k)g<7x9GnfubBz&qsQ;Xf3 zr}J?pAFoc{E}S2%QmlGeZ1OCgjUWm68+{9)yn#4xCq<$tgF=G~c#iU)xr!tOfeQT0 zr6!-q^AKu-RXC)?W~i9>!zkEJPFtXfAG7k4iiM*~mFCJ#p070LZc??aCZ8WkH1k4} zPvS+8zQ)(ka#L^{v5N>O%QiblKNTa$*=pln7o5#tu!M@Y5%LYnT%Q93% z{1Ju(NgS3Wh*!Z7vOB)m6jQgcCcX@H?=u*ty>*6b*=Y;%6hpG#5aHQjn zIJ5DUOxc}R3E2+rYGP+U7hm1EcSEQk$HmuTaZz-6x)siwQxnXoe!5lF))eD&_V+VloMxeU*F`^cpGw5sCasdiWSxb zQ~|Gz?@+VYa?p`BYBkALdhoRFgacR?7HT?oL!SmlZbmt0Au^E$l(l?0XJEC@X!M11 zaD@`^=3t}o=J>-l#AEpB*0ugRyt0z~r<5x)mKT15_6O{o&jw#f#aA4Q=ijWwoDapK3P#Ayd%J$~}h`Edlj zG+d+mcl>m^Fy%o(XVfny{Af0?-GfdXG!(}Jb!ll*COOE7Cmm0MT)5HW?GNxtMkzDx~S?>!ukP z!4i}oz}OnzZQe!4bx?6-3(an)IjvOMLZxjquWU@;1#Pr&4=pKgq1+bA(^ghmvlv-9 zwvA41r&B6g=u|YlJISZOZp^oX7*d@+e_R^{nrTj13kAotQDYmO-Aud`Zdg>1m`G}1I$L$hct7U(RhK)HPxokz=2SXUhV;L}8xfZ{T=t^n_ibRAtq*V8q0 z8{KHF$0^Vrv_)6qJ%Q^ix*AxVO~H8vU5gd1fT>*vJxlO4(Dw#l{b=1tKSOH`S~t

{F_*Q0d{-HO(2;CTe;UlU4)O-8X!>&tbz7=M@HZ-arcaV>{2HiOQM7a6{J&W!*>f@op(?Coi>9E$zhZ z%q~l@d6-Ur`YHXEUImX#EZu8RF~jGU(ChFxf!-ea9le3El$v1X-_sDC?$YV^oG+jn z6bPfLae*eT7%qZh)S_+Rc^&j7EPQJl{h^)SF6*E_R*q?>cgj2Hy~?re^ym2<^ik!w z7W$-}KA)G@LKE8P3ux}k0xeT(qkrw80|kx_X0Vu$>1bzJ;LLQ6Yhz~z8)?SlCa;|b6}U283YC@j2*j~{zZlj@^f;b&qqPSU{{>d~DLR^- zreo+CcHaRaA<28zvqqpHv_vB24!kt?TYhzL8#m+9QWV<*iVd@H&02Dfqk z%)$2~KJNnu6@&1@pQ;ZqybBQFQo9roL0rBCh?pe50z_ogR9HsH)y4xNtZU_fF2K_O z`vN`-H~^%6K!j?i(&!O*ulOTmJ0K%&_{lLEa4=vgU>@K#fMWn30UQhX3g9@vzXMJI zpLW0k47mcZ5YJNqA-i)a;0(YufHMJa0-Oi<4qzGJ_kfU59|AZZ5Hv7(;?Dq22K*MV z5>v(;XeA)pR0Fsfa5dnc0RxzSE?@|-4lsiEDz2Reek$gz1AGDyaZvvf@FLK)0B(Y6 zFbBjHa)Ae&kzCL_q6@kH0tnY}D?MN=H^zdKlDir34g?gnt!)AH0d56+2JlWI&v3xI z09DKdt>-=0qg*NU$e)P>8#wrleC(hJgM3E&VF*(Pk&REF-3h$ znz)Ax;4n7rO3)@ynR-RD@l4_wq|@7Y=JdoHnN_oki$JwG@lLDhN*8@IBT1x0hpgKts@98`vuv^0ulF|rg{Z4y~3G3R!V zx5OOPJ>C*i?;fwjbbg$K?_Nyj9$Rq<2`9!D$qFaVJ1o4`EqLZDR+iN*S*FECc87QT%ffdnrsFLO->sOAM=gA}VmdbUNK8jKAz->Nmz8}U>^c#` z9R)q@x2|(P(bInGJN46ENc4+^o~)axw>8NH+7zu>+m@iPLX9QvSRK2_*k)}*0vYeV zsZ)1mbWC(XYr`=kV=$LzNxv*)DwcVW-3AA#}U8Xx7;1nuFa1$tb>n1?ZTlUO@bZ{vEkH`2Vs zOKY8fke}5vX%@?@)OTXV0PSXiKVV{GH5Hny@vR^{wuMG)`NwOjrc#5F3ZS_2AG_j* zX|0L}A)kI1C#?5S75X!3IUnK_^D*V%TM;8^ujoTxh<>zB452T@Q2IuUrGJTh`c522 z2gHfYVktYsGWLi7XNYsTk66e3#SJ`A+{1&!c0NKp#Y4oiJWRaBBg9@FDZb)dsq}VUZ9HE-#tY@Myhy&mOXOR; zOz!1VyCx|reit(!BNNWI70ls<81!GaV3A^xQ0J- z+`^wbw({Q{J9riX3OL80IV$Bb>`cu5*RRcZS3S=h@;I=Xqk9^BPg;yhR-6+$?4}9}y+a4pHjd zEy|s*hy~8KMTPSnvDEpYsC0fUmg_>Csyjrrez@@I!-QWyO4R97MNlsm4SI=Kqc0U_ z>Q&-g-6t;4*N6-C_2N?fVzEKrD6Z5ui>vi}#r66FVw1i{+@ilKZqwfox9jhTJM|Al zv;K{^*JX(NUA@GEu1vArl`VF<#*21Wv3S%qM|8MO5>L7oi)US{#B;9G#IIZ-@uI6q zyzIJI{ML1i_`U0T@wV%3@h8{4;$7Fn;yu?+@uBM(@v-Y=@mJTY;tSUY;-9Wh#Fwtm z#n-NVV!vC8@7%qlbRQ;l_i*WUkCGnuIGN#|BoA{J%YN>1ndx3A2fM4}k?vJ;s5>Bs zyTfvn`vN)Iy;0`7ua=YCTjVkByX92({c@UnyPVt9^MzuWM@XI9W}~S3c-DQEvCFkgcAO-03-6wtLpeM?IIw4$nsUq~{j-3(r0BInTZF zMb8uRH=dW}%bq{T-+JDauX#R{zw_*sZ+X6zZ<`MJp6QYwnZ4yF<^cH@bCCSp%#!=e zVe%_;jQqx&BEL0@<-bk8#%4fsm}@lMT(6nt#abWpMy;=Tzt-Pu(FU5kwL#`9+FFe{Mvzg~bgtA=-K?){;Zwt?GDdTfDUw|C(U+)xM{`cFVCf_Rd)vZ+%EPHdfyl zZ|yj&?ufSz#9E#e z@zxWumf0Ks+hmPv4xReAy^p5Z?~ICgt0mU*92Red;;olsEy~Uqz-xFdDrvnlhVhwv7HQ^X*GW!_ImSuNe%kJVD| zbX7$X(@;Adpmk_VcGABO~vq{WLrIcVxExlQaBC{ER&4 zW9rnY2T)U2yjlHPoH7rfOlS`md-Xp|RAkQ%UmZ&`yZ=$5zWZt6p#4<7pXT;HfEsRR z8^OON;tL_L8dX@VhM`Kp%rVHq@HfdS4dsnNWo5>gY-CJ{o2|a8Dy$VzhBk}(X(cpB zn`_m+b8H571XHYdJ?t76sQ6OPg~}^2AinPs9k41oV76VR#*oO&cJW0s#;7FCIzMKs zil$wkw{Fw4dDI70=OeTQN#kY5$IFh6*9XxeHXgoj6dmt4jECwr!EM*!H*4j}>l5tN zO(khRvDgl@$>MB1d>Pyr*TL!=5;ik_7RrPYco6Q?)YVNtzFghiK=3x+fXf@)mBlev z*_cVmn0|as8(*g`f<{H@Y%OF@+Qm15z90YGz6Ao6y7{rOxc+$^1&@ w2$ar$;~PxFhYme*C<#X09G`8Bx;gGDB=4e6`7zwLbnp}WBy#?-c#og|2R(hb5C8xG literal 16306 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 diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 1765fd0..a0970ab 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -129,7 +129,10 @@ bottomup entraNaClasse : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) { - simboloClasse = ((SimboloClasse)$nome.simbolo); + + simboloClasse =(SimboloClasse)tabelaSimbolos.global.resolver("L" + $nome.getText()); + if(!assembler.getConstantPool().contains(simboloClasse)) + assembler.getConstantPool().add(simboloClasse); if ( $sup!=null ) { $sup.simbolo = $sup.escopo.resolver($sup.text); simboloClasse.superClasse = diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index b921edf..d872b41 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-06 01:53:57 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-06 11:43:11 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 28ff76f..4b57c09 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-06 01:53:56 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-06 11:43:10 package br.ufpb.iged.interpretador.parser; @@ -1002,7 +1002,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: ID, superClasse, 30, membroClasse + // elements: 30, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1444,7 +1444,7 @@ else if ( (LA8_0==27) ) { // AST REWRITE - // elements: INIT, operacao, parametros + // elements: operacao, parametros, INIT // token labels: // rule labels: retval // token list labels: @@ -1608,7 +1608,7 @@ else if ( (LA10_0==27) ) { // AST REWRITE - // elements: operacao, ID, ret, parametros + // elements: ret, ID, operacao, parametros // token labels: // rule labels: ret, retval // token list labels: @@ -2048,7 +2048,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo54.getTree()); // AST REWRITE - // elements: tipo, b, 51 + // elements: 51, tipo, b // token labels: // rule labels: retval, b // token list labels: @@ -2104,7 +2104,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo55.getTree()); // AST REWRITE - // elements: b, 99, tipo + // elements: tipo, 99, b // token labels: // rule labels: retval, b // token list labels: @@ -2164,7 +2164,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, 83, d + // elements: d, 83, c // token labels: // rule labels: retval, d, c // token list labels: @@ -3316,7 +3316,7 @@ else if ( (LA20_0==45) ) { // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index cf829a5..d8a8dc2 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-06 01:53:58 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-06 11:43:12 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index fa4a994..4eb2087 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-06 01:53:57 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-06 11:43:12 package br.ufpb.iged.interpretador.parser; @@ -579,7 +579,10 @@ public final void entraNaClasse() throws RecognitionException { if ( state.backtracking==1 ) { - simboloClasse = ((SimboloClasse)nome.simbolo); + + simboloClasse =(SimboloClasse)tabelaSimbolos.global.resolver("L" + nome.getText()); + if(!assembler.getConstantPool().contains(simboloClasse)) + assembler.getConstantPool().add(simboloClasse); if ( sup!=null ) { sup.simbolo = sup.escopo.resolver((sup!=null?sup.getText():null)); simboloClasse.superClasse = @@ -610,14 +613,14 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:149:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( FIELD_DECL ID tip= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel333); if (state.failed) return ; @@ -654,20 +657,20 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:154:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:4: ^( CONSTR_DECL INIT ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:158:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:158:4: ^( CONSTR_DECL INIT ( . )+ ) { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor370); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor372); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:158:23: ( . )+ int cnt4=0; loop4: do { @@ -684,7 +687,7 @@ else if ( (LA4_0==UP) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:155:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:158:23: . { matchAny(input); if (state.failed) return ; @@ -730,13 +733,13 @@ else if ( (LA4_0==UP) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:2: ( ^( METHOD_DECL ID . ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:4: ^( METHOD_DECL ID . ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:2: ( ^( METHOD_DECL ID . ( . )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ^( METHOD_DECL ID . ( . )+ ) { match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo395); if (state.failed) return ; @@ -745,7 +748,7 @@ public final void entraNoMetodo() throws RecognitionException { matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: ( . )+ int cnt5=0; loop5: do { @@ -762,7 +765,7 @@ else if ( (LA5_0==UP) ) { switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: . { matchAny(input); if (state.failed) return ; @@ -808,11 +811,11 @@ else if ( (LA5_0==UP) ) { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:174:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:177:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:5: METHOD_DECL { match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo419); if (state.failed) return ; @@ -840,11 +843,11 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:183:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:186:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:184:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:184:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:187:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:187:5: CONSTR_DECL { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor435); if (state.failed) return ; @@ -872,15 +875,15 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:195:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:193:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:193:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:7: ^( 'getfield' classe= . . campo= . tipo= . ) { match(input,51,FOLLOW_51_in_getfield457); if (state.failed) return ; @@ -924,15 +927,15 @@ public final void getfield() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:202:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:200:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:200:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:7: ^( 'putfield' classe= . . campo= . tipo= . ) { match(input,99,FOLLOW_99_in_putfield506); if (state.failed) return ; @@ -976,7 +979,7 @@ public final void putfield() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:209:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -984,8 +987,8 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:210:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:210:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) { match(input,83,FOLLOW_83_in_invokespecial555); if (state.failed) return ; @@ -1031,13 +1034,13 @@ public final void invokespecial() throws RecognitionException { // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:1: novaClasse : ^( 'new' classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:216:1: novaClasse : ^( 'new' classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:3: ( ^( 'new' classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:5: ^( 'new' classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:217:3: ( ^( 'new' classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:217:5: ^( 'new' classe= . ) { match(input,95,FOLLOW_95_in_novaClasse606); if (state.failed) return ; @@ -1071,13 +1074,13 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:224:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:224:7: ^( ARITMETICA operacao= . ) { match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica637); if (state.failed) return ; @@ -1111,13 +1114,13 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:230:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:231:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:231:5: ^( LOAD operacao= . ) { match(input,LOAD,FOLLOW_LOAD_in_load671); if (state.failed) return ; @@ -1151,14 +1154,14 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:234:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:237:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:238:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:238:7: ^( LOAD operacao= . operando= . ) { match(input,LOAD,FOLLOW_LOAD_in_loadint700); if (state.failed) return ; @@ -1196,13 +1199,13 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:241:1: store : ^( STORE operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:244:1: store : ^( STORE operacao= . ) ; public final void store() throws RecognitionException, AcessoIndevidoMemoriaException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:6: ^( STORE operacao= . ) { match(input,STORE,FOLLOW_STORE_in_store742); if (state.failed) return ; @@ -1236,14 +1239,14 @@ public final void store() throws RecognitionException, AcessoIndevidoMemoriaExce // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:1: storeint : ^( STORE operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:251:1: storeint : ^( STORE operacao= . operando= . ) ; public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:7: ^( STORE operacao= . operando= . ) { match(input,STORE,FOLLOW_STORE_in_storeint771); if (state.failed) return ; @@ -1281,14 +1284,14 @@ public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaE // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:255:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:258:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:7: ^( DESVIO operacao= . operando= . ) { match(input,DESVIO,FOLLOW_DESVIO_in_desvio812); if (state.failed) return ; @@ -1326,13 +1329,13 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:265:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:263:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:263:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:266:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:266:7: ^( LOGICA operacao= . ) { match(input,LOGICA,FOLLOW_LOGICA_in_logica853); if (state.failed) return ; @@ -1366,13 +1369,13 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:269:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:272:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:6: ^( PILHA operacao= . ) { match(input,PILHA,FOLLOW_PILHA_in_pilha887); if (state.failed) return ; @@ -1406,13 +1409,13 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:276:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:279:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:6: ^( LABEL operacao= . ) { match(input,LABEL,FOLLOW_LABEL_in_label915); if (state.failed) return ; @@ -1446,15 +1449,15 @@ public final void label() throws RecognitionException, LabelException { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:283:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:286:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; public final void retorno() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) int alt6=3; switch ( input.LA(1) ) { case 86: @@ -1483,21 +1486,21 @@ public final void retorno() throws RecognitionException { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:8: operacao= 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:8: operacao= 'ireturn' { operacao=(BytecodesAST)match(input,86,FOLLOW_86_in_retorno951); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:285:8: operacao= 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:288:8: operacao= 'areturn' { operacao=(BytecodesAST)match(input,44,FOLLOW_44_in_retorno965); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:286:8: operacao= 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:289:8: operacao= 'return' { operacao=(BytecodesAST)match(input,100,FOLLOW_100_in_retorno979); if (state.failed) return ; diff --git a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java index d2177a8..f42205c 100644 --- a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java +++ b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java @@ -1,7 +1,9 @@ package br.ufpb.iged.interpretador.principal; import java.util.Collection; +import java.util.List; +import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.excecoes.ClassNotFoundException; import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; @@ -9,28 +11,25 @@ public class ClassLoader { - private EscopoGlobal escopoGlobal; + private BytecodeAssembler assembler; private static final String METODO_MAIN = "main(VOID)V"; - public ClassLoader(EscopoGlobal global) { + public ClassLoader(BytecodeAssembler assembler) { - escopoGlobal = global; + this.assembler = assembler; } public SimboloClasse carregarClasse(String nome) throws ClassNotFoundException{ - - Collection simbs = escopoGlobal.simbolos.values(); - - for(Simbolo simb: simbs){ - - if (simb.nome.startsWith("L")) { - - if (((SimboloClasse)simb).nome.equals(nome)) - return (SimboloClasse)simb; + + List classes = assembler.getConstantPool(); + + for(SimboloClasse classe: classes){ + + if (classe.nome.equals(nome)) + return classe; - } } @@ -38,18 +37,26 @@ public SimboloClasse carregarClasse(String nome) throws ClassNotFoundException{ } + public SimboloClasse carregarClasse(int index) throws ClassNotFoundException { + + SimboloClasse classe = assembler.getConstantPool().get(index); + + if (classe != null) + return classe; + + throw new ClassNotFoundException("A classe referenciada năo pôde ser encontrada"); + + } + public SimboloClasse carregarClasseMain() throws ClassNotFoundException{ - Collection simbs = escopoGlobal.simbolos.values(); + List classes = assembler.getConstantPool(); - for(Simbolo simb: simbs){ - - if (simb.nome.startsWith("L")) { + for(SimboloClasse classe: classes){ - if (((SimboloClasse)simb).possuiMetodo(METODO_MAIN, "main")) - return (SimboloClasse)simb; + if (classe.possuiMetodo(METODO_MAIN, "main")) + return classe; - } } diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 5704364..0590b00 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -107,7 +107,7 @@ public static void main(String[] args) { SimboloMetodo init = (SimboloMetodo) teste.resolver(""); init.exibirCodigo();*/ - loader = new ClassLoader(global); + loader = new ClassLoader(assembler); try { @@ -208,7 +208,7 @@ public static BytecodeAssembler carregarClasses() throws RecognitionException, L } - protected void cpu() { + protected void cpu() throws ClassNotFoundException { int op1, op2; @@ -217,880 +217,888 @@ protected void cpu() { boolean desvio; Referencia referencia; + + do{ + + StackFrame frameAtual = pilha[topoPilha]; - while (pilha[topoPilha].pc < tamanhoCodigo) { + while (frameAtual.pc < tamanhoCodigo) { - desvio = false; + desvio = false; - opcode = global.codigo[pilha[topoPilha].pc]; + opcode = global.codigo[frameAtual.pc]; - if (opcode < 0) + if (opcode < 0) - opcode = valorEmByte(opcode); + opcode = valorEmByte(opcode); - switch (opcode) { + switch (opcode) { - // operaçőes de pilha + // operaçőes de pilha - case Definicao.NOP: - ; - break; - - case Definicao.POP: - pilha[topoPilha].sp-- ; - break; - - case Definicao.POP2: - pilha[topoPilha].sp -= 2 ; - break; - - case Definicao.DUP: { + case Definicao.NOP: + ; + break; - Referencia ref = (Referencia)pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp++; + case Definicao.POP: + frameAtual.sp-- ; + break; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = ref; + case Definicao.POP2: + frameAtual.sp -= 2 ; + break; - } + case Definicao.DUP: { + + Referencia ref = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = ref; + + } ; break; - // operaçőes aritméticas + // operaçőes aritméticas - case Definicao.INEG: { + case Definicao.INEG: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0 - op1; + frameAtual.pilhaOperandos[frameAtual.sp] = 0 - op1; - }; + }; break; - case Definicao.IADD: { + case Definicao.IADD: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 + op2; + frameAtual.pilhaOperandos[frameAtual.sp] = op1 + op2; - } + } ; break; - case Definicao.ISUB: { + case Definicao.ISUB: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 - op2; + frameAtual.pilhaOperandos[frameAtual.sp] = op1 - op2; - } + } ; break; - case Definicao.IMUL: { + case Definicao.IMUL: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 * op2; + frameAtual.pilhaOperandos[frameAtual.sp] = op1 * op2; - } + } ; break; - case Definicao.IDIV: { + case Definicao.IDIV: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 / op2; + frameAtual.pilhaOperandos[frameAtual.sp] = op1 / op2; - } + } ; break; - case Definicao.IREM: { + case Definicao.IREM: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1 % op2; + frameAtual.pilhaOperandos[frameAtual.sp] = op1 % op2; - } + } ; break; - case Definicao.IINC: { + case Definicao.IINC: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = ++op1; + frameAtual.pilhaOperandos[frameAtual.sp] = ++op1; - } + } ; break; - // operaçőes de empilhamento de constantes + // operaçőes de empilhamento de constantes - case Definicao.ICONST0: { + case Definicao.ICONST0: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - } + } ; break; - case Definicao.ICONST1: { + case Definicao.ICONST1: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 1; + frameAtual.pilhaOperandos[frameAtual.sp] = 1; - } + } ; break; - case Definicao.ICONST2: { + case Definicao.ICONST2: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 2; + frameAtual.pilhaOperandos[frameAtual.sp] = 2; - } + } ; break; - case Definicao.ICONST3: { + case Definicao.ICONST3: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 3; + frameAtual.pilhaOperandos[frameAtual.sp] = 3; - } + } ; break; - case Definicao.ICONST4: { + case Definicao.ICONST4: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 4; + frameAtual.pilhaOperandos[frameAtual.sp] = 4; - } + } ; break; - case Definicao.ICONST5: { + case Definicao.ICONST5: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 5; + frameAtual.pilhaOperandos[frameAtual.sp] = 5; - } + } ; break; - case Definicao.ICONSTM1: { + case Definicao.ICONSTM1: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = -1; + frameAtual.pilhaOperandos[frameAtual.sp] = -1; - } + } ; break; - - case Definicao.ACONSTNULL: { - pilha[topoPilha].sp++; + case Definicao.ACONSTNULL: { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = new Referencia(null); + frameAtual.sp++; - } + frameAtual.pilhaOperandos[frameAtual.sp] = new Referencia(null); + + } ; break; - case Definicao.LDC: { + case Definicao.LDC: { - pilha[topoPilha].sp++; + frameAtual.sp++; - op1 = obterOperandoInteiro(); + op1 = obterOperandoInteiro(frameAtual); - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = op1; + frameAtual.pilhaOperandos[frameAtual.sp] = op1; - } + } ; break; - // operaçőes de load + // operaçőes de load - case Definicao.ILOAD0: { + case Definicao.ILOAD0: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[0]; + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[0]; - } + } ; break; - case Definicao.ILOAD1: { + case Definicao.ILOAD1: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[1]; + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[1]; - } + } ; break; - case Definicao.ILOAD2: { + case Definicao.ILOAD2: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[2]; + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[2]; - } + } ; break; - case Definicao.ILOAD3: { + case Definicao.ILOAD3: { - pilha[topoPilha].sp++; + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[3]; + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[3]; - } + } ; break; - case Definicao.ILOAD: { + case Definicao.ILOAD: { - pilha[topoPilha].sp++; + frameAtual.sp++; - op1 = obterOperandoInteiro(); + op1 = obterOperandoInteiro(frameAtual); - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[op1]; + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[op1]; - } + } ; break; - - case Definicao.ALOAD0: { - pilha[topoPilha].sp++; + case Definicao.ALOAD0: { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[0]; + frameAtual.sp++; - } + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[0]; + + } ; break; - - case Definicao.ALOAD1: { - pilha[topoPilha].sp++; + case Definicao.ALOAD1: { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[1]; + frameAtual.sp++; - } + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[1]; + + } ; break; - - case Definicao.ALOAD2: { - pilha[topoPilha].sp++; + case Definicao.ALOAD2: { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[2]; + frameAtual.sp++; - } + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[2]; + + } ; break; - - case Definicao.ALOAD3: { - pilha[topoPilha].sp++; + case Definicao.ALOAD3: { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[3]; + frameAtual.sp++; - } + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[3]; + + } ; break; - - case Definicao.ALOAD: { - pilha[topoPilha].sp++; + case Definicao.ALOAD: { - op1 = obterOperandoInteiro(); + frameAtual.sp++; - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = pilha[topoPilha].variaveis[op1]; + op1 = obterOperandoInteiro(frameAtual); - } + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[op1]; + + } ; break; - - // operaçőes de store - case Definicao.ISTORE0: { + // operaçőes de store - pilha[topoPilha].variaveis[0] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + case Definicao.ISTORE0: { - } + frameAtual.variaveis[0] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } ; break; - case Definicao.ISTORE1: { + case Definicao.ISTORE1: { - pilha[topoPilha].variaveis[1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + frameAtual.variaveis[1] = frameAtual.pilhaOperandos[frameAtual.sp]; - } + frameAtual.sp--; + + } ; break; - case Definicao.ISTORE2: { + case Definicao.ISTORE2: { - pilha[topoPilha].variaveis[2] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + frameAtual.variaveis[2] = frameAtual.pilhaOperandos[frameAtual.sp]; - } + frameAtual.sp--; + + } ; break; - case Definicao.ISTORE3: { + case Definicao.ISTORE3: { - pilha[topoPilha].variaveis[3] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + frameAtual.variaveis[3] = frameAtual.pilhaOperandos[frameAtual.sp]; - } + frameAtual.sp--; + + } ; break; - case Definicao.ISTORE: { + case Definicao.ISTORE: { - op1 = obterOperandoInteiro(); + op1 = obterOperandoInteiro(frameAtual); - pilha[topoPilha].variaveis[op1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + frameAtual.variaveis[op1] = frameAtual.pilhaOperandos[frameAtual.sp]; - } + frameAtual.sp--; + + } ; break; - - case Definicao.ASTORE0: { - pilha[topoPilha].variaveis[0] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + case Definicao.ASTORE0: { - } + frameAtual.variaveis[0] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } ; break; - - case Definicao.ASTORE1: { - pilha[topoPilha].variaveis[1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + case Definicao.ASTORE1: { - } + frameAtual.variaveis[1] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } ; break; - - case Definicao.ASTORE2: { - pilha[topoPilha].variaveis[2] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + case Definicao.ASTORE2: { - } + frameAtual.variaveis[2] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } ; break; - - case Definicao.ASTORE3: { - pilha[topoPilha].variaveis[3] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + case Definicao.ASTORE3: { - } + frameAtual.variaveis[3] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } ; break; - - case Definicao.ASTORE: { - op1 = obterOperandoInteiro(); + case Definicao.ASTORE: { - pilha[topoPilha].variaveis[op1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - pilha[topoPilha].sp--; + op1 = obterOperandoInteiro(frameAtual); - } + frameAtual.variaveis[op1] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } ; break; - // operaçőes lógicas + // operaçőes lógicas - case Definicao.IAND: { + case Definicao.IAND: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - op1 = op1 & op2; + op1 = op1 & op2; - pilha[topoPilha].sp--; + frameAtual.sp--; - } + } ; break; - case Definicao.IOR: { + case Definicao.IOR: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - op1 = op1 | op2; + op1 = op1 | op2; - pilha[topoPilha].sp--; + frameAtual.sp--; - } + } ; break; - case Definicao.IXOR: { + case Definicao.IXOR: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - op1 = op1 ^ op2; + op1 = op1 ^ op2; - pilha[topoPilha].sp--; + frameAtual.sp--; - } + } ; break; - // operaçőes de desvio condicional + // operaçőes de desvio condicional - case Definicao.IFEQ: { + case Definicao.IFEQ: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - if (op1 == 0) { + if (op1 == 0) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - - pilha[topoPilha].pc += 4; - - } + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - } + frameAtual.pc += 4; + + } + + } ; break; - case Definicao.IFNE: { + case Definicao.IFNE: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - if (op1 != 0) { + if (op1 != 0) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - - pilha[topoPilha].pc += 4; - - } + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - } + frameAtual.pc += 4; + + } + + } ; break; - case Definicao.IFLT: { + case Definicao.IFLT: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - if (op1 > 0) { + if (op1 > 0) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - - pilha[topoPilha].pc += 4; - - } + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - } + frameAtual.pc += 4; + + } + + } ; break; - case Definicao.IFGE: { + case Definicao.IFGE: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - if (op1 >= 0) { + if (op1 >= 0) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - - pilha[topoPilha].pc += 4; - - } + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - } + frameAtual.pc += 4; + + } + + } ; break; - case Definicao.IFGT: { + case Definicao.IFGT: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - if (op1 > 0) { + if (op1 > 0) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - - pilha[topoPilha].pc += 4; - - } + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - } + frameAtual.pc += 4; + + } + + } ; break; - case Definicao.IFLE: { + case Definicao.IFLE: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - if (op1 <= 0) { + if (op1 <= 0) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; - - pilha[topoPilha].pc += 4; - - } + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - } + frameAtual.pc += 4; + + } + + } ; break; - case Definicao.IF_ICMPEQ: { + case Definicao.IF_ICMPEQ: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - if (op1 == op2) { + if (op1 == op2) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - pilha[topoPilha].pc += 4; + frameAtual.pc += 4; - } + } - } + } ; break; - case Definicao.IF_ICMPNE: { + case Definicao.IF_ICMPNE: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - if (op1 != op2) { + if (op1 != op2) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - pilha[topoPilha].pc += 4; + frameAtual.pc += 4; - } + } - } + } ; break; - case Definicao.IF_ICMPLT: { + case Definicao.IF_ICMPLT: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - if (op1 < op2) { + if (op1 < op2) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - pilha[topoPilha].pc += 4; + frameAtual.pc += 4; - } + } - } + } ; break; - case Definicao.IF_ICMPGE: { + case Definicao.IF_ICMPGE: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - if (op1 >= op2) { + if (op1 >= op2) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - pilha[topoPilha].pc += 4; + frameAtual.pc += 4; - } + } - } + } ; break; - case Definicao.IF_ICMPGT: { + case Definicao.IF_ICMPGT: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - if (op1 > op2) { + if (op1 > op2) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - pilha[topoPilha].pc += 4; + frameAtual.pc += 4; - } + } - } + } ; break; - case Definicao.IF_ICMPLE: { + case Definicao.IF_ICMPLE: { - op1 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - op2 = (Integer) pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - pilha[topoPilha].sp--; + frameAtual.sp--; - if (op1 <= op2) { + if (op1 <= op2) { - desviar(); + desviar(frameAtual); - desvio = true; + desvio = true; - } else { + } else { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 0; + frameAtual.pilhaOperandos[frameAtual.sp] = 0; - pilha[topoPilha].pc += 4; + frameAtual.pc += 4; - } + } - } + } ; break; - // desvio incondicional - case Definicao.GOTO: { + // desvio incondicional + case Definicao.GOTO: { - op1 = obterOperandoInteiro(); + op1 = obterOperandoInteiro(frameAtual); - pilha[topoPilha].pc = op1; + frameAtual.pc = op1; - desvio = true; + desvio = true; - } + } ; break; - - //manpilha[topoPilha].pculaçăo de objetos - - case Definicao.NEW: { - - op1 = obterOperandoInteiro(); - - SimboloClasse simboloClasse = assembler.getConstantPool().get(op1); - - Objeto objeto = new Objeto(simboloClasse); - - heap.add(objeto); - - pilha[topoPilha].pilhaOperandos[++pilha[topoPilha].sp] = new Referencia(heap.indexOf(objeto)); - - } - + + //manipulaçăo de objetos + + case Definicao.NEW: { + + op1 = obterOperandoInteiro(frameAtual); + + SimboloClasse simboloClasse = loader.carregarClasse(op1); + + Objeto objeto = new Objeto(simboloClasse); + + heap.add(objeto); + + frameAtual.pilhaOperandos[++frameAtual.sp] = new Referencia(heap.indexOf(objeto)); + + } + ; break; - - case Definicao.INVOKESPECIAL: { - - pilha[topoPilha].sp--; - - pilha[topoPilha].pc += 4; - - } - + + case Definicao.INVOKESPECIAL: { + + frameAtual.sp--; + + frameAtual.pc += 4; + + } + ; break; - - case Definicao.GETFIELD: { - - referencia = (Referencia)pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp]; - - Objeto objeto = heap.get(referencia.getEndereco()); - - op1 = obterOperandoInteiro(); - - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = null; - - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = objeto.getMemoriaLocal()[op1]; - - } - + + case Definicao.GETFIELD: { + + referencia = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp]; + + Objeto objeto = heap.get(referencia.getEndereco()); + + op1 = obterOperandoInteiro(frameAtual); + + frameAtual.pilhaOperandos[frameAtual.sp] = null; + + frameAtual.pilhaOperandos[frameAtual.sp] = objeto.getMemoriaLocal()[op1]; + + } + ; break; - - case Definicao.PUTFIELD: { - - referencia = (Referencia)pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp - 1]; - - Objeto objeto = heap.get(referencia.getEndereco()); - - op1 = obterOperandoInteiro(); - - objeto.getMemoriaLocal()[op1] = pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp--]; - - } - + + case Definicao.PUTFIELD: { + + referencia = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + Objeto objeto = heap.get(referencia.getEndereco()); + + op1 = obterOperandoInteiro(frameAtual); + + objeto.getMemoriaLocal()[op1] = frameAtual.pilhaOperandos[frameAtual.sp--]; + + } + ; break; - - } - if (!desvio) + } + + + if (!desvio) - pilha[topoPilha].pc++; + frameAtual.pc++; - // Para testes - exibirTela(); + // Para testes + exibirTela(frameAtual); + } + + topoPilha--; - } + } while(topoPilha > -1); } - protected void desviar() { + protected void desviar(StackFrame frame) { - pilha[topoPilha].pilhaOperandos[pilha[topoPilha].sp] = 1; + frame.pilhaOperandos[frame.sp] = 1; - int op = obterOperandoInteiro(); + int op = obterOperandoInteiro(frame); - pilha[topoPilha].pc = op; + frame.pc = op; } - protected int obterOperandoInteiro() { + protected int obterOperandoInteiro(StackFrame frame) { - int op = BytecodeAssembler.obterInteiro(global.codigo, pilha[topoPilha].pc + 1); + int op = BytecodeAssembler.obterInteiro(global.codigo, frame.pc + 1); - pilha[topoPilha].pc += 4; + frame.pc += 4; return op; @@ -1103,13 +1111,13 @@ protected short valorEmByte(short a) { } // Usado somente para testes - protected void exibirTela() { + protected void exibirTela(StackFrame frame) { int i; - System.out.println("pilha[topoPilha].pc: " + pilha[topoPilha].pc); + System.out.println("frameAtual.pc: " + frame.pc); - System.out.println("pilha[topoPilha].sp: " + pilha[topoPilha].sp); + System.out.println("frameAtual.sp: " + frame.sp); System.out.print("Memória do código: "); @@ -1121,17 +1129,17 @@ protected void exibirTela() { System.out.print("Memória global das variáveis: "); - for (i = 0; i < pilha[topoPilha].variaveis.length; i++) + for (i = 0; i < frame.variaveis.length; i++) - System.out.print(pilha[topoPilha].variaveis[i] + " "); + System.out.print(frame.variaveis[i] + " "); System.out.print("\n"); System.out.print("Pilha: "); - for (i = 0; i < pilha[topoPilha].pilhaOperandos.length; i++) + for (i = 0; i < frame.pilhaOperandos.length; i++) - System.out.print(pilha[topoPilha].pilhaOperandos[i] + " "); + System.out.print(frame.pilhaOperandos[i] + " "); System.out.print("\n\n"); From abd076f073d0d091e520639809280ae7e72e648e Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Sat, 8 Sep 2012 17:31:41 -0300 Subject: [PATCH 62/79] commit --- .../asm/Definicao$Instrucao.class | Bin 841 -> 841 bytes .../bytecodeassembler/asm/Definicao.class | Bin 4791 -> 5079 bytes .../iged/interpretador/gramaticas/Assembler.g | 19 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 8 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 50 +- .../interpretador/parser/Assembler.tokens | 185 +- .../parser/AssemblerLexer$DFA6.class | Bin 1903 -> 1949 bytes .../interpretador/parser/AssemblerLexer.class | Bin 28659 -> 30572 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 770 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$comando_return.class | Bin 677 -> 677 bytes ...semblerParser$definicaoClasse_return.class | Bin 701 -> 701 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../AssemblerParser$instrucao_return.class | Bin 683 -> 683 bytes .../parser/AssemblerParser$label_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 692 -> 692 bytes .../AssemblerParser$operacao_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../AssemblerParser$programa_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../AssemblerParser$superClasse_return.class | Bin 689 -> 689 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 68604 -> 76771 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 18675 -> 20984 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 185 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1395 -> 1434 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 29152 -> 33435 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 185 +- .../principal/Interpretador.class | Bin 15365 -> 15402 bytes classes/Main.class | 3 +- instropcode_set.txt | 4 + .../bytecodeassembler/asm/Definicao.java | 8 + .../iged/interpretador/gramaticas/Assembler.g | 19 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 8 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 50 +- .../interpretador/parser/Assembler.tokens | 185 +- .../interpretador/parser/AssemblerLexer.java | 1583 +++++----- .../interpretador/parser/AssemblerParser.java | 2627 ++++++++++------- .../ufpb/iged/interpretador/parser/Def.java | 472 ++- .../ufpb/iged/interpretador/parser/Def.tokens | 185 +- .../ufpb/iged/interpretador/parser/Ref.java | 1053 +++++-- .../ufpb/iged/interpretador/parser/Ref.tokens | 185 +- .../principal/Interpretador.java | 16 +- .../symboltable/classes/SimboloMetodo.java | 2 +- 51 files changed, 4328 insertions(+), 2704 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao$Instrucao.class index f9fe2f11b10d9cc7351e57b4585efaf4a89d35b3..4bf682557959bb6c7a1911fdf45f0fb2ffc22752 100644 GIT binary patch delta 43 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 aRI!??8>kZgbDk>2-?=!p7jMS%Dd*oM&=86M literal 4791 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 ^(EXTENDS TIPO_REF) ; membroClasse - : '.field' ID tipo -> ^(FIELD_DECL ID tipo) - | '.method' INIT (parametros | '(' parametros ')') VOID NEWLINE operacao* '.end method' - -> ^(CONSTR_DECL INIT parametros ^(BODY operacao*)) - | '.method' ID (parametros | '(' parametros ')') ret = tipo NEWLINE operacao* '.end method' - -> ^(METHOD_DECL ID $ret parametros ^(BODY operacao*)) + : '.field' 'static'? ID tipo -> ^(FIELD_DECL ID tipo) + | '.method' INIT (parametros | '(' parametros ')') VOID NEWLINE (limite NEWLINE)? operacao* '.end method' + -> ^(CONSTR_DECL INIT parametros limite? ^(BODY operacao*)) + | '.method' 'static'? ID (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' + -> ^(METHOD_DECL ID $ret parametros limite? ^(BODY operacao*)) ; + +limite : '.limit locals' INTEIRO -> ^(LIMIT INTEIRO); parametros : '()' -> ^(PARAMS VOID) @@ -95,9 +98,13 @@ parametros retorno : 'areturn' | 'ireturn' | 'return'; manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) + | a = 'getstatic' b = campo tipo -> ^('getstatic' $b tipo) | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) + | a = 'putstatic' b = campo tipo -> ^('putstatic' $b tipo) | a = 'invokespecial' c = classe '/' d = chamadaMetodo -> ^('invokespecial' $c $d) + | a = 'invokestatic' c = classe '/' d = chamadaMetodo + -> ^('invokestatic' $c $d) | a = 'new'c = classe -> ^('new' $c) ; @@ -231,7 +238,7 @@ INTEIRO : '-'? '0'..'9'+ ; TIPO_REF: 'L' ID ('/' ID)*; -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; //LETRA: ('a'..'z' | 'A'..'Z'); diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 069b954..9febac0 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -71,11 +71,13 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .+) + : ^(CONSTR_DECL INIT .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); SimboloMetodo metodo = new SimboloMetodo($INIT.text, null, escopoAtual); + if (lim != null) + metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.def = $INIT; $INIT.simbolo = metodo; escopoAtual.definir(metodo); @@ -84,11 +86,13 @@ entraNoConstrutor ; entraNoMetodo - : ^(METHOD_DECL ID tipoRet =. .+) + : ^(METHOD_DECL ID tipoRet =. .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("linha "+$ID.getLine()+ ": def method "+$ID.text); SimboloMetodo metodo = new SimboloMetodo($ID.text, null, escopoAtual); + if (lim != null) + metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno($tipoRet.getText()); metodo.def = $ID; $ID.simbolo = metodo; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index a0970ab..cd8ff32 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -65,9 +65,9 @@ options { } - private void chamarConstrutorDefault(String nomeClasse) { + private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo) { - assembler.escreverOpcode("invokespecial"); + assembler.escreverOpcode(instrucao); SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); @@ -75,9 +75,17 @@ options { if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); + + SimboloMetodo simboloMetodo = + (SimboloMetodo) simboloClasse.resolver(nomeMetodo); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + if (!simboloClasse.getConstantPool().contains(simboloMetodo)) + + simboloClasse.getConstantPool().add(simboloMetodo); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + simboloClasse.getConstantPool().indexOf(simboloMetodo)); } @@ -105,8 +113,11 @@ topdown | entraNoConstrutor | declaracaoVariavel | getfield + | getstatic | putfield + | putstatic | invokespecial + | invokestatic | novaClasse | aritmetica | load @@ -155,7 +166,7 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .+) + : ^(CONSTR_DECL INIT .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("Ref: Entrou no construtor "+$INIT.text); escopoAtual = (SimboloMetodo)$INIT.simbolo; @@ -165,7 +176,7 @@ entraNoConstrutor ; entraNoMetodo - : ^(METHOD_DECL ID . .+) + : ^(METHOD_DECL ID . .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("Ref: Entrou no metodo "+$ID.text); escopoAtual = (SimboloMetodo)$ID.simbolo; @@ -199,6 +210,13 @@ getfield } ; +getstatic + : ^('getstatic' classe = . . campo = . tipo = .) + { + acessarCampo("getstatic", $classe.getText(), $campo.getText()); + } + ; + putfield : ^('putfield' classe = . . campo = . tipo = .) { @@ -206,10 +224,24 @@ putfield } ; +putstatic + : ^('putstatic' classe = . . campo = . tipo = .) + { + acessarCampo("putstatic", $classe.getText(), $campo.getText()); + } + ; + invokespecial : ^('invokespecial' classe = . metodo = . args = . tipo = .) { - chamarConstrutorDefault($classe.getText()); + chamarMetodo("invokespecial", $classe.getText(), $metodo.getText()); + } + ; + +invokestatic + : ^('invokestatic' classe = . metodo = . args = . tipo = .) + { + chamarMetodo("invokestatic", $classe.getText(), $metodo.getText()); } ; @@ -244,14 +276,14 @@ loadint store : ^(STORE operacao = .) { - assembler.verificarAumentoMemoriaGlobal($operacao.token); + assembler.escreverOpcode($operacao.getText()); } ; storeint : ^(STORE operacao = . operando = .) { - assembler.verificarAumentoMemoriaGlobal($operacao.token, $operando.token); + assembler.escreverOpcode($operacao.token, $operando.token); } ; diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens index c1071fa..1aaf0ab 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__27=27 T__28=28 T__29=29 T__30=30 @@ -72,6 +71,12 @@ T__97=97 T__98=98 T__99=99 T__100=100 +T__101=101 +T__102=102 +T__103=103 +T__104=104 +T__105=105 +T__106=106 ARITMETICA=4 BODY=5 CONSTR_DECL=6 @@ -83,89 +88,95 @@ INIT=11 INT=12 INTEIRO=13 LABEL=14 -LOAD=15 -LOGICA=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 -PARAMS=21 -PILHA=22 -STORE=23 -TIPO_REF=24 -VOID=25 -WS=26 -'('=27 -'()'=28 -')'=29 -'.class'=30 -'.end class'=31 -'.end method'=32 -'.field'=33 -'.method'=34 -'.super'=35 -'/'=36 -':'=37 -'aconst_null'=38 -'aload'=39 -'aload_0'=40 -'aload_1'=41 -'aload_2'=42 -'aload_3'=43 -'areturn'=44 -'astore'=45 -'astore_0'=46 -'astore_1'=47 -'astore_2'=48 -'astore_3'=49 -'dup'=50 -'getfield'=51 -'goto'=52 -'iadd'=53 -'iand'=54 -'iconst_0'=55 -'iconst_1'=56 -'iconst_2'=57 -'iconst_3'=58 -'iconst_4'=59 -'iconst_5'=60 -'iconst_m1'=61 -'idiv'=62 -'if_icmpeq'=63 -'if_icmpge'=64 -'if_icmpgt'=65 -'if_icmple'=66 -'if_icmplt'=67 -'if_icmpne'=68 -'ifeq'=69 -'ifge'=70 -'ifgt'=71 -'ifle'=72 -'iflt'=73 -'ifne'=74 -'iinc'=75 -'iload'=76 -'iload_0'=77 -'iload_1'=78 -'iload_2'=79 -'iload_3'=80 -'imul'=81 -'ineg'=82 -'invokespecial'=83 -'ior'=84 -'irem'=85 -'ireturn'=86 -'istore'=87 -'istore_0'=88 -'istore_1'=89 -'istore_2'=90 -'istore_3'=91 -'isub'=92 -'ixor'=93 -'ldc'=94 -'new'=95 -'nop'=96 -'pop'=97 -'pop2'=98 -'putfield'=99 -'return'=100 +LIMIT=15 +LOAD=16 +LOGICA=17 +MEMBRO_CLASSE=18 +METHOD_DECL=19 +NEWLINE=20 +NULL=21 +PARAMS=22 +PILHA=23 +STORE=24 +TIPO_REF=25 +VOID=26 +WS=27 +'('=28 +'()'=29 +')'=30 +'.class'=31 +'.end class'=32 +'.end method'=33 +'.field'=34 +'.limit locals'=35 +'.method'=36 +'.super'=37 +'/'=38 +':'=39 +'aconst_null'=40 +'aload'=41 +'aload_0'=42 +'aload_1'=43 +'aload_2'=44 +'aload_3'=45 +'areturn'=46 +'astore'=47 +'astore_0'=48 +'astore_1'=49 +'astore_2'=50 +'astore_3'=51 +'dup'=52 +'getfield'=53 +'getstatic'=54 +'goto'=55 +'iadd'=56 +'iand'=57 +'iconst_0'=58 +'iconst_1'=59 +'iconst_2'=60 +'iconst_3'=61 +'iconst_4'=62 +'iconst_5'=63 +'iconst_m1'=64 +'idiv'=65 +'if_icmpeq'=66 +'if_icmpge'=67 +'if_icmpgt'=68 +'if_icmple'=69 +'if_icmplt'=70 +'if_icmpne'=71 +'ifeq'=72 +'ifge'=73 +'ifgt'=74 +'ifle'=75 +'iflt'=76 +'ifne'=77 +'iinc'=78 +'iload'=79 +'iload_0'=80 +'iload_1'=81 +'iload_2'=82 +'iload_3'=83 +'imul'=84 +'ineg'=85 +'invokespecial'=86 +'invokestatic'=87 +'ior'=88 +'irem'=89 +'ireturn'=90 +'istore'=91 +'istore_0'=92 +'istore_1'=93 +'istore_2'=94 +'istore_3'=95 +'isub'=96 +'ixor'=97 +'ldc'=98 +'new'=99 +'nop'=100 +'pop'=101 +'pop2'=102 +'putfield'=103 +'putstatic'=104 +'return'=105 +'static'=106 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class index c954d8d10b7f74684f692262c5278c61c34db993..9d3bd51934c91fb07f6008a2ae59a284b3689650 100644 GIT binary patch delta 139 zcmaFQHL0)VyK^D+P_s{mfoW#v$?Xh6aWTH40#c5sYCBW0=4g zrZ9%tL0)VyK^D+LXOkob5bbA_7C?aW?GliAsRYw@%&aPqV= z@bR=Ui14&CNb__sDDiYMX!3M181Qs6nDg{7*zxo-xbpN()?s&M;+ZhHkX;7=;G7rY diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index bbe19488a9fd3dc41d8527a01544d7fa6c9ad690..1bea7b1b093f34e994481afbb926545353fffeff 100644 GIT binary patch literal 30572 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 ShkN899Y1)-n=tZV+y4iTq0E>7 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index fc3b8653bb3f19a4387e687b56a82f0438ddcb9d..78275f9886a79937a963a50e904b08a573396862 100644 GIT binary patch delta 21 dcmZ3-x{h^&GZPcn$;qxv)=XTdCpR(a002ol24DaH delta 21 ccmZ3-x{h^&GZPc1(qvaAYbH*W$xTc;06q}~5C8xG diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class index 83d699cae651370c63a61c0730c999b14dcfa120..a3167de902ee1ec3d48c17dc66a3517ecd10f79a 100644 GIT binary patch delta 21 ccmaFC`hs;sEfbTF;^cZJYbGJp$$OY|08Up1L;wH) delta 21 ccmaFC`hs;sEfbSK)#Q36YbJrZ$$OY|08|(iYbF7;$=8^406|^_#Q*>R diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class index e07e0005338c4a4a683527d4dabe2100c43bee9a..5c82dd0c2ee5e78738c9d8033b49198e8bfc4b9d 100644 GIT binary patch delta 21 ccmX@cdW>~LG!v7c$K+ThYbHVO$+MVr07t9^~LG!qm5!pX5r)=d0MCeLEh0RT;J29p2) diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class index bbfaa6ba96cb36dcff15df3798c043bab103eba4..2f04ae5127d003eb0cf1d463b567690e66e3320c 100644 GIT binary patch delta 19 acmZ3=x|DT;H4~%pWE&TL;41n delta 19 bcmZ3@x|(%^BNO9?$xci*jGrdgGwA>TLz)JQ diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class index 41390580dbebdba105607274e0dfb9fe2fefbe1b..76f8da78ebe29d51b10e7c3dadaf762e07227f3a 100644 GIT binary patch delta 19 bcmbQwI-hleDHG$($!1J8jJGEjGwA>TKSBl} delta 19 bcmbQwI-hleDHG%6$!1J8j8`WYGwA>TKH>%y diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index 8b6e7aa0c04d309605ea2daf24e9a20b73466c52..3f07b9e117c3a68baddd03cab959c87582635c4d 100644 GIT binary patch delta 21 dcmbQkI)`~LG!qj?`{Y~LG!qm1(#f$*)=ccnC(mNi0RT-F28sXx diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class index 82a46eada809b71034726cf86c57e431a23cae70..43b29420feea73ccf32945ac02c279cbac7762a8 100644 GIT binary patch delta 19 bcmdnOx`lOv7Zc;6$=*yhj7uhWFzEmQK delta 19 bcmdnOx`lOv7Zc;m$=*yhjI$?qFzEmQKv)I} diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class index 61d4426f35e365664e43ca9aa011b2c561643228..ef53783f24c67c66b5caac6ce8c93350fb375091 100644 GIT binary patch delta 19 acmZ3%x`K6s9TQ{TWP2tX#)8Q;OgaEMzy){! delta 19 acmZ3%x`K6s9TQ{5WP2tX#;nOTOgaEMU$;C`M06;qhe*gdg delta 21 dcmbQwI-hle2@@0dmC0sI)=b>jCKog5002e)1}y*p diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class index 3782620cce5b700e022f7f3b72c0beee002bc3cd..2e0abb0e5c208d645a59a6ac0366b3e50499fce2 100644 GIT binary patch delta 21 ccmZ3%x`K6sEfW)8;ADFyYbL(n$u&$m06*~sS^xk5 delta 21 dcmZ3%x`K6sEfW*Zs>$|D)=WHWCf6|O002d_1_%HE diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class index 11efd112fbbc14b2c0375f91ecb4b65c7e85067b..8e2ccf65f43c537aa6d8a7d451d1368f99c80765 100644 GIT binary patch delta 19 acmdnUx{-B*I}@Y(WDh1AM$gHuOgaEMeg#(m delta 19 acmdnUx{-B*I}@YbWDh1AMu*9*OgaEL?gd2v diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class index ab6990c82f2fdcda2f8fcacb5efc7164da2482c3..5820bdea8031079b0a227e99957fdcbca67da97a 100644 GIT binary patch delta 21 ccmbQkI)`)=V6aCl@g3002eP1~LEu diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class index 198edfeb6a45dadbf86a30e3fbe9771cd2db1f36..ea0c14ec4c68fc3d2d90594bdc7d589a8fc393c1 100644 GIT binary patch literal 76771 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 literal 68604 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 OF|_rtt|Qv|r2juySCQxd diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index d37c64482685e8f3c592d0e2c839faf6b47f847b..12f2e0620bfc133b30d6db48fe6cee50adee6a92 100644 GIT binary patch literal 20984 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.tokens b/bin/br/ufpb/iged/interpretador/parser/Def.tokens index c1071fa..1aaf0ab 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,4 +1,3 @@ -T__27=27 T__28=28 T__29=29 T__30=30 @@ -72,6 +71,12 @@ T__97=97 T__98=98 T__99=99 T__100=100 +T__101=101 +T__102=102 +T__103=103 +T__104=104 +T__105=105 +T__106=106 ARITMETICA=4 BODY=5 CONSTR_DECL=6 @@ -83,89 +88,95 @@ INIT=11 INT=12 INTEIRO=13 LABEL=14 -LOAD=15 -LOGICA=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 -PARAMS=21 -PILHA=22 -STORE=23 -TIPO_REF=24 -VOID=25 -WS=26 -'('=27 -'()'=28 -')'=29 -'.class'=30 -'.end class'=31 -'.end method'=32 -'.field'=33 -'.method'=34 -'.super'=35 -'/'=36 -':'=37 -'aconst_null'=38 -'aload'=39 -'aload_0'=40 -'aload_1'=41 -'aload_2'=42 -'aload_3'=43 -'areturn'=44 -'astore'=45 -'astore_0'=46 -'astore_1'=47 -'astore_2'=48 -'astore_3'=49 -'dup'=50 -'getfield'=51 -'goto'=52 -'iadd'=53 -'iand'=54 -'iconst_0'=55 -'iconst_1'=56 -'iconst_2'=57 -'iconst_3'=58 -'iconst_4'=59 -'iconst_5'=60 -'iconst_m1'=61 -'idiv'=62 -'if_icmpeq'=63 -'if_icmpge'=64 -'if_icmpgt'=65 -'if_icmple'=66 -'if_icmplt'=67 -'if_icmpne'=68 -'ifeq'=69 -'ifge'=70 -'ifgt'=71 -'ifle'=72 -'iflt'=73 -'ifne'=74 -'iinc'=75 -'iload'=76 -'iload_0'=77 -'iload_1'=78 -'iload_2'=79 -'iload_3'=80 -'imul'=81 -'ineg'=82 -'invokespecial'=83 -'ior'=84 -'irem'=85 -'ireturn'=86 -'istore'=87 -'istore_0'=88 -'istore_1'=89 -'istore_2'=90 -'istore_3'=91 -'isub'=92 -'ixor'=93 -'ldc'=94 -'new'=95 -'nop'=96 -'pop'=97 -'pop2'=98 -'putfield'=99 -'return'=100 +LIMIT=15 +LOAD=16 +LOGICA=17 +MEMBRO_CLASSE=18 +METHOD_DECL=19 +NEWLINE=20 +NULL=21 +PARAMS=22 +PILHA=23 +STORE=24 +TIPO_REF=25 +VOID=26 +WS=27 +'('=28 +'()'=29 +')'=30 +'.class'=31 +'.end class'=32 +'.end method'=33 +'.field'=34 +'.limit locals'=35 +'.method'=36 +'.super'=37 +'/'=38 +':'=39 +'aconst_null'=40 +'aload'=41 +'aload_0'=42 +'aload_1'=43 +'aload_2'=44 +'aload_3'=45 +'areturn'=46 +'astore'=47 +'astore_0'=48 +'astore_1'=49 +'astore_2'=50 +'astore_3'=51 +'dup'=52 +'getfield'=53 +'getstatic'=54 +'goto'=55 +'iadd'=56 +'iand'=57 +'iconst_0'=58 +'iconst_1'=59 +'iconst_2'=60 +'iconst_3'=61 +'iconst_4'=62 +'iconst_5'=63 +'iconst_m1'=64 +'idiv'=65 +'if_icmpeq'=66 +'if_icmpge'=67 +'if_icmpgt'=68 +'if_icmple'=69 +'if_icmplt'=70 +'if_icmpne'=71 +'ifeq'=72 +'ifge'=73 +'ifgt'=74 +'ifle'=75 +'iflt'=76 +'ifne'=77 +'iinc'=78 +'iload'=79 +'iload_0'=80 +'iload_1'=81 +'iload_2'=82 +'iload_3'=83 +'imul'=84 +'ineg'=85 +'invokespecial'=86 +'invokestatic'=87 +'ior'=88 +'irem'=89 +'ireturn'=90 +'istore'=91 +'istore_0'=92 +'istore_1'=93 +'istore_2'=94 +'istore_3'=95 +'isub'=96 +'ixor'=97 +'ldc'=98 +'new'=99 +'nop'=100 +'pop'=101 +'pop2'=102 +'putfield'=103 +'putstatic'=104 +'return'=105 +'static'=106 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 68356f7d9f1c4bbddf01d19cfb2b8924a0582a23..725f4e9becc529a219cd068e1684377d2a81b0b0 100644 GIT binary patch delta 140 zcmey&HH&+LJu@q#u%V&BWEbWX`}EY3;*!LY%w&Zcg@V$Ow9M3;6bKV8oS9dapPgD< zkeZyCm;;o9^1-?`A7GYX)Z#E<;N&o6;Nvi35auvvkm9glP~@;=(BQCQ(C4sbFypXc Xu;s92aN)3<%*5)<#Nja6omB?_62m23 delta 101 zcmbQm{h4cnJu@rA8$$!5$u7((5(T9tX_=`xDGD_TnR#XT*{Q_^smYm%Ih&s|OE7A& zIWuswxiIjtxiSc|xiLtwxicuTc`#_Oc{1p;c`=x=c{A9u`7pS!`A*hkb!KAopPa|4 F0|2p%7%u<- diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index fea850b3f733663819388ffb92ce3bc7f73fa88c..4682d19ef4128db574cfa87ad00421f15671bd44 100644 GIT binary patch literal 33435 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 Yg3uN~-9jtVs5$XNl{kdOwMC5m9|;&0X#fBK literal 29152 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 Yv1Z0;iqXqp)#Hzq$V>4DOZpJ~KUN>_O#lD@ diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens index c1071fa..1aaf0ab 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__27=27 T__28=28 T__29=29 T__30=30 @@ -72,6 +71,12 @@ T__97=97 T__98=98 T__99=99 T__100=100 +T__101=101 +T__102=102 +T__103=103 +T__104=104 +T__105=105 +T__106=106 ARITMETICA=4 BODY=5 CONSTR_DECL=6 @@ -83,89 +88,95 @@ INIT=11 INT=12 INTEIRO=13 LABEL=14 -LOAD=15 -LOGICA=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 -PARAMS=21 -PILHA=22 -STORE=23 -TIPO_REF=24 -VOID=25 -WS=26 -'('=27 -'()'=28 -')'=29 -'.class'=30 -'.end class'=31 -'.end method'=32 -'.field'=33 -'.method'=34 -'.super'=35 -'/'=36 -':'=37 -'aconst_null'=38 -'aload'=39 -'aload_0'=40 -'aload_1'=41 -'aload_2'=42 -'aload_3'=43 -'areturn'=44 -'astore'=45 -'astore_0'=46 -'astore_1'=47 -'astore_2'=48 -'astore_3'=49 -'dup'=50 -'getfield'=51 -'goto'=52 -'iadd'=53 -'iand'=54 -'iconst_0'=55 -'iconst_1'=56 -'iconst_2'=57 -'iconst_3'=58 -'iconst_4'=59 -'iconst_5'=60 -'iconst_m1'=61 -'idiv'=62 -'if_icmpeq'=63 -'if_icmpge'=64 -'if_icmpgt'=65 -'if_icmple'=66 -'if_icmplt'=67 -'if_icmpne'=68 -'ifeq'=69 -'ifge'=70 -'ifgt'=71 -'ifle'=72 -'iflt'=73 -'ifne'=74 -'iinc'=75 -'iload'=76 -'iload_0'=77 -'iload_1'=78 -'iload_2'=79 -'iload_3'=80 -'imul'=81 -'ineg'=82 -'invokespecial'=83 -'ior'=84 -'irem'=85 -'ireturn'=86 -'istore'=87 -'istore_0'=88 -'istore_1'=89 -'istore_2'=90 -'istore_3'=91 -'isub'=92 -'ixor'=93 -'ldc'=94 -'new'=95 -'nop'=96 -'pop'=97 -'pop2'=98 -'putfield'=99 -'return'=100 +LIMIT=15 +LOAD=16 +LOGICA=17 +MEMBRO_CLASSE=18 +METHOD_DECL=19 +NEWLINE=20 +NULL=21 +PARAMS=22 +PILHA=23 +STORE=24 +TIPO_REF=25 +VOID=26 +WS=27 +'('=28 +'()'=29 +')'=30 +'.class'=31 +'.end class'=32 +'.end method'=33 +'.field'=34 +'.limit locals'=35 +'.method'=36 +'.super'=37 +'/'=38 +':'=39 +'aconst_null'=40 +'aload'=41 +'aload_0'=42 +'aload_1'=43 +'aload_2'=44 +'aload_3'=45 +'areturn'=46 +'astore'=47 +'astore_0'=48 +'astore_1'=49 +'astore_2'=50 +'astore_3'=51 +'dup'=52 +'getfield'=53 +'getstatic'=54 +'goto'=55 +'iadd'=56 +'iand'=57 +'iconst_0'=58 +'iconst_1'=59 +'iconst_2'=60 +'iconst_3'=61 +'iconst_4'=62 +'iconst_5'=63 +'iconst_m1'=64 +'idiv'=65 +'if_icmpeq'=66 +'if_icmpge'=67 +'if_icmpgt'=68 +'if_icmple'=69 +'if_icmplt'=70 +'if_icmpne'=71 +'ifeq'=72 +'ifge'=73 +'ifgt'=74 +'ifle'=75 +'iflt'=76 +'ifne'=77 +'iinc'=78 +'iload'=79 +'iload_0'=80 +'iload_1'=81 +'iload_2'=82 +'iload_3'=83 +'imul'=84 +'ineg'=85 +'invokespecial'=86 +'invokestatic'=87 +'ior'=88 +'irem'=89 +'ireturn'=90 +'istore'=91 +'istore_0'=92 +'istore_1'=93 +'istore_2'=94 +'istore_3'=95 +'isub'=96 +'ixor'=97 +'ldc'=98 +'new'=99 +'nop'=100 +'pop'=101 +'pop2'=102 +'putfield'=103 +'putstatic'=104 +'return'=105 +'static'=106 diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index b2040f9079c07f3438adb7de74566b9d40528466..6fb28b7bf5473be3ec7234b8a608b16c81275753 100644 GIT binary patch delta 3044 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 ^(EXTENDS TIPO_REF) ; membroClasse - : '.field' ID tipo -> ^(FIELD_DECL ID tipo) - | '.method' INIT (parametros | '(' parametros ')') VOID NEWLINE operacao* '.end method' - -> ^(CONSTR_DECL INIT parametros ^(BODY operacao*)) - | '.method' ID (parametros | '(' parametros ')') ret = tipo NEWLINE operacao* '.end method' - -> ^(METHOD_DECL ID $ret parametros ^(BODY operacao*)) + : '.field' 'static'? ID tipo -> ^(FIELD_DECL ID tipo) + | '.method' INIT (parametros | '(' parametros ')') VOID NEWLINE (limite NEWLINE)? operacao* '.end method' + -> ^(CONSTR_DECL INIT parametros limite? ^(BODY operacao*)) + | '.method' 'static'? ID (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' + -> ^(METHOD_DECL ID $ret parametros limite? ^(BODY operacao*)) ; + +limite : '.limit locals' INTEIRO -> ^(LIMIT INTEIRO); parametros : '()' -> ^(PARAMS VOID) @@ -95,9 +98,13 @@ parametros retorno : 'areturn' | 'ireturn' | 'return'; manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) + | a = 'getstatic' b = campo tipo -> ^('getstatic' $b tipo) | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) + | a = 'putstatic' b = campo tipo -> ^('putstatic' $b tipo) | a = 'invokespecial' c = classe '/' d = chamadaMetodo -> ^('invokespecial' $c $d) + | a = 'invokestatic' c = classe '/' d = chamadaMetodo + -> ^('invokestatic' $c $d) | a = 'new'c = classe -> ^('new' $c) ; @@ -231,7 +238,7 @@ INTEIRO : '-'? '0'..'9'+ ; TIPO_REF: 'L' ID ('/' ID)*; -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')* ; +ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; //LETRA: ('a'..'z' | 'A'..'Z'); diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 069b954..9febac0 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -71,11 +71,13 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .+) + : ^(CONSTR_DECL INIT .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); SimboloMetodo metodo = new SimboloMetodo($INIT.text, null, escopoAtual); + if (lim != null) + metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.def = $INIT; $INIT.simbolo = metodo; escopoAtual.definir(metodo); @@ -84,11 +86,13 @@ entraNoConstrutor ; entraNoMetodo - : ^(METHOD_DECL ID tipoRet =. .+) + : ^(METHOD_DECL ID tipoRet =. .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("linha "+$ID.getLine()+ ": def method "+$ID.text); SimboloMetodo metodo = new SimboloMetodo($ID.text, null, escopoAtual); + if (lim != null) + metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno($tipoRet.getText()); metodo.def = $ID; $ID.simbolo = metodo; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index a0970ab..cd8ff32 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -65,9 +65,9 @@ options { } - private void chamarConstrutorDefault(String nomeClasse) { + private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo) { - assembler.escreverOpcode("invokespecial"); + assembler.escreverOpcode(instrucao); SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); @@ -75,9 +75,17 @@ options { if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); + + SimboloMetodo simboloMetodo = + (SimboloMetodo) simboloClasse.resolver(nomeMetodo); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + if (!simboloClasse.getConstantPool().contains(simboloMetodo)) + + simboloClasse.getConstantPool().add(simboloMetodo); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + simboloClasse.getConstantPool().indexOf(simboloMetodo)); } @@ -105,8 +113,11 @@ topdown | entraNoConstrutor | declaracaoVariavel | getfield + | getstatic | putfield + | putstatic | invokespecial + | invokestatic | novaClasse | aritmetica | load @@ -155,7 +166,7 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .+) + : ^(CONSTR_DECL INIT .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("Ref: Entrou no construtor "+$INIT.text); escopoAtual = (SimboloMetodo)$INIT.simbolo; @@ -165,7 +176,7 @@ entraNoConstrutor ; entraNoMetodo - : ^(METHOD_DECL ID . .+) + : ^(METHOD_DECL ID . .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("Ref: Entrou no metodo "+$ID.text); escopoAtual = (SimboloMetodo)$ID.simbolo; @@ -199,6 +210,13 @@ getfield } ; +getstatic + : ^('getstatic' classe = . . campo = . tipo = .) + { + acessarCampo("getstatic", $classe.getText(), $campo.getText()); + } + ; + putfield : ^('putfield' classe = . . campo = . tipo = .) { @@ -206,10 +224,24 @@ putfield } ; +putstatic + : ^('putstatic' classe = . . campo = . tipo = .) + { + acessarCampo("putstatic", $classe.getText(), $campo.getText()); + } + ; + invokespecial : ^('invokespecial' classe = . metodo = . args = . tipo = .) { - chamarConstrutorDefault($classe.getText()); + chamarMetodo("invokespecial", $classe.getText(), $metodo.getText()); + } + ; + +invokestatic + : ^('invokestatic' classe = . metodo = . args = . tipo = .) + { + chamarMetodo("invokestatic", $classe.getText(), $metodo.getText()); } ; @@ -244,14 +276,14 @@ loadint store : ^(STORE operacao = .) { - assembler.verificarAumentoMemoriaGlobal($operacao.token); + assembler.escreverOpcode($operacao.getText()); } ; storeint : ^(STORE operacao = . operando = .) { - assembler.verificarAumentoMemoriaGlobal($operacao.token, $operando.token); + assembler.escreverOpcode($operacao.token, $operando.token); } ; diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index c1071fa..1aaf0ab 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__27=27 T__28=28 T__29=29 T__30=30 @@ -72,6 +71,12 @@ T__97=97 T__98=98 T__99=99 T__100=100 +T__101=101 +T__102=102 +T__103=103 +T__104=104 +T__105=105 +T__106=106 ARITMETICA=4 BODY=5 CONSTR_DECL=6 @@ -83,89 +88,95 @@ INIT=11 INT=12 INTEIRO=13 LABEL=14 -LOAD=15 -LOGICA=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 -PARAMS=21 -PILHA=22 -STORE=23 -TIPO_REF=24 -VOID=25 -WS=26 -'('=27 -'()'=28 -')'=29 -'.class'=30 -'.end class'=31 -'.end method'=32 -'.field'=33 -'.method'=34 -'.super'=35 -'/'=36 -':'=37 -'aconst_null'=38 -'aload'=39 -'aload_0'=40 -'aload_1'=41 -'aload_2'=42 -'aload_3'=43 -'areturn'=44 -'astore'=45 -'astore_0'=46 -'astore_1'=47 -'astore_2'=48 -'astore_3'=49 -'dup'=50 -'getfield'=51 -'goto'=52 -'iadd'=53 -'iand'=54 -'iconst_0'=55 -'iconst_1'=56 -'iconst_2'=57 -'iconst_3'=58 -'iconst_4'=59 -'iconst_5'=60 -'iconst_m1'=61 -'idiv'=62 -'if_icmpeq'=63 -'if_icmpge'=64 -'if_icmpgt'=65 -'if_icmple'=66 -'if_icmplt'=67 -'if_icmpne'=68 -'ifeq'=69 -'ifge'=70 -'ifgt'=71 -'ifle'=72 -'iflt'=73 -'ifne'=74 -'iinc'=75 -'iload'=76 -'iload_0'=77 -'iload_1'=78 -'iload_2'=79 -'iload_3'=80 -'imul'=81 -'ineg'=82 -'invokespecial'=83 -'ior'=84 -'irem'=85 -'ireturn'=86 -'istore'=87 -'istore_0'=88 -'istore_1'=89 -'istore_2'=90 -'istore_3'=91 -'isub'=92 -'ixor'=93 -'ldc'=94 -'new'=95 -'nop'=96 -'pop'=97 -'pop2'=98 -'putfield'=99 -'return'=100 +LIMIT=15 +LOAD=16 +LOGICA=17 +MEMBRO_CLASSE=18 +METHOD_DECL=19 +NEWLINE=20 +NULL=21 +PARAMS=22 +PILHA=23 +STORE=24 +TIPO_REF=25 +VOID=26 +WS=27 +'('=28 +'()'=29 +')'=30 +'.class'=31 +'.end class'=32 +'.end method'=33 +'.field'=34 +'.limit locals'=35 +'.method'=36 +'.super'=37 +'/'=38 +':'=39 +'aconst_null'=40 +'aload'=41 +'aload_0'=42 +'aload_1'=43 +'aload_2'=44 +'aload_3'=45 +'areturn'=46 +'astore'=47 +'astore_0'=48 +'astore_1'=49 +'astore_2'=50 +'astore_3'=51 +'dup'=52 +'getfield'=53 +'getstatic'=54 +'goto'=55 +'iadd'=56 +'iand'=57 +'iconst_0'=58 +'iconst_1'=59 +'iconst_2'=60 +'iconst_3'=61 +'iconst_4'=62 +'iconst_5'=63 +'iconst_m1'=64 +'idiv'=65 +'if_icmpeq'=66 +'if_icmpge'=67 +'if_icmpgt'=68 +'if_icmple'=69 +'if_icmplt'=70 +'if_icmpne'=71 +'ifeq'=72 +'ifge'=73 +'ifgt'=74 +'ifle'=75 +'iflt'=76 +'ifne'=77 +'iinc'=78 +'iload'=79 +'iload_0'=80 +'iload_1'=81 +'iload_2'=82 +'iload_3'=83 +'imul'=84 +'ineg'=85 +'invokespecial'=86 +'invokestatic'=87 +'ior'=88 +'irem'=89 +'ireturn'=90 +'istore'=91 +'istore_0'=92 +'istore_1'=93 +'istore_2'=94 +'istore_3'=95 +'isub'=96 +'ixor'=97 +'ldc'=98 +'new'=99 +'nop'=100 +'pop'=101 +'pop2'=102 +'putfield'=103 +'putstatic'=104 +'return'=105 +'static'=106 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index d872b41..6ed252b 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-06 11:43:11 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 17:02:14 package br.ufpb.iged.interpretador.parser; @@ -11,7 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__27=27; public static final int T__28=28; public static final int T__29=29; public static final int T__30=30; @@ -85,6 +84,12 @@ public class AssemblerLexer extends Lexer { public static final int T__98=98; public static final int T__99=99; public static final int T__100=100; + public static final int T__101=101; + public static final int T__102=102; + public static final int T__103=103; + public static final int T__104=104; + public static final int T__105=105; + public static final int T__106=106; public static final int ARITMETICA=4; public static final int BODY=5; public static final int CONSTR_DECL=6; @@ -96,18 +101,19 @@ public class AssemblerLexer extends Lexer { public static final int INT=12; public static final int INTEIRO=13; public static final int LABEL=14; - public static final int LOAD=15; - public static final int LOGICA=16; - public static final int MEMBRO_CLASSE=17; - public static final int METHOD_DECL=18; - public static final int NEWLINE=19; - public static final int NULL=20; - public static final int PARAMS=21; - public static final int PILHA=22; - public static final int STORE=23; - public static final int TIPO_REF=24; - public static final int VOID=25; - public static final int WS=26; + public static final int LIMIT=15; + public static final int LOAD=16; + public static final int LOGICA=17; + public static final int MEMBRO_CLASSE=18; + public static final int METHOD_DECL=19; + public static final int NEWLINE=20; + public static final int NULL=21; + public static final int PARAMS=22; + public static final int PILHA=23; + public static final int STORE=24; + public static final int TIPO_REF=25; + public static final int VOID=26; + public static final int WS=27; // delegates // delegators @@ -124,10 +130,10 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__27" - public final void mT__27() throws RecognitionException { + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { try { - int _type = T__27; + int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' @@ -143,12 +149,12 @@ public final void mT__27() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__27" + // $ANTLR end "T__28" - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { try { - int _type = T__28; + int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' @@ -157,27 +163,6 @@ public final void mT__28() throws RecognitionException { - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__28" - - // $ANTLR start "T__29" - public final void mT__29() throws RecognitionException { - try { - int _type = T__29; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' - { - match(')'); - } state.type = _type; @@ -194,12 +179,10 @@ public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' { - match(".class"); - - + match(')'); } @@ -217,10 +200,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' { - match(".end class"); + match(".class"); @@ -240,10 +223,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' { - match(".end method"); + match(".end class"); @@ -263,10 +246,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' { - match(".field"); + match(".end method"); @@ -286,10 +269,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' { - match(".method"); + match(".field"); @@ -309,10 +292,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.super' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.super' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.limit locals' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.limit locals' { - match(".super"); + match(".limit locals"); @@ -332,10 +315,12 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '/' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.method' { - match('/'); + match(".method"); + + } @@ -353,10 +338,12 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( ':' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '.super' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '.super' { - match(':'); + match(".super"); + + } @@ -374,12 +361,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( '/' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: '/' { - match("aconst_null"); - - + match('/'); } @@ -397,12 +382,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( ':' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: ':' { - match("aload"); - - + match(':'); } @@ -420,10 +403,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aconst_null' { - match("aload_0"); + match("aconst_null"); @@ -443,10 +426,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload' { - match("aload_1"); + match("aload"); @@ -466,10 +449,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_0' { - match("aload_2"); + match("aload_0"); @@ -489,10 +472,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_1' { - match("aload_3"); + match("aload_1"); @@ -512,10 +495,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'areturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_2' { - match("areturn"); + match("aload_2"); @@ -535,10 +518,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'aload_3' { - match("astore"); + match("aload_3"); @@ -558,10 +541,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'areturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'areturn' { - match("astore_0"); + match("areturn"); @@ -581,10 +564,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore' { - match("astore_1"); + match("astore"); @@ -604,10 +587,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_0' { - match("astore_2"); + match("astore_0"); @@ -627,10 +610,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_1' { - match("astore_3"); + match("astore_1"); @@ -650,10 +633,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'dup' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_2' { - match("dup"); + match("astore_2"); @@ -673,10 +656,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'astore_3' { - match("getfield"); + match("astore_3"); @@ -696,10 +679,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'goto' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'goto' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'dup' { - match("goto"); + match("dup"); @@ -719,10 +702,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'iadd' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'getfield' { - match("iadd"); + match("getfield"); @@ -742,10 +725,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iand' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'getstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'getstatic' { - match("iand"); + match("getstatic"); @@ -765,10 +748,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'goto' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'goto' { - match("iconst_0"); + match("goto"); @@ -788,10 +771,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iadd' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iadd' { - match("iconst_1"); + match("iadd"); @@ -811,10 +794,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iand' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iand' { - match("iconst_2"); + match("iand"); @@ -834,10 +817,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_0' { - match("iconst_3"); + match("iconst_0"); @@ -857,10 +840,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_1' { - match("iconst_4"); + match("iconst_1"); @@ -880,10 +863,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_2' { - match("iconst_5"); + match("iconst_2"); @@ -903,10 +886,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_3' { - match("iconst_m1"); + match("iconst_3"); @@ -926,10 +909,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'idiv' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_4' { - match("idiv"); + match("iconst_4"); @@ -949,10 +932,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'if_icmpeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iconst_5' { - match("if_icmpeq"); + match("iconst_5"); @@ -972,10 +955,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iconst_m1' { - match("if_icmpge"); + match("iconst_m1"); @@ -995,10 +978,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'idiv' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'idiv' { - match("if_icmpgt"); + match("idiv"); @@ -1018,10 +1001,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmple' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpeq' { - match("if_icmple"); + match("if_icmpeq"); @@ -1041,10 +1024,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmplt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmpge' { - match("if_icmplt"); + match("if_icmpge"); @@ -1064,10 +1047,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmpne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmpgt' { - match("if_icmpne"); + match("if_icmpgt"); @@ -1087,10 +1070,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'ifeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmple' { - match("ifeq"); + match("if_icmple"); @@ -1110,10 +1093,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'if_icmplt' { - match("ifge"); + match("if_icmplt"); @@ -1133,10 +1116,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'if_icmpne' { - match("ifgt"); + match("if_icmpne"); @@ -1156,10 +1139,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifle' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifle' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifeq' { - match("ifle"); + match("ifeq"); @@ -1179,10 +1162,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'iflt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'iflt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifge' { - match("iflt"); + match("ifge"); @@ -1202,10 +1185,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ifgt' { - match("ifne"); + match("ifgt"); @@ -1225,10 +1208,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iinc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifle' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifle' { - match("iinc"); + match("ifle"); @@ -1248,10 +1231,10 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iflt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iflt' { - match("iload"); + match("iflt"); @@ -1271,10 +1254,10 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ifne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ifne' { - match("iload_0"); + match("ifne"); @@ -1294,10 +1277,10 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iinc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iinc' { - match("iload_1"); + match("iinc"); @@ -1317,10 +1300,10 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload' { - match("iload_2"); + match("iload"); @@ -1340,10 +1323,10 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_0' { - match("iload_3"); + match("iload_0"); @@ -1363,10 +1346,10 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'imul' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_1' { - match("imul"); + match("iload_1"); @@ -1386,10 +1369,10 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'ineg' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'iload_2' { - match("ineg"); + match("iload_2"); @@ -1409,10 +1392,10 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'iload_3' { - match("invokespecial"); + match("iload_3"); @@ -1432,10 +1415,10 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ior' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'imul' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'imul' { - match("ior"); + match("imul"); @@ -1455,10 +1438,10 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'irem' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ineg' { - match("irem"); + match("ineg"); @@ -1478,10 +1461,10 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'ireturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'invokespecial' { - match("ireturn"); + match("invokespecial"); @@ -1501,10 +1484,10 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'istore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'istore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'invokestatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'invokestatic' { - match("istore"); + match("invokestatic"); @@ -1524,10 +1507,10 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'ior' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'ior' { - match("istore_0"); + match("ior"); @@ -1547,10 +1530,10 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'irem' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'irem' { - match("istore_1"); + match("irem"); @@ -1570,10 +1553,10 @@ public final void mT__90() throws RecognitionException { try { int _type = T__90; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ireturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ireturn' { - match("istore_2"); + match("ireturn"); @@ -1593,10 +1576,10 @@ public final void mT__91() throws RecognitionException { try { int _type = T__91; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore' { - match("istore_3"); + match("istore"); @@ -1616,10 +1599,10 @@ public final void mT__92() throws RecognitionException { try { int _type = T__92; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'isub' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_0' { - match("isub"); + match("istore_0"); @@ -1639,10 +1622,10 @@ public final void mT__93() throws RecognitionException { try { int _type = T__93; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'ixor' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'istore_1' { - match("ixor"); + match("istore_1"); @@ -1662,10 +1645,10 @@ public final void mT__94() throws RecognitionException { try { int _type = T__94; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'ldc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'ldc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'istore_2' { - match("ldc"); + match("istore_2"); @@ -1685,10 +1668,10 @@ public final void mT__95() throws RecognitionException { try { int _type = T__95; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'new' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'new' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'istore_3' { - match("new"); + match("istore_3"); @@ -1708,10 +1691,10 @@ public final void mT__96() throws RecognitionException { try { int _type = T__96; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'nop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'isub' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'isub' { - match("nop"); + match("isub"); @@ -1731,10 +1714,10 @@ public final void mT__97() throws RecognitionException { try { int _type = T__97; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: ( 'pop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:9: 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'ixor' { - match("pop"); + match("ixor"); @@ -1754,10 +1737,10 @@ public final void mT__98() throws RecognitionException { try { int _type = T__98; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: ( 'pop2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:9: 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: ( 'ldc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:9: 'ldc' { - match("pop2"); + match("ldc"); @@ -1777,10 +1760,10 @@ public final void mT__99() throws RecognitionException { try { int _type = T__99; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:7: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:9: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: ( 'new' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:9: 'new' { - match("putfield"); + match("new"); @@ -1800,10 +1783,10 @@ public final void mT__100() throws RecognitionException { try { int _type = T__100; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: ( 'return' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: ( 'nop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:10: 'nop' { - match("return"); + match("nop"); @@ -1818,15 +1801,15 @@ public final void mT__100() throws RecognitionException { } // $ANTLR end "T__100" - // $ANTLR start "INIT" - public final void mINIT() throws RecognitionException { + // $ANTLR start "T__101" + public final void mT__101() throws RecognitionException { try { - int _type = INIT; + int _type = T__101; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: ( 'pop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: 'pop' { - match(""); + match("pop"); @@ -1839,17 +1822,19 @@ public final void mINIT() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "INIT" + // $ANTLR end "T__101" - // $ANTLR start "INT" - public final void mINT() throws RecognitionException { + // $ANTLR start "T__102" + public final void mT__102() throws RecognitionException { try { - int _type = INT; + int _type = T__102; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: ( 'pop2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:10: 'pop2' { - match('I'); + match("pop2"); + + } @@ -1860,17 +1845,19 @@ public final void mINT() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "INT" + // $ANTLR end "T__102" - // $ANTLR start "VOID" - public final void mVOID() throws RecognitionException { + // $ANTLR start "T__103" + public final void mT__103() throws RecognitionException { try { - int _type = VOID; + int _type = T__103; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:10: 'putfield' { - match('V'); + match("putfield"); + + } @@ -1881,47 +1868,181 @@ public final void mVOID() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "VOID" + // $ANTLR end "T__103" - // $ANTLR start "NULL" - public final void mNULL() throws RecognitionException { + // $ANTLR start "T__104" + public final void mT__104() throws RecognitionException { try { - int _type = NULL; + int _type = T__104; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: ( 'putstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:10: 'putstatic' { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:8: ( 'null' | 'NULL' ) - int alt1=2; - int LA1_0 = input.LA(1); + match("putstatic"); - if ( (LA1_0=='n') ) { - alt1=1; - } - else if ( (LA1_0=='N') ) { - alt1=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - throw nvae; } - switch (alt1) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:9: 'null' - { - match("null"); + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__104" + // $ANTLR start "T__105" + public final void mT__105() throws RecognitionException { + try { + int _type = T__105; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: ( 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:10: 'return' + { + match("return"); - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:18: 'NULL' - { - match("NULL"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__105" + + // $ANTLR start "T__106" + public final void mT__106() throws RecognitionException { + try { + int _type = T__106; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: ( 'static' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:10: 'static' + { + match("static"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__106" + + // $ANTLR start "INIT" + public final void mINIT() throws RecognitionException { + try { + int _type = INIT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:8: '' + { + match(""); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INIT" + + // $ANTLR start "INT" + public final void mINT() throws RecognitionException { + try { + int _type = INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:7: 'I' + { + match('I'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INT" + + // $ANTLR start "VOID" + public final void mVOID() throws RecognitionException { + try { + int _type = VOID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:8: 'V' + { + match('V'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "VOID" + + // $ANTLR start "NULL" + public final void mNULL() throws RecognitionException { + try { + int _type = NULL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:8: ( 'null' | 'NULL' ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:8: ( 'null' | 'NULL' ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='n') ) { + alt1=1; + } + else if ( (LA1_0=='N') ) { + alt1=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + + } + switch (alt1) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: 'null' + { + match("null"); + + + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:18: 'NULL' + { + match("NULL"); @@ -1947,10 +2068,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -1959,7 +2080,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: '-' { match('-'); @@ -1969,7 +2090,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2024,15 +2145,15 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:11: 'L' ID ( '/' ID )* { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:18: ( '/' ID )* loop4: do { int alt4=2; @@ -2045,7 +2166,7 @@ public final void mTIPO_REF() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:19: '/' ID { match('/'); @@ -2077,8 +2198,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2090,7 +2211,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop5: do { int alt5=2; @@ -2140,8 +2261,8 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:238:9: ( '\\n' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:238:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:9: ( '\\n' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:11: '\\n' { match('\n'); @@ -2161,8 +2282,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:240:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:240:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2188,668 +2309,708 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) - int alt6=83; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) + int alt6=88; alt6 = dfa6.predict(input); switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__27 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__28 { - mT__27(); + mT__28(); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__28 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__29 { - mT__28(); + mT__29(); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__29 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__30 { - mT__29(); + mT__30(); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__30 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__31 { - mT__30(); + mT__31(); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__31 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__32 { - mT__31(); + mT__32(); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__32 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__33 { - mT__32(); + mT__33(); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__33 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__34 { - mT__33(); + mT__34(); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__34 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__35 { - mT__34(); + mT__35(); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__35 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__36 { - mT__35(); + mT__36(); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__36 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__37 { - mT__36(); + mT__37(); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__37 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__38 { - mT__37(); + mT__38(); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__38 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__39 { - mT__38(); + mT__39(); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__39 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__40 { - mT__39(); + mT__40(); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__40 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__41 { - mT__40(); + mT__41(); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__41 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__42 { - mT__41(); + mT__42(); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__42 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__43 { - mT__42(); + mT__43(); } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__43 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__44 { - mT__43(); + mT__44(); } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__44 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__45 { - mT__44(); + mT__45(); } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__45 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__46 { - mT__45(); + mT__46(); } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__46 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__47 { - mT__46(); + mT__47(); } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__47 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__48 { - mT__47(); + mT__48(); } break; case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__48 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__49 { - mT__48(); + mT__49(); } break; case 23 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__49 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__50 { - mT__49(); + mT__50(); } break; case 24 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__50 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__51 { - mT__50(); + mT__51(); } break; case 25 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__51 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__52 { - mT__51(); + mT__52(); } break; case 26 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__52 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__53 { - mT__52(); + mT__53(); } break; case 27 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__53 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__54 { - mT__53(); + mT__54(); } break; case 28 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__54 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__55 { - mT__54(); + mT__55(); } break; case 29 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__55 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__56 { - mT__55(); + mT__56(); } break; case 30 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__56 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__57 { - mT__56(); + mT__57(); } break; case 31 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__57 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__58 { - mT__57(); + mT__58(); } break; case 32 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__58 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__59 { - mT__58(); + mT__59(); } break; case 33 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__59 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__60 { - mT__59(); + mT__60(); } break; case 34 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__60 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__61 { - mT__60(); + mT__61(); } break; case 35 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__61 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__62 { - mT__61(); + mT__62(); } break; case 36 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__62 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__63 { - mT__62(); + mT__63(); } break; case 37 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__63 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__64 { - mT__63(); + mT__64(); } break; case 38 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__64 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__65 { - mT__64(); + mT__65(); } break; case 39 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__65 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__66 { - mT__65(); + mT__66(); } break; case 40 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__66 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__67 { - mT__66(); + mT__67(); } break; case 41 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__67 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__68 { - mT__67(); + mT__68(); } break; case 42 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__68 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__69 { - mT__68(); + mT__69(); } break; case 43 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__69 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__70 { - mT__69(); + mT__70(); } break; case 44 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__70 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__71 { - mT__70(); + mT__71(); } break; case 45 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__71 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__72 { - mT__71(); + mT__72(); } break; case 46 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__72 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__73 { - mT__72(); + mT__73(); } break; case 47 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__73 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__74 { - mT__73(); + mT__74(); } break; case 48 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__74 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__75 { - mT__74(); + mT__75(); } break; case 49 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__75 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__76 { - mT__75(); + mT__76(); } break; case 50 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__76 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__77 { - mT__76(); + mT__77(); } break; case 51 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__77 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__78 { - mT__77(); + mT__78(); } break; case 52 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__78 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__79 { - mT__78(); + mT__79(); } break; case 53 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__79 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__80 { - mT__79(); + mT__80(); } break; case 54 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__80 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__81 { - mT__80(); + mT__81(); } break; case 55 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__81 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__82 { - mT__81(); + mT__82(); } break; case 56 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__82 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__83 { - mT__82(); + mT__83(); } break; case 57 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__83 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__84 { - mT__83(); + mT__84(); } break; case 58 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__84 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__85 { - mT__84(); + mT__85(); } break; case 59 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__85 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__86 { - mT__85(); + mT__86(); } break; case 60 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__86 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__87 { - mT__86(); + mT__87(); } break; case 61 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__87 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__88 { - mT__87(); + mT__88(); } break; case 62 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__88 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__89 { - mT__88(); + mT__89(); } break; case 63 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__89 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__90 { - mT__89(); + mT__90(); } break; case 64 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__90 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__91 { - mT__90(); + mT__91(); } break; case 65 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__91 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__92 { - mT__91(); + mT__92(); } break; case 66 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__92 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__93 { - mT__92(); + mT__93(); } break; case 67 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__93 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__94 { - mT__93(); + mT__94(); } break; case 68 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__94 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__95 { - mT__94(); + mT__95(); } break; case 69 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__95 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__96 { - mT__95(); + mT__96(); } break; case 70 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__96 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__97 { - mT__96(); + mT__97(); } break; case 71 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__97 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__98 { - mT__97(); + mT__98(); } break; case 72 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:436: T__98 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:436: T__99 { - mT__98(); + mT__99(); } break; case 73 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:442: T__99 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:442: T__100 { - mT__99(); + mT__100(); } break; case 74 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:448: T__100 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:449: T__101 { - mT__100(); + mT__101(); } break; case 75 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:455: INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:456: T__102 { - mINIT(); + mT__102(); } break; case 76 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:460: INT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:463: T__103 { - mINT(); + mT__103(); } break; case 77 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:464: VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:470: T__104 { - mVOID(); + mT__104(); } break; case 78 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:469: NULL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:477: T__105 { - mNULL(); + mT__105(); } break; case 79 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:474: INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:484: T__106 { - mINTEIRO(); + mT__106(); } break; case 80 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:482: TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:491: INIT { - mTIPO_REF(); + mINIT(); } break; case 81 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:491: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:496: INT { - mID(); + mINT(); } break; case 82 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:494: NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:500: VOID { - mNEWLINE(); + mVOID(); } break; case 83 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:502: WS + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:505: NULL + { + mNULL(); + + + } + break; + case 84 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:510: INTEIRO + { + mINTEIRO(); + + + } + break; + case 85 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:518: TIPO_REF + { + mTIPO_REF(); + + + } + break; + case 86 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:527: ID + { + mID(); + + + } + break; + case 87 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:530: NEWLINE + { + mNEWLINE(); + + + } + break; + case 88 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:538: WS { mWS(); @@ -2864,322 +3025,356 @@ public void mTokens() throws RecognitionException { protected DFA6 dfa6 = new DFA6(this); static final String DFA6_eotS = - "\1\uffff\1\30\4\uffff\10\24\1\uffff\1\70\1\71\1\24\1\uffff\1\24"+ - "\12\uffff\32\24\2\uffff\1\24\1\140\1\uffff\4\24\1\146\6\24\1\uffff"+ - "\11\24\1\171\4\24\1\177\1\u0080\1\u0081\1\24\1\u0084\3\24\1\140"+ - "\2\uffff\4\24\1\uffff\1\24\1\u008e\1\u008f\1\u0090\1\24\1\u0092"+ - "\1\uffff\1\u0094\1\u0095\1\u0096\1\u0097\1\u0098\1\u0099\1\u009a"+ - "\1\24\1\u009c\1\u009d\1\24\1\uffff\1\u009f\2\24\1\u00a2\1\u00a3"+ - "\3\uffff\1\u00a4\1\u00a5\1\uffff\2\24\1\u00a4\1\uffff\1\24\1\u00ac"+ - "\3\24\3\uffff\1\24\11\uffff\1\u00b3\2\uffff\1\24\1\uffff\2\24\4"+ - "\uffff\2\24\2\uffff\1\24\2\uffff\1\24\1\u00c0\2\24\3\uffff\2\24"+ - "\1\u00cb\1\24\1\u00cd\5\uffff\1\u00ce\2\uffff\1\24\6\uffff\1\24"+ - "\1\u00e0\2\uffff\1\24\6\uffff\1\u00e6\13\uffff\1\24\5\uffff\1\u00ec"+ - "\5\uffff\1\24\1\uffff\3\24\1\u00f1\1\uffff"; + "\1\uffff\1\31\4\uffff\11\25\1\uffff\1\73\1\74\1\25\1\uffff\1\25"+ + "\13\uffff\33\25\2\uffff\1\25\1\144\1\uffff\4\25\1\152\6\25\1\uffff"+ + "\11\25\1\176\4\25\1\u0084\1\u0085\1\u0086\1\25\1\u0089\4\25\1\144"+ + "\2\uffff\4\25\1\uffff\2\25\1\u0096\1\u0097\1\u0098\1\25\1\u009a"+ + "\1\uffff\1\u009c\1\u009d\1\u009e\1\u009f\1\u00a0\1\u00a1\1\u00a2"+ + "\1\25\1\u00a4\1\u00a5\1\25\1\uffff\1\u00a7\2\25\1\u00aa\1\u00ab"+ + "\3\uffff\1\u00ac\1\u00ad\1\uffff\4\25\1\u00ac\1\uffff\1\25\1\u00b6"+ + "\4\25\3\uffff\1\25\11\uffff\1\u00be\2\uffff\1\25\1\uffff\2\25\4"+ + "\uffff\4\25\2\uffff\1\25\2\uffff\1\25\1\u00cd\3\25\3\uffff\2\25"+ + "\1\u00d9\2\25\1\u00dc\1\u00dd\5\uffff\1\u00de\2\uffff\2\25\6\uffff"+ + "\1\25\1\u00f2\2\uffff\2\25\7\uffff\1\u00f9\1\25\13\uffff\2\25\5"+ + "\uffff\1\u0101\1\25\1\uffff\1\u0103\4\uffff\2\25\1\uffff\1\u0106"+ + "\1\uffff\2\25\1\uffff\3\25\1\u010c\1\u010d\2\uffff"; static final String DFA6_eofS = - "\u00f2\uffff"; + "\u010e\uffff"; static final String DFA6_minS = "\1\11\1\51\1\uffff\1\143\2\uffff\1\143\1\165\1\145\1\141\1\144\1"+ - "\145\1\157\1\145\1\uffff\2\56\1\125\1\uffff\1\101\6\uffff\1\156"+ - "\3\uffff\2\157\1\145\1\164\1\160\2\164\1\144\1\157\1\151\1\137\1"+ - "\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\167\1\160"+ - "\1\154\1\160\2\164\2\uffff\1\114\1\56\1\144\1\156\1\141\1\164\1"+ - "\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161\3\145\1\143"+ - "\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162\3\56\1\154"+ - "\1\56\1\146\1\165\1\114\1\56\1\uffff\1\40\1\163\1\144\1\165\1\162"+ - "\1\uffff\1\151\3\56\1\163\1\56\1\143\7\56\1\144\2\56\1\153\1\uffff"+ - "\1\56\1\165\1\162\2\56\3\uffff\2\56\1\uffff\1\151\1\162\1\56\1\143"+ - "\1\164\1\56\1\162\2\145\3\uffff\1\164\1\uffff\1\155\7\uffff\1\56"+ - "\2\uffff\1\145\1\uffff\1\162\1\145\4\uffff\1\145\1\156\2\uffff\1"+ - "\137\1\60\1\uffff\1\156\1\56\1\154\1\137\1\160\1\60\1\uffff\1\163"+ - "\1\156\1\56\1\154\1\56\5\uffff\1\56\1\60\1\uffff\1\144\1\60\1\145"+ - "\4\uffff\1\160\1\56\1\60\1\uffff\1\144\6\uffff\1\56\10\uffff\2\145"+ - "\1\uffff\1\145\5\uffff\1\56\5\uffff\1\143\1\uffff\1\151\1\141\1"+ - "\154\1\56\1\uffff"; + "\145\1\157\1\145\1\164\1\uffff\2\56\1\125\1\uffff\1\101\6\uffff"+ + "\1\156\4\uffff\2\157\1\145\1\164\1\160\2\164\1\144\1\157\1\151\1"+ + "\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\167"+ + "\1\160\1\154\1\160\2\164\1\141\2\uffff\1\114\1\56\1\144\1\156\1"+ + "\141\1\164\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161"+ + "\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162"+ + "\3\56\1\154\1\56\1\146\1\165\1\164\1\114\1\56\1\uffff\1\40\1\163"+ + "\1\144\1\165\1\162\1\uffff\1\151\1\164\3\56\1\163\1\56\1\143\7\56"+ + "\1\144\2\56\1\153\1\uffff\1\56\1\165\1\162\2\56\3\uffff\2\56\1\uffff"+ + "\1\151\1\164\1\162\1\151\1\56\1\143\1\164\1\56\1\162\2\145\1\141"+ + "\3\uffff\1\164\1\uffff\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff"+ + "\1\162\1\145\4\uffff\1\145\1\141\1\156\1\143\2\uffff\1\137\1\60"+ + "\1\uffff\1\156\1\56\1\154\1\164\1\137\1\160\1\60\1\uffff\1\163\1"+ + "\156\1\56\1\154\1\164\2\56\5\uffff\1\56\1\60\1\uffff\1\144\1\151"+ + "\1\60\1\145\4\uffff\1\160\1\56\1\60\1\uffff\1\144\1\151\7\uffff"+ + "\1\56\1\143\10\uffff\2\145\1\uffff\1\145\1\141\5\uffff\1\56\1\143"+ + "\1\uffff\1\56\4\uffff\1\143\1\164\1\uffff\1\56\1\uffff\2\151\1\uffff"+ + "\1\141\1\143\1\154\2\56\2\uffff"; static final String DFA6_maxS = "\1\172\1\51\1\uffff\1\163\2\uffff\1\163\1\165\1\157\1\170\1\144"+ - "\2\165\1\145\1\uffff\2\172\1\125\1\uffff\1\172\6\uffff\1\156\3\uffff"+ - "\2\157\1\145\1\164\1\160\2\164\1\156\1\157\1\151\2\156\1\157\1\165"+ - "\1\166\1\162\1\145\1\165\1\157\1\143\1\167\1\160\1\154\1\160\2\164"+ - "\2\uffff\1\114\1\172\1\144\1\156\1\141\1\164\1\157\1\172\1\146\1"+ - "\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145\1\143\1\141\1\154"+ - "\1\147\1\157\1\172\1\164\1\157\1\142\1\162\3\172\1\154\1\172\1\146"+ - "\1\165\1\114\1\172\1\uffff\1\40\1\163\1\144\1\165\1\162\1\uffff"+ - "\1\151\3\172\1\163\1\172\1\143\7\172\1\144\2\172\1\153\1\uffff\1"+ - "\172\1\165\1\162\2\172\3\uffff\2\172\1\uffff\1\151\1\162\1\172\1"+ - "\155\1\164\1\172\1\162\2\145\3\uffff\1\164\1\uffff\1\155\7\uffff"+ - "\1\172\2\uffff\1\145\1\uffff\1\162\1\145\4\uffff\1\145\1\156\2\uffff"+ - "\1\137\1\63\1\uffff\1\156\1\172\1\154\1\137\1\160\1\63\1\uffff\1"+ - "\163\1\156\1\172\1\154\1\172\5\uffff\1\172\1\63\1\uffff\1\144\1"+ - "\155\1\156\4\uffff\1\160\1\172\1\63\1\uffff\1\144\6\uffff\1\172"+ - "\10\uffff\2\164\1\uffff\1\145\5\uffff\1\172\5\uffff\1\143\1\uffff"+ - "\1\151\1\141\1\154\1\172\1\uffff"; + "\2\165\1\145\1\164\1\uffff\2\172\1\125\1\uffff\1\172\6\uffff\1\156"+ + "\4\uffff\2\157\1\145\1\164\1\160\2\164\1\156\1\157\1\151\2\156\1"+ + "\157\1\165\1\166\1\162\1\145\1\165\1\157\1\143\1\167\1\160\1\154"+ + "\1\160\2\164\1\141\2\uffff\1\114\1\172\1\144\1\156\1\141\1\164\1"+ + "\157\1\172\1\163\1\157\2\144\1\156\1\166\1\151\1\161\2\164\1\145"+ + "\1\143\1\141\1\154\1\147\1\157\1\172\1\164\1\157\1\142\1\162\3\172"+ + "\1\154\1\172\1\163\1\165\1\164\1\114\1\172\1\uffff\1\40\1\163\1"+ + "\144\1\165\1\162\1\uffff\1\151\1\164\3\172\1\163\1\172\1\143\7\172"+ + "\1\144\2\172\1\153\1\uffff\1\172\1\165\1\162\2\172\3\uffff\2\172"+ + "\1\uffff\1\151\1\164\1\162\1\151\1\172\1\155\1\164\1\172\1\162\2"+ + "\145\1\141\3\uffff\1\164\1\uffff\1\155\7\uffff\1\172\2\uffff\1\145"+ + "\1\uffff\1\162\1\145\4\uffff\1\145\1\141\1\156\1\143\2\uffff\1\137"+ + "\1\63\1\uffff\1\156\1\172\1\154\1\164\1\137\1\160\1\63\1\uffff\1"+ + "\163\1\156\1\172\1\154\1\164\2\172\5\uffff\1\172\1\63\1\uffff\1"+ + "\144\1\151\1\155\1\156\4\uffff\1\164\1\172\1\63\1\uffff\1\144\1"+ + "\151\7\uffff\1\172\1\143\10\uffff\2\164\1\uffff\1\145\1\141\5\uffff"+ + "\1\172\1\143\1\uffff\1\172\4\uffff\1\143\1\164\1\uffff\1\172\1\uffff"+ + "\2\151\1\uffff\1\141\1\143\1\154\2\172\2\uffff"; static final String DFA6_acceptS = - "\2\uffff\1\3\1\uffff\1\12\1\13\10\uffff\1\113\3\uffff\1\117\1\uffff"+ - "\1\121\1\122\1\123\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\32\uffff\1"+ - "\114\1\115\46\uffff\1\120\5\uffff\1\30\22\uffff\1\72\5\uffff\1\104"+ - "\1\105\1\106\2\uffff\1\107\11\uffff\1\32\1\33\1\34\1\uffff\1\44"+ - "\1\uffff\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\uffff\1\67\1\70\1"+ - "\uffff\1\73\2\uffff\1\102\1\103\1\116\1\110\2\uffff\1\5\1\6\2\uffff"+ - "\1\15\6\uffff\1\62\5\uffff\1\14\1\16\1\17\1\20\1\21\2\uffff\1\23"+ - "\3\uffff\1\63\1\64\1\65\1\66\3\uffff\1\75\1\uffff\1\112\1\22\1\24"+ - "\1\25\1\26\1\27\1\uffff\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\45"+ - "\2\uffff\1\52\1\uffff\1\74\1\76\1\77\1\100\1\101\1\uffff\1\31\1"+ - "\46\1\47\1\50\1\51\1\uffff\1\111\4\uffff\1\71"; + "\2\uffff\1\3\1\uffff\1\13\1\14\11\uffff\1\120\3\uffff\1\124\1\uffff"+ + "\1\126\1\127\1\130\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\1\12\33\uffff"+ + "\1\121\1\122\47\uffff\1\125\5\uffff\1\31\23\uffff\1\75\5\uffff\1"+ + "\107\1\110\1\111\2\uffff\1\112\14\uffff\1\34\1\35\1\36\1\uffff\1"+ + "\46\1\uffff\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\uffff\1\71\1\72"+ + "\1\uffff\1\76\2\uffff\1\105\1\106\1\123\1\113\4\uffff\1\5\1\6\2"+ + "\uffff\1\16\7\uffff\1\64\7\uffff\1\15\1\17\1\20\1\21\1\22\2\uffff"+ + "\1\24\4\uffff\1\65\1\66\1\67\1\70\3\uffff\1\100\2\uffff\1\116\1"+ + "\117\1\23\1\25\1\26\1\27\1\30\2\uffff\1\37\1\40\1\41\1\42\1\43\1"+ + "\44\1\45\1\47\2\uffff\1\54\2\uffff\1\77\1\101\1\102\1\103\1\104"+ + "\2\uffff\1\32\1\uffff\1\50\1\51\1\52\1\53\2\uffff\1\114\1\uffff"+ + "\1\33\2\uffff\1\115\5\uffff\1\74\1\73"; static final String DFA6_specialS = - "\u00f2\uffff}>"; + "\u010e\uffff}>"; static final String[] DFA6_transitionS = { - "\1\26\1\25\2\uffff\1\26\22\uffff\1\26\7\uffff\1\1\1\2\3\uffff"+ - "\1\22\1\3\1\4\12\22\1\5\1\uffff\1\16\4\uffff\10\24\1\17\2\24"+ - "\1\23\1\24\1\21\7\24\1\20\4\24\6\uffff\1\6\2\24\1\7\2\24\1\10"+ - "\1\24\1\11\2\24\1\12\1\24\1\13\1\24\1\14\1\24\1\15\10\24", - "\1\27", - "", - "\1\31\1\uffff\1\32\1\33\6\uffff\1\34\5\uffff\1\35", - "", - "", - "\1\36\10\uffff\1\37\5\uffff\1\40\1\41", - "\1\42", - "\1\43\11\uffff\1\44", - "\1\45\1\uffff\1\46\1\47\1\uffff\1\50\2\uffff\1\51\2\uffff\1"+ - "\52\1\53\1\54\1\55\2\uffff\1\56\1\57\4\uffff\1\60", - "\1\61", - "\1\62\11\uffff\1\63\5\uffff\1\64", - "\1\65\5\uffff\1\66", - "\1\67", - "", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\27\1\26\2\uffff\1\27\22\uffff\1\27\7\uffff\1\1\1\2\3\uffff"+ + "\1\23\1\3\1\4\12\23\1\5\1\uffff\1\17\4\uffff\10\25\1\20\2\25"+ + "\1\24\1\25\1\22\7\25\1\21\4\25\6\uffff\1\6\2\25\1\7\2\25\1\10"+ + "\1\25\1\11\2\25\1\12\1\25\1\13\1\25\1\14\1\25\1\15\1\16\7\25", + "\1\30", + "", + "\1\32\1\uffff\1\33\1\34\5\uffff\1\35\1\36\5\uffff\1\37", + "", + "", + "\1\40\10\uffff\1\41\5\uffff\1\42\1\43", + "\1\44", + "\1\45\11\uffff\1\46", + "\1\47\1\uffff\1\50\1\51\1\uffff\1\52\2\uffff\1\53\2\uffff\1"+ + "\54\1\55\1\56\1\57\2\uffff\1\60\1\61\4\uffff\1\62", + "\1\63", + "\1\64\11\uffff\1\65\5\uffff\1\66", + "\1\67\5\uffff\1\70", + "\1\71", "\1\72", "", - "\32\73\6\uffff\32\73", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\75", "", + "\32\76\6\uffff\32\76", "", "", "", "", "", - "\1\74", + "", + "\1\77", + "", "", "", "", - "\1\75", - "\1\76", - "\1\77", "\1\100", "\1\101", "\1\102", "\1\103", - "\1\104\11\uffff\1\105", + "\1\104", + "\1\105", "\1\106", - "\1\107", - "\1\110\5\uffff\1\111\1\uffff\1\112\4\uffff\1\113\1\uffff\1"+ - "\114", - "\1\115", - "\1\116", - "\1\117", - "\1\120\20\uffff\1\121", + "\1\107\11\uffff\1\110", + "\1\111", + "\1\112", + "\1\113\5\uffff\1\114\1\uffff\1\115\4\uffff\1\116\1\uffff\1"+ + "\117", + "\1\120", + "\1\121", "\1\122", - "\1\123", - "\1\124\1\125", + "\1\123\20\uffff\1\124", + "\1\125", "\1\126", - "\1\127", - "\1\130", + "\1\127\1\130", "\1\131", "\1\132", "\1\133", "\1\134", "\1\135", - "", - "", "\1\136", - "\1\137\1\uffff\12\137\7\uffff\32\137\6\uffff\32\137", + "\1\137", + "\1\140", "\1\141", + "", + "", "\1\142", - "\1\143", - "\1\144", + "\1\143\1\uffff\12\143\7\uffff\32\143\6\uffff\32\143", "\1\145", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\146", "\1\147", "\1\150", "\1\151", - "\1\152", - "\1\153", - "\1\154", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\153\14\uffff\1\154", "\1\155", "\1\156", - "\1\157\16\uffff\1\160", - "\1\161\16\uffff\1\162", + "\1\157", + "\1\160", + "\1\161", + "\1\162", "\1\163", - "\1\164", - "\1\165", - "\1\166", - "\1\167", + "\1\164\16\uffff\1\165", + "\1\166\16\uffff\1\167", "\1\170", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\172\6\uffff\1\173", + "\1\171", + "\1\172", + "\1\173", "\1\174", "\1\175", - "\1\176", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\177\6\uffff\1\u0080", + "\1\u0081", "\1\u0082", - "\1\24\1\uffff\2\24\1\u0083\7\24\7\uffff\32\24\6\uffff\32\24", - "\1\u0085", - "\1\u0086", + "\1\u0083", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "\1\u0087", - "\1\137\1\uffff\12\137\7\uffff\32\137\6\uffff\32\137", - "", - "\1\u0088", - "\1\u0089", - "\1\u008a", - "\1\u008b", + "\1\25\1\uffff\2\25\1\u0088\7\25\7\uffff\32\25\6\uffff\32\25", + "\1\u008a\14\uffff\1\u008b", "\1\u008c", - "", "\1\u008d", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u008e", + "\1\143\1\uffff\12\143\7\uffff\32\143\6\uffff\32\143", + "", + "\1\u008f", + "\1\u0090", "\1\u0091", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\u0092", "\1\u0093", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "", + "\1\u0094", + "\1\u0095", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u0099", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "\1\u009b", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\u009e", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00a3", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00a6", "", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\u00a0", - "\1\u00a1", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00a8", + "\1\u00a9", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", "", "", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", - "\1\u00a6", - "\1\u00a7", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\u00a8\11\uffff\1\u00a9", - "\1\u00aa", - "\1\24\1\uffff\12\24\7\uffff\32\24\4\uffff\1\u00ab\1\uffff\32"+ - "\24", - "\1\u00ad", "\1\u00ae", "\1\u00af", - "", - "", - "", "\1\u00b0", - "", "\1\u00b1", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00b2\11\uffff\1\u00b3", + "\1\u00b4", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00b5\1\uffff\32"+ + "\25", + "\1\u00b7", + "\1\u00b8", + "\1\u00b9", + "\1\u00ba", "", "", "", + "\1\u00bb", "", + "\1\u00bc", "", "", "", - "\1\24\1\uffff\12\24\7\uffff\32\24\4\uffff\1\u00b2\1\uffff\32"+ - "\24", "", "", - "\1\u00b4", "", - "\1\u00b5", - "\1\u00b6", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00bd\1\uffff\32"+ + "\25", "", "", + "\1\u00bf", + "", + "\1\u00c0", + "\1\u00c1", "", - "\1\u00b7", - "\1\u00b8", "", "", - "\1\u00b9", - "\1\u00ba\1\u00bb\1\u00bc\1\u00bd", "", - "\1\u00be", - "\1\24\1\uffff\12\24\7\uffff\32\24\4\uffff\1\u00bf\1\uffff\32"+ - "\24", - "\1\u00c1", "\1\u00c2", "\1\u00c3", - "\1\u00c4\1\u00c5\1\u00c6\1\u00c7", + "\1\u00c4", + "\1\u00c5", + "", + "", + "\1\u00c6", + "\1\u00c7\1\u00c8\1\u00c9\1\u00ca", + "", + "\1\u00cb", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00cc\1\uffff\32"+ + "\25", + "\1\u00ce", + "\1\u00cf", + "\1\u00d0", + "\1\u00d1", + "\1\u00d2\1\u00d3\1\u00d4\1\u00d5", + "", + "\1\u00d6", + "\1\u00d7", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00d8\1\uffff\32"+ + "\25", + "\1\u00da", + "\1\u00db", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "", + "", + "", "", - "\1\u00c8", - "\1\u00c9", - "\1\24\1\uffff\12\24\7\uffff\32\24\4\uffff\1\u00ca\1\uffff\32"+ - "\24", - "\1\u00cc", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00df\1\u00e0\1\u00e1\1\u00e2", "", + "\1\u00e3", + "\1\u00e4", + "\1\u00e5\1\u00e6\1\u00e7\1\u00e8\1\u00e9\1\u00ea\67\uffff\1"+ + "\u00eb", + "\1\u00ec\1\uffff\1\u00ed\4\uffff\1\u00ee\1\uffff\1\u00ef", "", "", "", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\u00cf\1\u00d0\1\u00d1\1\u00d2", "", - "\1\u00d3", - "\1\u00d4\1\u00d5\1\u00d6\1\u00d7\1\u00d8\1\u00d9\67\uffff\1"+ - "\u00da", - "\1\u00db\1\uffff\1\u00dc\4\uffff\1\u00dd\1\uffff\1\u00de", + "\1\u00f0\3\uffff\1\u00f1", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00f3\1\u00f4\1\u00f5\1\u00f6", "", + "\1\u00f7", + "\1\u00f8", "", "", "", - "\1\u00df", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", - "\1\u00e1\1\u00e2\1\u00e3\1\u00e4", "", - "\1\u00e5", "", "", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u00fa", "", "", "", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "", "", "", "", "", + "\1\u00fb\16\uffff\1\u00fc", + "\1\u00fd\16\uffff\1\u00fe", "", + "\1\u00ff", + "\1\u0100", "", "", - "\1\u00e7\16\uffff\1\u00e8", - "\1\u00e9\16\uffff\1\u00ea", "", - "\1\u00eb", "", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u0102", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", "", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "", "", + "\1\u0104", + "\1\u0105", "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", + "\1\u0107", + "\1\u0108", "", - "\1\u00ed", + "\1\u0109", + "\1\u010a", + "\1\u010b", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", - "\1\u00ee", - "\1\u00ef", - "\1\u00f0", - "\1\24\1\uffff\12\24\7\uffff\32\24\6\uffff\32\24", "" }; @@ -3213,7 +3408,7 @@ public DFA6(BaseRecognizer recognizer) { this.transition = DFA6_transition; } public String getDescription() { - return "1:1: Tokens : ( T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; + return "1:1: Tokens : ( T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 4b57c09..17bf4be 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-06 11:43:10 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 17:02:13 package br.ufpb.iged.interpretador.parser; @@ -18,11 +18,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__27=27; public static final int T__28=28; public static final int T__29=29; public static final int T__30=30; @@ -96,6 +95,12 @@ public abstract class AssemblerParser extends Parser { public static final int T__98=98; public static final int T__99=99; public static final int T__100=100; + public static final int T__101=101; + public static final int T__102=102; + public static final int T__103=103; + public static final int T__104=104; + public static final int T__105=105; + public static final int T__106=106; public static final int ARITMETICA=4; public static final int BODY=5; public static final int CONSTR_DECL=6; @@ -107,18 +112,19 @@ public abstract class AssemblerParser extends Parser { public static final int INT=12; public static final int INTEIRO=13; public static final int LABEL=14; - public static final int LOAD=15; - public static final int LOGICA=16; - public static final int MEMBRO_CLASSE=17; - public static final int METHOD_DECL=18; - public static final int NEWLINE=19; - public static final int NULL=20; - public static final int PARAMS=21; - public static final int PILHA=22; - public static final int STORE=23; - public static final int TIPO_REF=24; - public static final int VOID=25; - public static final int WS=26; + public static final int LIMIT=15; + public static final int LOAD=16; + public static final int LOGICA=17; + public static final int MEMBRO_CLASSE=18; + public static final int METHOD_DECL=19; + public static final int NEWLINE=20; + public static final int NULL=21; + public static final int PARAMS=22; + public static final int PILHA=23; + public static final int STORE=24; + public static final int TIPO_REF=25; + public static final int VOID=26; + public static final int WS=27; // delegates public Parser[] getDelegates() { @@ -163,7 +169,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:1: programa : ( instrucao )* ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: programa : ( instrucao )* ; public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -176,28 +182,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:10: ( ( instrucao )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:12: ( instrucao )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:12: ( instrucao )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==30||(LA1_0 >= 38 && LA1_0 <= 100)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==31||(LA1_0 >= 40 && LA1_0 <= 105)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:12: instrucao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:12: instrucao { - pushFollow(FOLLOW_instrucao_in_programa127); + pushFollow(FOLLOW_instrucao_in_programa132); instrucao1=instrucao(); state._fsp--; @@ -244,7 +250,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -261,14 +267,14 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST string_literal4_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:11: ( operacao | definicaoClasse ( '.end class' )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:11: ( operacao | definicaoClasse ( '.end class' )? ) int alt3=2; int LA3_0 = input.LA(1); - if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 38 && LA3_0 <= 100)) ) { + if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 40 && LA3_0 <= 105)) ) { alt3=1; } - else if ( (LA3_0==30) ) { + else if ( (LA3_0==31) ) { alt3=2; } else { @@ -280,12 +286,12 @@ else if ( (LA3_0==30) ) { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:13: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:13: operacao { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_operacao_in_instrucao155); + pushFollow(FOLLOW_operacao_in_instrucao160); operacao2=operacao(); state._fsp--; @@ -295,30 +301,30 @@ else if ( (LA3_0==30) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:13: definicaoClasse ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:13: definicaoClasse ( '.end class' )? { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_definicaoClasse_in_instrucao169); + pushFollow(FOLLOW_definicaoClasse_in_instrucao174); definicaoClasse3=definicaoClasse(); state._fsp--; adaptor.addChild(root_0, definicaoClasse3.getTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:29: ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:29: ( '.end class' )? int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==31) ) { + if ( (LA2_0==32) ) { alt2=1; } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:30: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:30: '.end class' { - string_literal4=(Token)match(input,31,FOLLOW_31_in_instrucao172); + string_literal4=(Token)match(input,32,FOLLOW_32_in_instrucao177); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -364,7 +370,7 @@ public static class operacao_return extends ParserRuleReturnScope { // $ANTLR start "operacao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: operacao : ( label comando | comando ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: operacao : ( label comando | comando ) ; public final AssemblerParser.operacao_return operacao() throws RecognitionException { AssemblerParser.operacao_return retval = new AssemblerParser.operacao_return(); retval.start = input.LT(1); @@ -381,20 +387,20 @@ public final AssemblerParser.operacao_return operacao() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:10: ( ( label comando | comando ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:10: ( ( label comando | comando ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:12: ( label comando | comando ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:12: ( label comando | comando ) int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==ID) ) { alt4=1; } - else if ( (LA4_0==NEWLINE||(LA4_0 >= 38 && LA4_0 <= 100)) ) { + else if ( (LA4_0==NEWLINE||(LA4_0 >= 40 && LA4_0 <= 105)) ) { alt4=2; } else { @@ -406,16 +412,16 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 38 && LA4_0 <= 100)) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:13: label comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:13: label comando { - pushFollow(FOLLOW_label_in_operacao194); + pushFollow(FOLLOW_label_in_operacao199); label5=label(); state._fsp--; adaptor.addChild(root_0, label5.getTree()); - pushFollow(FOLLOW_comando_in_operacao196); + pushFollow(FOLLOW_comando_in_operacao201); comando6=comando(); state._fsp--; @@ -425,9 +431,9 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 38 && LA4_0 <= 100)) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:29: comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:29: comando { - pushFollow(FOLLOW_comando_in_operacao200); + pushFollow(FOLLOW_comando_in_operacao205); comando7=comando(); state._fsp--; @@ -471,7 +477,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:1: label : a= ID ':' -> ^( LABEL $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: label : a= ID ':' -> ^( LABEL $a) ; public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -485,18 +491,18 @@ public final AssemblerParser.label_return label() throws RecognitionException { BytecodesAST a_tree=null; BytecodesAST char_literal8_tree=null; RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: (a= ID ':' -> ^( LABEL $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: a= ID ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label222); + a=(Token)match(input,ID,FOLLOW_ID_in_label227); stream_ID.add(a); - char_literal8=(Token)match(input,37,FOLLOW_37_in_label224); - stream_37.add(char_literal8); + char_literal8=(Token)match(input,39,FOLLOW_39_in_label229); + stream_39.add(char_literal8); // AST REWRITE @@ -511,9 +517,9 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 56:20: -> ^( LABEL $a) + // 57:20: -> ^( LABEL $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:23: ^( LABEL $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:23: ^( LABEL $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -561,7 +567,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -596,83 +602,83 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio BytecodesAST NEWLINE20_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? int alt5=12; switch ( input.LA(1) ) { - case 51: - case 83: - case 95: + case 53: + case 54: + case 86: + case 87: case 99: + case 103: + case 104: { alt5=1; } break; - case 53: - case 62: - case 75: - case 81: - case 82: + case 56: + case 65: + case 78: + case 84: case 85: - case 92: + case 89: + case 96: { alt5=2; } break; - case 38: case 40: - case 41: case 42: case 43: - case 55: - case 56: - case 57: + case 44: + case 45: case 58: case 59: case 60: case 61: - case 77: - case 78: - case 79: + case 62: + case 63: + case 64: case 80: + case 81: + case 82: + case 83: { alt5=3; } break; - case 39: - case 76: - case 94: + case 41: + case 79: + case 98: { alt5=4; } break; - case 46: - case 47: case 48: case 49: - case 88: - case 89: - case 90: - case 91: + case 50: + case 51: + case 92: + case 93: + case 94: + case 95: { alt5=5; } break; - case 45: - case 87: + case 47: + case 91: { alt5=6; } break; - case 52: - case 63: - case 64: - case 65: + case 55: case 66: case 67: case 68: @@ -682,32 +688,35 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio case 72: case 73: case 74: + case 75: + case 76: + case 77: { alt5=7; } break; - case 54: - case 84: - case 93: + case 57: + case 88: + case 97: { alt5=8; } break; - case 50: - case 97: - case 98: + case 52: + case 101: + case 102: { alt5=9; } break; - case 44: - case 86: - case 100: + case 46: + case 90: + case 105: { alt5=10; } break; - case 96: + case 100: { alt5=11; } @@ -716,9 +725,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:12: manipulacaoObjetos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:12: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_comando242); + pushFollow(FOLLOW_manipulacaoObjetos_in_comando247); manipulacaoObjetos9=manipulacaoObjetos(); state._fsp--; @@ -728,9 +737,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:17: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: aritmetica { - pushFollow(FOLLOW_aritmetica_in_comando260); + pushFollow(FOLLOW_aritmetica_in_comando265); aritmetica10=aritmetica(); state._fsp--; @@ -740,9 +749,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: load { - pushFollow(FOLLOW_load_in_comando278); + pushFollow(FOLLOW_load_in_comando283); load11=load(); state._fsp--; @@ -752,9 +761,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: loadint { - pushFollow(FOLLOW_loadint_in_comando296); + pushFollow(FOLLOW_loadint_in_comando301); loadint12=loadint(); state._fsp--; @@ -764,9 +773,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: store { - pushFollow(FOLLOW_store_in_comando314); + pushFollow(FOLLOW_store_in_comando319); store13=store(); state._fsp--; @@ -776,9 +785,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: storeint { - pushFollow(FOLLOW_storeint_in_comando332); + pushFollow(FOLLOW_storeint_in_comando337); storeint14=storeint(); state._fsp--; @@ -788,9 +797,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: desvio { - pushFollow(FOLLOW_desvio_in_comando350); + pushFollow(FOLLOW_desvio_in_comando355); desvio15=desvio(); state._fsp--; @@ -800,9 +809,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: logica { - pushFollow(FOLLOW_logica_in_comando368); + pushFollow(FOLLOW_logica_in_comando373); logica16=logica(); state._fsp--; @@ -812,9 +821,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: pilha { - pushFollow(FOLLOW_pilha_in_comando386); + pushFollow(FOLLOW_pilha_in_comando391); pilha17=pilha(); state._fsp--; @@ -824,9 +833,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:17: retorno { - pushFollow(FOLLOW_retorno_in_comando404); + pushFollow(FOLLOW_retorno_in_comando409); retorno18=retorno(); state._fsp--; @@ -836,9 +845,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:17: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:17: 'nop' { - string_literal19=(Token)match(input,96,FOLLOW_96_in_comando422); + string_literal19=(Token)match(input,100,FOLLOW_100_in_comando427); string_literal19_tree = (BytecodesAST)adaptor.create(string_literal19) ; @@ -851,7 +860,7 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } - NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando438); + NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando443); NEWLINE20_tree = (BytecodesAST)adaptor.create(NEWLINE20) ; @@ -889,7 +898,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -912,46 +921,46 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST NEWLINE23_tree=null; BytecodesAST NEWLINE25_tree=null; BytecodesAST NEWLINE27_tree=null; - RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); + RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal21=(Token)match(input,30,FOLLOW_30_in_definicaoClasse464); - stream_30.add(string_literal21); + string_literal21=(Token)match(input,31,FOLLOW_31_in_definicaoClasse469); + stream_31.add(string_literal21); - ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse466); + ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse471); stream_ID.add(ID22); - NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse468); + NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse473); stream_NEWLINE.add(NEWLINE23); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:27: ( superClasse NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:27: ( superClasse NEWLINE )? int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==35) ) { + if ( (LA6_0==37) ) { alt6=1; } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:28: superClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:28: superClasse NEWLINE { - pushFollow(FOLLOW_superClasse_in_definicaoClasse471); + pushFollow(FOLLOW_superClasse_in_definicaoClasse476); superClasse24=superClasse(); state._fsp--; stream_superClasse.add(superClasse24.getTree()); - NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse473); + NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse478); stream_NEWLINE.add(NEWLINE25); @@ -961,30 +970,30 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:50: ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:50: ( membroClasse NEWLINE )+ int cnt7=0; loop7: do { int alt7=2; int LA7_0 = input.LA(1); - if ( ((LA7_0 >= 33 && LA7_0 <= 34)) ) { + if ( (LA7_0==34||LA7_0==36) ) { alt7=1; } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:51: membroClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:51: membroClasse NEWLINE { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse478); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse483); membroClasse26=membroClasse(); state._fsp--; stream_membroClasse.add(membroClasse26.getTree()); - NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse480); + NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse485); stream_NEWLINE.add(NEWLINE27); @@ -1002,7 +1011,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 30, membroClasse, superClasse, ID + // elements: 31, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1012,27 +1021,27 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 73:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 74:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_30.nextNode() + stream_31.nextNode() , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:29: ( superClasse )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:29: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -1090,7 +1099,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1104,17 +1113,17 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal28_tree=null; BytecodesAST TIPO_REF29_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:15: '.super' TIPO_REF { - string_literal28=(Token)match(input,35,FOLLOW_35_in_superClasse541); - stream_35.add(string_literal28); + string_literal28=(Token)match(input,37,FOLLOW_37_in_superClasse546); + stream_37.add(string_literal28); - TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse543); + TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse548); stream_TIPO_REF.add(TIPO_REF29); @@ -1129,9 +1138,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 76:33: -> ^( EXTENDS TIPO_REF ) + // 77:33: -> ^( EXTENDS TIPO_REF ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:36: ^( EXTENDS TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:36: ^( EXTENDS TIPO_REF ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1181,7 +1190,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:1: membroClasse : ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:1: membroClasse : ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1190,84 +1199,98 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST root_0 = null; Token string_literal30=null; - Token ID31=null; - Token string_literal33=null; - Token INIT34=null; - Token char_literal36=null; - Token char_literal38=null; - Token VOID39=null; - Token NEWLINE40=null; - Token string_literal42=null; - Token string_literal43=null; - Token ID44=null; - Token char_literal46=null; - Token char_literal48=null; - Token NEWLINE49=null; - Token string_literal51=null; + Token string_literal31=null; + Token ID32=null; + Token string_literal34=null; + Token INIT35=null; + Token char_literal37=null; + Token char_literal39=null; + Token VOID40=null; + Token NEWLINE41=null; + Token NEWLINE43=null; + Token string_literal45=null; + Token string_literal46=null; + Token string_literal47=null; + Token ID48=null; + Token char_literal50=null; + Token char_literal52=null; + Token NEWLINE53=null; + Token NEWLINE55=null; + Token string_literal57=null; AssemblerParser.tipo_return ret =null; - AssemblerParser.tipo_return tipo32 =null; + AssemblerParser.tipo_return tipo33 =null; + + AssemblerParser.parametros_return parametros36 =null; - AssemblerParser.parametros_return parametros35 =null; + AssemblerParser.parametros_return parametros38 =null; - AssemblerParser.parametros_return parametros37 =null; + AssemblerParser.limite_return limite42 =null; - AssemblerParser.operacao_return operacao41 =null; + AssemblerParser.operacao_return operacao44 =null; - AssemblerParser.parametros_return parametros45 =null; + AssemblerParser.parametros_return parametros49 =null; - AssemblerParser.parametros_return parametros47 =null; + AssemblerParser.parametros_return parametros51 =null; - AssemblerParser.operacao_return operacao50 =null; + AssemblerParser.limite_return limite54 =null; + + AssemblerParser.operacao_return operacao56 =null; BytecodesAST string_literal30_tree=null; - BytecodesAST ID31_tree=null; - BytecodesAST string_literal33_tree=null; - BytecodesAST INIT34_tree=null; - BytecodesAST char_literal36_tree=null; - BytecodesAST char_literal38_tree=null; - BytecodesAST VOID39_tree=null; - BytecodesAST NEWLINE40_tree=null; - BytecodesAST string_literal42_tree=null; - BytecodesAST string_literal43_tree=null; - BytecodesAST ID44_tree=null; - BytecodesAST char_literal46_tree=null; - BytecodesAST char_literal48_tree=null; - BytecodesAST NEWLINE49_tree=null; - BytecodesAST string_literal51_tree=null; + BytecodesAST string_literal31_tree=null; + BytecodesAST ID32_tree=null; + BytecodesAST string_literal34_tree=null; + BytecodesAST INIT35_tree=null; + BytecodesAST char_literal37_tree=null; + BytecodesAST char_literal39_tree=null; + BytecodesAST VOID40_tree=null; + BytecodesAST NEWLINE41_tree=null; + BytecodesAST NEWLINE43_tree=null; + BytecodesAST string_literal45_tree=null; + BytecodesAST string_literal46_tree=null; + BytecodesAST string_literal47_tree=null; + BytecodesAST ID48_tree=null; + BytecodesAST char_literal50_tree=null; + BytecodesAST char_literal52_tree=null; + BytecodesAST NEWLINE53_tree=null; + BytecodesAST NEWLINE55_tree=null; + BytecodesAST string_literal57_tree=null; + RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); - RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_106=new RewriteRuleTokenStream(adaptor,"token 106"); + RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); - RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27"); - RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); + RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + RewriteRuleSubtreeStream stream_limite=new RewriteRuleSubtreeStream(adaptor,"rule limite"); RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:5: ( '.field' ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ^( BODY ( operacao )* ) ) | '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) ) - int alt12=3; - int LA12_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:5: ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) + int alt16=3; + int LA16_0 = input.LA(1); - if ( (LA12_0==33) ) { - alt12=1; + if ( (LA16_0==34) ) { + alt16=1; } - else if ( (LA12_0==34) ) { - int LA12_2 = input.LA(2); + else if ( (LA16_0==36) ) { + int LA16_2 = input.LA(2); - if ( (LA12_2==INIT) ) { - alt12=2; + if ( (LA16_2==INIT) ) { + alt16=2; } - else if ( (LA12_2==ID) ) { - alt12=3; + else if ( (LA16_2==ID||LA16_2==106) ) { + alt16=3; } else { NoViableAltException nvae = - new NoViableAltException("", 12, 2, input); + new NoViableAltException("", 16, 2, input); throw nvae; @@ -1275,29 +1298,50 @@ else if ( (LA12_2==ID) ) { } else { NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); + new NoViableAltException("", 16, 0, input); throw nvae; } - switch (alt12) { + switch (alt16) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:7: '.field' ID tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.field' ( 'static' )? ID tipo { - string_literal30=(Token)match(input,33,FOLLOW_33_in_membroClasse564); - stream_33.add(string_literal30); + string_literal30=(Token)match(input,34,FOLLOW_34_in_membroClasse569); + stream_34.add(string_literal30); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:16: ( 'static' )? + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==106) ) { + alt8=1; + } + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:16: 'static' + { + string_literal31=(Token)match(input,106,FOLLOW_106_in_membroClasse571); + stream_106.add(string_literal31); - ID31=(Token)match(input,ID,FOLLOW_ID_in_membroClasse566); - stream_ID.add(ID31); + } + break; + + } - pushFollow(FOLLOW_tipo_in_membroClasse568); - tipo32=tipo(); + ID32=(Token)match(input,ID,FOLLOW_ID_in_membroClasse574); + stream_ID.add(ID32); + + + pushFollow(FOLLOW_tipo_in_membroClasse576); + tipo33=tipo(); state._fsp--; - stream_tipo.add(tipo32.getTree()); + stream_tipo.add(tipo33.getTree()); // AST REWRITE // elements: ID, tipo @@ -1310,9 +1354,9 @@ else if ( (LA12_2==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 79:24: -> ^( FIELD_DECL ID tipo ) + // 80:34: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:27: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:37: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1336,62 +1380,62 @@ else if ( (LA12_2==ID) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:7: '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal33=(Token)match(input,34,FOLLOW_34_in_membroClasse586); - stream_34.add(string_literal33); + string_literal34=(Token)match(input,36,FOLLOW_36_in_membroClasse594); + stream_36.add(string_literal34); - INIT34=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse588); - stream_INIT.add(INIT34); + INIT35=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse596); + stream_INIT.add(INIT35); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:22: ( parametros | '(' parametros ')' ) - int alt8=2; - int LA8_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:22: ( parametros | '(' parametros ')' ) + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA8_0==ID||LA8_0==TIPO_REF||LA8_0==28) ) { - alt8=1; + if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==29) ) { + alt9=1; } - else if ( (LA8_0==27) ) { - alt8=2; + else if ( (LA9_0==28) ) { + alt9=2; } else { NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); + new NoViableAltException("", 9, 0, input); throw nvae; } - switch (alt8) { + switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:23: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:23: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse591); - parametros35=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse599); + parametros36=parametros(); state._fsp--; - stream_parametros.add(parametros35.getTree()); + stream_parametros.add(parametros36.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:36: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:36: '(' parametros ')' { - char_literal36=(Token)match(input,27,FOLLOW_27_in_membroClasse595); - stream_27.add(char_literal36); + char_literal37=(Token)match(input,28,FOLLOW_28_in_membroClasse603); + stream_28.add(char_literal37); - pushFollow(FOLLOW_parametros_in_membroClasse597); - parametros37=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse605); + parametros38=parametros(); state._fsp--; - stream_parametros.add(parametros37.getTree()); + stream_parametros.add(parametros38.getTree()); - char_literal38=(Token)match(input,29,FOLLOW_29_in_membroClasse599); - stream_29.add(char_literal38); + char_literal39=(Token)match(input,30,FOLLOW_30_in_membroClasse607); + stream_30.add(char_literal39); } @@ -1400,51 +1444,79 @@ else if ( (LA8_0==27) ) { } - VOID39=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse602); - stream_VOID.add(VOID39); + VOID40=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse610); + stream_VOID.add(VOID40); + + + NEWLINE41=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse612); + stream_NEWLINE.add(NEWLINE41); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:69: ( limite NEWLINE )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0==35) ) { + alt10=1; + } + switch (alt10) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:70: limite NEWLINE + { + pushFollow(FOLLOW_limite_in_membroClasse615); + limite42=limite(); + + state._fsp--; + + stream_limite.add(limite42.getTree()); + + NEWLINE43=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse617); + stream_NEWLINE.add(NEWLINE43); - NEWLINE40=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse604); - stream_NEWLINE.add(NEWLINE40); + } + break; + + } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:69: ( operacao )* - loop9: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:87: ( operacao )* + loop11: do { - int alt9=2; - int LA9_0 = input.LA(1); + int alt11=2; + int LA11_0 = input.LA(1); - if ( (LA9_0==ID||LA9_0==NEWLINE||(LA9_0 >= 38 && LA9_0 <= 100)) ) { - alt9=1; + if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 40 && LA11_0 <= 105)) ) { + alt11=1; } - switch (alt9) { + switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:69: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:87: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse606); - operacao41=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse621); + operacao44=operacao(); state._fsp--; - stream_operacao.add(operacao41.getTree()); + stream_operacao.add(operacao44.getTree()); } break; default : - break loop9; + break loop11; } } while (true); - string_literal42=(Token)match(input,32,FOLLOW_32_in_membroClasse609); - stream_32.add(string_literal42); + string_literal45=(Token)match(input,33,FOLLOW_33_in_membroClasse624); + stream_33.add(string_literal45); // AST REWRITE - // elements: operacao, parametros, INIT + // elements: parametros, operacao, INIT, limite // token labels: // rule labels: retval // token list labels: @@ -1454,9 +1526,9 @@ else if ( (LA8_0==27) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 81:2: -> ^( CONSTR_DECL INIT parametros ^( BODY ( operacao )* ) ) + // 82:2: -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:5: ^( CONSTR_DECL INIT parametros ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:5: ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1469,14 +1541,21 @@ else if ( (LA8_0==27) ) { adaptor.addChild(root_1, stream_parametros.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:35: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:35: ( limite )? + if ( stream_limite.hasNext() ) { + adaptor.addChild(root_1, stream_limite.nextTree()); + + } + stream_limite.reset(); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:43: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:42: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:50: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1497,62 +1576,83 @@ else if ( (LA8_0==27) ) { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:7: '.method' ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal43=(Token)match(input,34,FOLLOW_34_in_membroClasse635); - stream_34.add(string_literal43); + string_literal46=(Token)match(input,36,FOLLOW_36_in_membroClasse653); + stream_36.add(string_literal46); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:17: ( 'static' )? + int alt12=2; + int LA12_0 = input.LA(1); - ID44=(Token)match(input,ID,FOLLOW_ID_in_membroClasse637); - stream_ID.add(ID44); + if ( (LA12_0==106) ) { + alt12=1; + } + switch (alt12) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:17: 'static' + { + string_literal47=(Token)match(input,106,FOLLOW_106_in_membroClasse655); + stream_106.add(string_literal47); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:20: ( parametros | '(' parametros ')' ) - int alt10=2; - int LA10_0 = input.LA(1); + } + break; - if ( (LA10_0==ID||LA10_0==TIPO_REF||LA10_0==28) ) { - alt10=1; } - else if ( (LA10_0==27) ) { - alt10=2; + + + ID48=(Token)match(input,ID,FOLLOW_ID_in_membroClasse658); + stream_ID.add(ID48); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:30: ( parametros | '(' parametros ')' ) + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==ID||LA13_0==TIPO_REF||LA13_0==29) ) { + alt13=1; + } + else if ( (LA13_0==28) ) { + alt13=2; } else { NoViableAltException nvae = - new NoViableAltException("", 10, 0, input); + new NoViableAltException("", 13, 0, input); throw nvae; } - switch (alt10) { + switch (alt13) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:21: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:31: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse640); - parametros45=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse661); + parametros49=parametros(); state._fsp--; - stream_parametros.add(parametros45.getTree()); + stream_parametros.add(parametros49.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:34: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:44: '(' parametros ')' { - char_literal46=(Token)match(input,27,FOLLOW_27_in_membroClasse644); - stream_27.add(char_literal46); + char_literal50=(Token)match(input,28,FOLLOW_28_in_membroClasse665); + stream_28.add(char_literal50); - pushFollow(FOLLOW_parametros_in_membroClasse646); - parametros47=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse667); + parametros51=parametros(); state._fsp--; - stream_parametros.add(parametros47.getTree()); + stream_parametros.add(parametros51.getTree()); - char_literal48=(Token)match(input,29,FOLLOW_29_in_membroClasse648); - stream_29.add(char_literal48); + char_literal52=(Token)match(input,30,FOLLOW_30_in_membroClasse669); + stream_30.add(char_literal52); } @@ -1561,54 +1661,82 @@ else if ( (LA10_0==27) ) { } - pushFollow(FOLLOW_tipo_in_membroClasse655); + pushFollow(FOLLOW_tipo_in_membroClasse676); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE49=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse657); - stream_NEWLINE.add(NEWLINE49); + NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse678); + stream_NEWLINE.add(NEWLINE53); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:73: ( operacao )* - loop11: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:83: ( limite NEWLINE )? + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0==35) ) { + alt14=1; + } + switch (alt14) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:84: limite NEWLINE + { + pushFollow(FOLLOW_limite_in_membroClasse681); + limite54=limite(); + + state._fsp--; + + stream_limite.add(limite54.getTree()); + + NEWLINE55=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse683); + stream_NEWLINE.add(NEWLINE55); + + + } + break; + + } + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:101: ( operacao )* + loop15: do { - int alt11=2; - int LA11_0 = input.LA(1); + int alt15=2; + int LA15_0 = input.LA(1); - if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 38 && LA11_0 <= 100)) ) { - alt11=1; + if ( (LA15_0==ID||LA15_0==NEWLINE||(LA15_0 >= 40 && LA15_0 <= 105)) ) { + alt15=1; } - switch (alt11) { + switch (alt15) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:73: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:101: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse659); - operacao50=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse687); + operacao56=operacao(); state._fsp--; - stream_operacao.add(operacao50.getTree()); + stream_operacao.add(operacao56.getTree()); } break; default : - break loop11; + break loop15; } } while (true); - string_literal51=(Token)match(input,32,FOLLOW_32_in_membroClasse662); - stream_32.add(string_literal51); + string_literal57=(Token)match(input,33,FOLLOW_33_in_membroClasse690); + stream_33.add(string_literal57); // AST REWRITE - // elements: ret, ID, operacao, parametros + // elements: operacao, ret, limite, parametros, ID // token labels: // rule labels: ret, retval // token list labels: @@ -1619,9 +1747,9 @@ else if ( (LA10_0==27) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 83:9: -> ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) + // 84:9: -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:12: ^( METHOD_DECL ID $ret parametros ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:12: ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1636,14 +1764,21 @@ else if ( (LA10_0==27) ) { adaptor.addChild(root_1, stream_parametros.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:46: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:45: ( limite )? + if ( stream_limite.hasNext() ) { + adaptor.addChild(root_1, stream_limite.nextTree()); + + } + stream_limite.reset(); + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:53: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:53: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:60: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1687,128 +1822,219 @@ else if ( (LA10_0==27) ) { // $ANTLR end "membroClasse" - public static class parametros_return extends ParserRuleReturnScope { + public static class limite_return extends ParserRuleReturnScope { BytecodesAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); - public final AssemblerParser.parametros_return parametros() throws RecognitionException { - AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); + // $ANTLR start "limite" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: limite : '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ; + public final AssemblerParser.limite_return limite() throws RecognitionException { + AssemblerParser.limite_return retval = new AssemblerParser.limite_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - Token a=null; - Token string_literal52=null; + Token string_literal58=null; + Token INTEIRO59=null; - BytecodesAST a_tree=null; - BytecodesAST string_literal52_tree=null; - RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + BytecodesAST string_literal58_tree=null; + BytecodesAST INTEIRO59_tree=null; + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) - int alt14=2; - int LA14_0 = input.LA(1); - - if ( (LA14_0==28) ) { - alt14=1; - } - else if ( (LA14_0==ID||LA14_0==TIPO_REF) ) { - alt14=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 14, 0, input); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: ( '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:11: '.limit locals' INTEIRO + { + string_literal58=(Token)match(input,35,FOLLOW_35_in_limite739); + stream_35.add(string_literal58); - throw nvae; - } - switch (alt14) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:4: '()' - { - string_literal52=(Token)match(input,28,FOLLOW_28_in_parametros708); - stream_28.add(string_literal52); + INTEIRO59=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite741); + stream_INTEIRO.add(INTEIRO59); - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + // AST REWRITE + // elements: INTEIRO + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - root_0 = (BytecodesAST)adaptor.nil(); - // 87:9: -> ^( PARAMS VOID ) - { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:12: ^( PARAMS VOID ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(PARAMS, "PARAMS") - , root_1); + root_0 = (BytecodesAST)adaptor.nil(); + // 87:35: -> ^( LIMIT INTEIRO ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:38: ^( LIMIT INTEIRO ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(LIMIT, "LIMIT") + , root_1); - adaptor.addChild(root_1, - (BytecodesAST)adaptor.create(VOID, "VOID") - ); + adaptor.addChild(root_1, + stream_INTEIRO.nextNode() + ); - adaptor.addChild(root_0, root_1); - } + adaptor.addChild(root_0, root_1); + } - } + } - retval.tree = root_0; + retval.tree = root_0; - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:4: (a= ID |a= TIPO_REF )+ - { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:88:4: (a= ID |a= TIPO_REF )+ - int cnt13=0; - loop13: - do { - int alt13=3; - int LA13_0 = input.LA(1); + } - if ( (LA13_0==TIPO_REF) ) { - int LA13_2 = input.LA(2); + retval.stop = input.LT(-1); - if ( (LA13_2==ID||LA13_2==INT||(LA13_2 >= TIPO_REF && LA13_2 <= VOID)||LA13_2==29) ) { - alt13=2; - } + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "limite" + + + public static class parametros_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "parametros" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); + public final AssemblerParser.parametros_return parametros() throws RecognitionException { + AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + Token string_literal60=null; + + BytecodesAST a_tree=null; + BytecodesAST string_literal60_tree=null; + RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0==29) ) { + alt18=1; + } + else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { + alt18=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + + throw nvae; + + } + switch (alt18) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:4: '()' + { + string_literal60=(Token)match(input,29,FOLLOW_29_in_parametros763); + stream_29.add(string_literal60); + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 90:9: -> ^( PARAMS VOID ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:12: ^( PARAMS VOID ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(PARAMS, "PARAMS") + , root_1); + + adaptor.addChild(root_1, + (BytecodesAST)adaptor.create(VOID, "VOID") + ); + + adaptor.addChild(root_0, root_1); } - else if ( (LA13_0==ID) ) { - alt13=1; + + } + + + retval.tree = root_0; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:4: (a= ID |a= TIPO_REF )+ + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:4: (a= ID |a= TIPO_REF )+ + int cnt17=0; + loop17: + do { + int alt17=3; + int LA17_0 = input.LA(1); + + if ( (LA17_0==TIPO_REF) ) { + int LA17_2 = input.LA(2); + + if ( (LA17_2==ID||LA17_2==INT||(LA17_2 >= TIPO_REF && LA17_2 <= VOID)||LA17_2==30) ) { + alt17=2; + } + + + } + else if ( (LA17_0==ID) ) { + alt17=1; } - switch (alt13) { + switch (alt17) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:9: a= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:9: a= ID { - a=(Token)match(input,ID,FOLLOW_ID_in_parametros735); + a=(Token)match(input,ID,FOLLOW_ID_in_parametros790); stream_ID.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:9: a= TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:9: a= TIPO_REF { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros750); + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros805); stream_TIPO_REF.add(a); @@ -1816,12 +2042,12 @@ else if ( (LA13_0==ID) ) { break; default : - if ( cnt13 >= 1 ) break loop13; + if ( cnt17 >= 1 ) break loop17; EarlyExitException eee = - new EarlyExitException(13, input); + new EarlyExitException(17, input); throw eee; } - cnt13++; + cnt17++; } while (true); @@ -1837,13 +2063,13 @@ else if ( (LA13_0==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 92:4: -> ( ^( PARAMS $a) )+ + // 95:4: -> ( ^( PARAMS $a) )+ { if ( !(stream_a.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:7: ^( PARAMS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:7: ^( PARAMS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1896,7 +2122,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -1904,23 +2130,23 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST root_0 = null; - Token set53=null; + Token set61=null; - BytecodesAST set53_tree=null; + BytecodesAST set61_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: ( 'areturn' | 'ireturn' | 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: ( 'areturn' | 'ireturn' | 'return' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set53=(Token)input.LT(1); + set61=(Token)input.LT(1); - if ( input.LA(1)==44||input.LA(1)==86||input.LA(1)==100 ) { + if ( input.LA(1)==46||input.LA(1)==90||input.LA(1)==105 ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set53) + (BytecodesAST)adaptor.create(set61) ); state.errorRecovery=false; } @@ -1961,7 +2187,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -1970,85 +2196,109 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal56=null; + Token char_literal66=null; + Token char_literal67=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; - AssemblerParser.tipo_return tipo54 =null; + AssemblerParser.tipo_return tipo62 =null; - AssemblerParser.tipo_return tipo55 =null; + AssemblerParser.tipo_return tipo63 =null; + + AssemblerParser.tipo_return tipo64 =null; + + AssemblerParser.tipo_return tipo65 =null; BytecodesAST a_tree=null; - BytecodesAST char_literal56_tree=null; - RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); - RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); - RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); - RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); + BytecodesAST char_literal66_tree=null; + BytecodesAST char_literal67_tree=null; + RewriteRuleTokenStream stream_104=new RewriteRuleTokenStream(adaptor,"token 104"); + RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); + RewriteRuleTokenStream stream_103=new RewriteRuleTokenStream(adaptor,"token 103"); + RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); + RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); + RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); + RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) - int alt15=4; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + int alt19=7; switch ( input.LA(1) ) { - case 51: + case 53: { - alt15=1; + alt19=1; } break; - case 99: + case 54: { - alt15=2; + alt19=2; } break; - case 83: + case 103: { - alt15=3; + alt19=3; } break; - case 95: + case 104: + { + alt19=4; + } + break; + case 86: + { + alt19=5; + } + break; + case 87: + { + alt19=6; + } + break; + case 99: { - alt15=4; + alt19=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 15, 0, input); + new NoViableAltException("", 19, 0, input); throw nvae; } - switch (alt15) { + switch (alt19) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,51,FOLLOW_51_in_manipulacaoObjetos812); - stream_51.add(a); + a=(Token)match(input,53,FOLLOW_53_in_manipulacaoObjetos867); + stream_53.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos818); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos873); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos820); - tipo54=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos875); + tipo62=tipo(); state._fsp--; - stream_tipo.add(tipo54.getTree()); + stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: 51, tipo, b + // elements: b, 53, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2059,13 +2309,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 97:52: -> ^( 'getfield' $b tipo ) + // 100:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_51.nextNode() + stream_53.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2083,28 +2333,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:8: a= 'getstatic' b= campo tipo { - a=(Token)match(input,99,FOLLOW_99_in_manipulacaoObjetos858); - stream_99.add(a); + a=(Token)match(input,54,FOLLOW_54_in_manipulacaoObjetos899); + stream_54.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos864); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos905); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos866); - tipo55=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos907); + tipo63=tipo(); state._fsp--; - stream_tipo.add(tipo55.getTree()); + stream_tipo.add(tipo63.getTree()); // AST REWRITE - // elements: tipo, 99, b + // elements: b, 54, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2115,13 +2365,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 98:52: -> ^( 'putfield' $b tipo ) + // 101:39: -> ^( 'getstatic' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:42: ^( 'getstatic' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_99.nextNode() + stream_54.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2139,24 +2389,136 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,83,FOLLOW_83_in_manipulacaoObjetos904); - stream_83.add(a); + a=(Token)match(input,103,FOLLOW_103_in_manipulacaoObjetos945); + stream_103.add(a); + + + pushFollow(FOLLOW_campo_in_manipulacaoObjetos951); + b=campo(); + + state._fsp--; + + stream_campo.add(b.getTree()); + + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos953); + tipo64=tipo(); + + state._fsp--; + + stream_tipo.add(tipo64.getTree()); + + // AST REWRITE + // elements: b, tipo, 103 + // token labels: + // rule labels: retval, b + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 102:52: -> ^( 'putfield' $b tipo ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:55: ^( 'putfield' $b tipo ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_103.nextNode() + , root_1); + + adaptor.addChild(root_1, stream_b.nextTree()); + + adaptor.addChild(root_1, stream_tipo.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 4 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:22: a= 'putstatic' b= campo tipo + { + a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos991); + stream_104.add(a); + + + pushFollow(FOLLOW_campo_in_manipulacaoObjetos997); + b=campo(); + + state._fsp--; + + stream_campo.add(b.getTree()); + + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos999); + tipo65=tipo(); + + state._fsp--; + + stream_tipo.add(tipo65.getTree()); + + // AST REWRITE + // elements: 104, tipo, b + // token labels: + // rule labels: retval, b + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 103:53: -> ^( 'putstatic' $b tipo ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:56: ^( 'putstatic' $b tipo ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_104.nextNode() + , root_1); + + adaptor.addChild(root_1, stream_b.nextTree()); + + adaptor.addChild(root_1, stream_tipo.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 5 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + { + a=(Token)match(input,86,FOLLOW_86_in_manipulacaoObjetos1037); + stream_86.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos910); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1043); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal56=(Token)match(input,36,FOLLOW_36_in_manipulacaoObjetos912); - stream_36.add(char_literal56); + char_literal66=(Token)match(input,38,FOLLOW_38_in_manipulacaoObjetos1045); + stream_38.add(char_literal66); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos918); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1051); d=chamadaMetodo(); state._fsp--; @@ -2164,7 +2526,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: d, 83, c + // elements: d, c, 86 // token labels: // rule labels: retval, d, c // token list labels: @@ -2176,13 +2538,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 100:23: -> ^( 'invokespecial' $c $d) + // 105:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_83.nextNode() + stream_86.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2199,22 +2561,83 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; - case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:22: a= 'new' c= classe + case 6 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:22: a= 'invokestatic' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,95,FOLLOW_95_in_manipulacaoObjetos979); - stream_95.add(a); + a=(Token)match(input,87,FOLLOW_87_in_manipulacaoObjetos1112); + stream_87.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos984); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1118); c=classe(); state._fsp--; stream_classe.add(c.getTree()); + char_literal67=(Token)match(input,38,FOLLOW_38_in_manipulacaoObjetos1120); + stream_38.add(char_literal67); + + + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1126); + d=chamadaMetodo(); + + state._fsp--; + + stream_chamadaMetodo.add(d.getTree()); + // AST REWRITE - // elements: 95, c + // elements: c, d, 87 + // token labels: + // rule labels: retval, d, c + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); + RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 107:23: -> ^( 'invokestatic' $c $d) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:26: ^( 'invokestatic' $c $d) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_87.nextNode() + , root_1); + + adaptor.addChild(root_1, stream_c.nextTree()); + + adaptor.addChild(root_1, stream_d.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 7 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'new' c= classe + { + a=(Token)match(input,99,FOLLOW_99_in_manipulacaoObjetos1187); + stream_99.add(a); + + + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1192); + c=classe(); + + state._fsp--; + + stream_classe.add(c.getTree()); + + // AST REWRITE + // elements: c, 99 // token labels: // rule labels: retval, c // token list labels: @@ -2225,13 +2648,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 101:42: -> ^( 'new' $c) + // 108:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:45: ^( 'new' $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_95.nextNode() + stream_99.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2277,7 +2700,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2285,23 +2708,23 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set57=null; + Token set68=null; - BytecodesAST set57_tree=null; + BytecodesAST set68_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set57=(Token)input.LT(1); + set68=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set57) + (BytecodesAST)adaptor.create(set68) ); state.errorRecovery=false; } @@ -2342,7 +2765,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2353,124 +2776,124 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); - RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); - RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); - RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); - RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); - RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); + RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); + RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); + RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); + RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); + RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt16=7; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + int alt20=7; switch ( input.LA(1) ) { - case 53: + case 56: { - alt16=1; + alt20=1; } break; - case 92: + case 96: { - alt16=2; + alt20=2; } break; - case 81: + case 84: { - alt16=3; + alt20=3; } break; - case 62: + case 65: { - alt16=4; + alt20=4; } break; - case 85: + case 89: { - alt16=5; + alt20=5; } break; - case 75: + case 78: { - alt16=6; + alt20=6; } break; - case 82: + case 85: { - alt16=7; + alt20=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + new NoViableAltException("", 20, 0, input); throw nvae; } - switch (alt16) { + switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:16: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:16: a= 'iadd' { - a=(Token)match(input,53,FOLLOW_53_in_aritmetica1062); - stream_53.add(a); + a=(Token)match(input,56,FOLLOW_56_in_aritmetica1270); + stream_56.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:19: a= 'isub' { - a=(Token)match(input,92,FOLLOW_92_in_aritmetica1086); - stream_92.add(a); + a=(Token)match(input,96,FOLLOW_96_in_aritmetica1294); + stream_96.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:19: a= 'imul' { - a=(Token)match(input,81,FOLLOW_81_in_aritmetica1110); - stream_81.add(a); + a=(Token)match(input,84,FOLLOW_84_in_aritmetica1318); + stream_84.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:19: a= 'idiv' { - a=(Token)match(input,62,FOLLOW_62_in_aritmetica1134); - stream_62.add(a); + a=(Token)match(input,65,FOLLOW_65_in_aritmetica1342); + stream_65.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:19: a= 'irem' { - a=(Token)match(input,85,FOLLOW_85_in_aritmetica1158); - stream_85.add(a); + a=(Token)match(input,89,FOLLOW_89_in_aritmetica1366); + stream_89.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:19: a= 'iinc' { - a=(Token)match(input,75,FOLLOW_75_in_aritmetica1182); - stream_75.add(a); + a=(Token)match(input,78,FOLLOW_78_in_aritmetica1390); + stream_78.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:19: a= 'ineg' { - a=(Token)match(input,82,FOLLOW_82_in_aritmetica1206); - stream_82.add(a); + a=(Token)match(input,85,FOLLOW_85_in_aritmetica1414); + stream_85.add(a); } @@ -2491,9 +2914,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 115:14: -> ^( ARITMETICA $a) + // 122:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2541,7 +2964,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -2552,259 +2975,259 @@ public final AssemblerParser.load_return load() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); - RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); - RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); - RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); - RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); - RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); - RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); + RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); - RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); + RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); + RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); + RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); + RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); + RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); + RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt17=16; - switch ( input.LA(1) ) { - case 61: - { - alt17=1; - } - break; - case 55: - { - alt17=2; - } - break; - case 56: - { - alt17=3; - } - break; - case 57: + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt21=16; + switch ( input.LA(1) ) { + case 64: { - alt17=4; + alt21=1; } break; case 58: { - alt17=5; + alt21=2; } break; case 59: { - alt17=6; + alt21=3; } break; case 60: { - alt17=7; + alt21=4; } break; - case 38: + case 61: { - alt17=8; + alt21=5; } break; - case 77: + case 62: { - alt17=9; + alt21=6; } break; - case 78: + case 63: { - alt17=10; + alt21=7; } break; - case 79: + case 40: { - alt17=11; + alt21=8; } break; case 80: { - alt17=12; + alt21=9; } break; - case 40: + case 81: { - alt17=13; + alt21=10; } break; - case 41: + case 82: + { + alt21=11; + } + break; + case 83: { - alt17=14; + alt21=12; } break; case 42: { - alt17=15; + alt21=13; } break; case 43: { - alt17=16; + alt21=14; + } + break; + case 44: + { + alt21=15; + } + break; + case 45: + { + alt21=16; } break; default: NoViableAltException nvae = - new NoViableAltException("", 17, 0, input); + new NoViableAltException("", 21, 0, input); throw nvae; } - switch (alt17) { + switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:10: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'iconst_m1' { - a=(Token)match(input,61,FOLLOW_61_in_load1280); - stream_61.add(a); + a=(Token)match(input,64,FOLLOW_64_in_load1488); + stream_64.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'iconst_0' { - a=(Token)match(input,55,FOLLOW_55_in_load1298); - stream_55.add(a); + a=(Token)match(input,58,FOLLOW_58_in_load1506); + stream_58.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'iconst_1' { - a=(Token)match(input,56,FOLLOW_56_in_load1316); - stream_56.add(a); + a=(Token)match(input,59,FOLLOW_59_in_load1524); + stream_59.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'iconst_2' { - a=(Token)match(input,57,FOLLOW_57_in_load1334); - stream_57.add(a); + a=(Token)match(input,60,FOLLOW_60_in_load1542); + stream_60.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'iconst_3' { - a=(Token)match(input,58,FOLLOW_58_in_load1352); - stream_58.add(a); + a=(Token)match(input,61,FOLLOW_61_in_load1560); + stream_61.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'iconst_4' { - a=(Token)match(input,59,FOLLOW_59_in_load1370); - stream_59.add(a); + a=(Token)match(input,62,FOLLOW_62_in_load1578); + stream_62.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'iconst_5' { - a=(Token)match(input,60,FOLLOW_60_in_load1388); - stream_60.add(a); + a=(Token)match(input,63,FOLLOW_63_in_load1596); + stream_63.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'aconst_null' { - a=(Token)match(input,38,FOLLOW_38_in_load1406); - stream_38.add(a); + a=(Token)match(input,40,FOLLOW_40_in_load1614); + stream_40.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'iload_0' { - a=(Token)match(input,77,FOLLOW_77_in_load1424); - stream_77.add(a); + a=(Token)match(input,80,FOLLOW_80_in_load1632); + stream_80.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'iload_1' { - a=(Token)match(input,78,FOLLOW_78_in_load1442); - stream_78.add(a); + a=(Token)match(input,81,FOLLOW_81_in_load1650); + stream_81.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'iload_2' { - a=(Token)match(input,79,FOLLOW_79_in_load1460); - stream_79.add(a); + a=(Token)match(input,82,FOLLOW_82_in_load1668); + stream_82.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'iload_3' { - a=(Token)match(input,80,FOLLOW_80_in_load1478); - stream_80.add(a); + a=(Token)match(input,83,FOLLOW_83_in_load1686); + stream_83.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'aload_0' { - a=(Token)match(input,40,FOLLOW_40_in_load1496); - stream_40.add(a); + a=(Token)match(input,42,FOLLOW_42_in_load1704); + stream_42.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'aload_1' { - a=(Token)match(input,41,FOLLOW_41_in_load1514); - stream_41.add(a); + a=(Token)match(input,43,FOLLOW_43_in_load1722); + stream_43.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'aload_2' { - a=(Token)match(input,42,FOLLOW_42_in_load1532); - stream_42.add(a); + a=(Token)match(input,44,FOLLOW_44_in_load1740); + stream_44.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'aload_3' { - a=(Token)match(input,43,FOLLOW_43_in_load1550); - stream_43.add(a); + a=(Token)match(input,45,FOLLOW_45_in_load1758); + stream_45.add(a); } @@ -2825,9 +3248,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 135:8: -> ^( LOAD $a) + // 142:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2875,7 +3298,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -2888,76 +3311,76 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); + RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); + RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); + RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); - RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) - int alt18=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + int alt22=3; switch ( input.LA(1) ) { - case 76: + case 79: { - alt18=1; + alt22=1; } break; - case 94: + case 98: { - alt18=2; + alt22=2; } break; - case 39: + case 41: { - alt18=3; + alt22=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 18, 0, input); + new NoViableAltException("", 22, 0, input); throw nvae; } - switch (alt18) { + switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,76,FOLLOW_76_in_loadint1600); - stream_76.add(a); + a=(Token)match(input,79,FOLLOW_79_in_loadint1808); + stream_79.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1606); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1814); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,94,FOLLOW_94_in_loadint1626); - stream_94.add(a); + a=(Token)match(input,98,FOLLOW_98_in_loadint1834); + stream_98.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1632); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1840); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,39,FOLLOW_39_in_loadint1652); - stream_39.add(a); + a=(Token)match(input,41,FOLLOW_41_in_loadint1860); + stream_41.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1658); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1866); stream_INTEIRO.add(b); @@ -2968,7 +3391,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -2980,9 +3403,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 142:11: -> ^( LOAD $a $b) + // 149:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3032,7 +3455,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -3045,137 +3468,137 @@ public final AssemblerParser.store_return store() throws RecognitionException { BytecodesAST a_tree=null; RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); - RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); - RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); - RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); - RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); - RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); - RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); + RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); + RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); + RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); + RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); + RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); + RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt19=8; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + int alt23=8; switch ( input.LA(1) ) { - case 88: + case 92: { - alt19=1; + alt23=1; } break; - case 89: + case 93: { - alt19=2; + alt23=2; } break; - case 90: + case 94: { - alt19=3; + alt23=3; } break; - case 91: + case 95: { - alt19=4; + alt23=4; } break; - case 46: + case 48: { - alt19=5; + alt23=5; } break; - case 47: + case 49: { - alt19=6; + alt23=6; } break; - case 48: + case 50: { - alt19=7; + alt23=7; } break; - case 49: + case 51: { - alt19=8; + alt23=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 19, 0, input); + new NoViableAltException("", 23, 0, input); throw nvae; } - switch (alt19) { + switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:11: a= 'istore_0' { - a=(Token)match(input,88,FOLLOW_88_in_store1720); - stream_88.add(a); + a=(Token)match(input,92,FOLLOW_92_in_store1928); + stream_92.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:13: a= 'istore_1' { - a=(Token)match(input,89,FOLLOW_89_in_store1738); - stream_89.add(a); + a=(Token)match(input,93,FOLLOW_93_in_store1946); + stream_93.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:13: a= 'istore_2' { - a=(Token)match(input,90,FOLLOW_90_in_store1756); - stream_90.add(a); + a=(Token)match(input,94,FOLLOW_94_in_store1964); + stream_94.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:13: a= 'istore_3' { - a=(Token)match(input,91,FOLLOW_91_in_store1774); - stream_91.add(a); + a=(Token)match(input,95,FOLLOW_95_in_store1982); + stream_95.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: a= 'astore_0' { - a=(Token)match(input,46,FOLLOW_46_in_store1792); - stream_46.add(a); + a=(Token)match(input,48,FOLLOW_48_in_store2000); + stream_48.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:13: a= 'astore_1' { - a=(Token)match(input,47,FOLLOW_47_in_store1810); - stream_47.add(a); + a=(Token)match(input,49,FOLLOW_49_in_store2018); + stream_49.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:13: a= 'astore_2' { - a=(Token)match(input,48,FOLLOW_48_in_store1828); - stream_48.add(a); + a=(Token)match(input,50,FOLLOW_50_in_store2036); + stream_50.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:13: a= 'astore_3' { - a=(Token)match(input,49,FOLLOW_49_in_store1846); - stream_49.add(a); + a=(Token)match(input,51,FOLLOW_51_in_store2054); + stream_51.add(a); } @@ -3196,9 +3619,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 154:9: -> ^( STORE $a) + // 161:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3246,7 +3669,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3259,53 +3682,53 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); + RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) - int alt20=2; - int LA20_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + int alt24=2; + int LA24_0 = input.LA(1); - if ( (LA20_0==87) ) { - alt20=1; + if ( (LA24_0==91) ) { + alt24=1; } - else if ( (LA20_0==45) ) { - alt20=2; + else if ( (LA24_0==47) ) { + alt24=2; } else { NoViableAltException nvae = - new NoViableAltException("", 20, 0, input); + new NoViableAltException("", 24, 0, input); throw nvae; } - switch (alt20) { + switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,87,FOLLOW_87_in_storeint1900); - stream_87.add(a); + a=(Token)match(input,91,FOLLOW_91_in_storeint2108); + stream_91.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1906); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2114); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,45,FOLLOW_45_in_storeint1927); - stream_45.add(a); + a=(Token)match(input,47,FOLLOW_47_in_storeint2135); + stream_47.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint1933); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2141); stream_INTEIRO.add(b); @@ -3328,9 +3751,9 @@ else if ( (LA20_0==45) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 160:12: -> ^( STORE $a $b) + // 167:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3380,7 +3803,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -3391,64 +3814,64 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); - RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); - RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); + RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); + RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); + RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt21=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt25=3; switch ( input.LA(1) ) { - case 54: + case 57: { - alt21=1; + alt25=1; } break; - case 84: + case 88: { - alt21=2; + alt25=2; } break; - case 93: + case 97: { - alt21=3; + alt25=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 21, 0, input); + new NoViableAltException("", 25, 0, input); throw nvae; } - switch (alt21) { + switch (alt25) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:12: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:12: a= 'iand' { - a=(Token)match(input,54,FOLLOW_54_in_logica1993); - stream_54.add(a); + a=(Token)match(input,57,FOLLOW_57_in_logica2201); + stream_57.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'ior' { - a=(Token)match(input,84,FOLLOW_84_in_logica2012); - stream_84.add(a); + a=(Token)match(input,88,FOLLOW_88_in_logica2220); + stream_88.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'ixor' { - a=(Token)match(input,93,FOLLOW_93_in_logica2031); - stream_93.add(a); + a=(Token)match(input,97,FOLLOW_97_in_logica2239); + stream_97.add(a); } @@ -3469,9 +3892,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 167:10: -> ^( LOGICA $a) + // 174:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3519,7 +3942,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -3535,263 +3958,263 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); + RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); - RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); + RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); - RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); - RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); + RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); + RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt22=13; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt26=13; switch ( input.LA(1) ) { - case 69: + case 72: { - alt22=1; + alt26=1; } break; - case 74: + case 77: { - alt22=2; + alt26=2; } break; - case 73: + case 76: { - alt22=3; + alt26=3; } break; - case 70: + case 73: { - alt22=4; + alt26=4; } break; - case 71: + case 74: { - alt22=5; + alt26=5; } break; - case 72: + case 75: { - alt22=6; + alt26=6; } break; - case 63: + case 66: { - alt22=7; + alt26=7; } break; - case 68: + case 71: { - alt22=8; + alt26=8; } break; - case 67: + case 70: { - alt22=9; + alt26=9; } break; - case 64: + case 67: { - alt22=10; + alt26=10; } break; - case 65: + case 68: { - alt22=11; + alt26=11; } break; - case 66: + case 69: { - alt22=12; + alt26=12; } break; - case 52: + case 55: { - alt22=13; + alt26=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 22, 0, input); + new NoViableAltException("", 26, 0, input); throw nvae; } - switch (alt22) { + switch (alt26) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:12: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:12: a= 'ifeq' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2082); - stream_69.add(a); + a=(Token)match(input,72,FOLLOW_72_in_desvio2290); + stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2088); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2296); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:14: a= 'ifne' b= ID { - a=(Token)match(input,74,FOLLOW_74_in_desvio2107); - stream_74.add(a); + a=(Token)match(input,77,FOLLOW_77_in_desvio2315); + stream_77.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2113); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2321); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'iflt' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2132); - stream_73.add(a); + a=(Token)match(input,76,FOLLOW_76_in_desvio2340); + stream_76.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2138); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2346); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'ifge' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2157); - stream_70.add(a); + a=(Token)match(input,73,FOLLOW_73_in_desvio2365); + stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2163); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2371); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'ifgt' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2182); - stream_71.add(a); + a=(Token)match(input,74,FOLLOW_74_in_desvio2390); + stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2188); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2396); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ifle' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2207); - stream_72.add(a); + a=(Token)match(input,75,FOLLOW_75_in_desvio2415); + stream_75.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2213); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2421); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,63,FOLLOW_63_in_desvio2232); - stream_63.add(a); + a=(Token)match(input,66,FOLLOW_66_in_desvio2440); + stream_66.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2238); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2446); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2257); - stream_68.add(a); + a=(Token)match(input,71,FOLLOW_71_in_desvio2465); + stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2263); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2471); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,67,FOLLOW_67_in_desvio2282); - stream_67.add(a); + a=(Token)match(input,70,FOLLOW_70_in_desvio2490); + stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2288); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2496); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,64,FOLLOW_64_in_desvio2307); - stream_64.add(a); + a=(Token)match(input,67,FOLLOW_67_in_desvio2515); + stream_67.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2313); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2521); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,65,FOLLOW_65_in_desvio2332); - stream_65.add(a); + a=(Token)match(input,68,FOLLOW_68_in_desvio2540); + stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2338); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2546); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'if_icmple' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio2357); - stream_66.add(a); + a=(Token)match(input,69,FOLLOW_69_in_desvio2565); + stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2363); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2571); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'goto' b= ID { - a=(Token)match(input,52,FOLLOW_52_in_desvio2382); - stream_52.add(a); + a=(Token)match(input,55,FOLLOW_55_in_desvio2590); + stream_55.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2388); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2596); stream_ID.add(b); @@ -3802,7 +4225,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3814,9 +4237,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 184:10: -> ^( DESVIO $a $b) + // 191:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3866,7 +4289,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -3877,64 +4300,64 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); - RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); - RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); + RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); + RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102"); + RewriteRuleTokenStream stream_101=new RewriteRuleTokenStream(adaptor,"token 101"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) - int alt23=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + int alt27=3; switch ( input.LA(1) ) { - case 97: + case 101: { - alt23=1; + alt27=1; } break; - case 98: + case 102: { - alt23=2; + alt27=2; } break; - case 50: + case 52: { - alt23=3; + alt27=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 23, 0, input); + new NoViableAltException("", 27, 0, input); throw nvae; } - switch (alt23) { + switch (alt27) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:11: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:11: a= 'pop' { - a=(Token)match(input,97,FOLLOW_97_in_pilha2449); - stream_97.add(a); + a=(Token)match(input,101,FOLLOW_101_in_pilha2657); + stream_101.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:13: a= 'pop2' { - a=(Token)match(input,98,FOLLOW_98_in_pilha2467); - stream_98.add(a); + a=(Token)match(input,102,FOLLOW_102_in_pilha2675); + stream_102.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:13: a= 'dup' { - a=(Token)match(input,50,FOLLOW_50_in_pilha2485); - stream_50.add(a); + a=(Token)match(input,52,FOLLOW_52_in_pilha2693); + stream_52.add(a); } @@ -3955,9 +4378,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 191:9: -> ^( PILHA $a) + // 198:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4006,7 +4429,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -4014,37 +4437,37 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal58=null; + Token char_literal69=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal58_tree=null; + BytecodesAST char_literal69_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:8: (cls+= ID '/' )* - loop24: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:8: (cls+= ID '/' )* + loop28: do { - int alt24=2; - int LA24_0 = input.LA(1); + int alt28=2; + int LA28_0 = input.LA(1); - if ( (LA24_0==ID) ) { - int LA24_1 = input.LA(2); + if ( (LA28_0==ID) ) { + int LA28_1 = input.LA(2); - if ( (LA24_1==36) ) { - int LA24_2 = input.LA(3); + if ( (LA28_1==38) ) { + int LA28_2 = input.LA(3); - if ( (LA24_2==ID) ) { - alt24=1; + if ( (LA28_2==ID) ) { + alt28=1; } @@ -4054,11 +4477,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } - switch (alt24) { + switch (alt28) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2551); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2759); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4068,26 +4491,26 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal58=(Token)match(input,36,FOLLOW_36_in_classe2553); - char_literal58_tree = - (BytecodesAST)adaptor.create(char_literal58) + char_literal69=(Token)match(input,38,FOLLOW_38_in_classe2761); + char_literal69_tree = + (BytecodesAST)adaptor.create(char_literal69) ; - adaptor.addChild(root_0, char_literal58_tree); + adaptor.addChild(root_0, char_literal69_tree); } break; default : - break loop24; + break loop28; } } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:25: (cls+= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:26: cls+= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:25: (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2562); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2770); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4136,7 +4559,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -4158,27 +4581,27 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni retval.tipoRetorno = ""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:207:6: (n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:207:8: n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:6: (n= INIT par= '()' tip= VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: n= INIT par= '()' tip= VOID { root_0 = (BytecodesAST)adaptor.nil(); - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2602); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2810); n_tree = (BytecodesAST)adaptor.create(n) ; adaptor.addChild(root_0, n_tree); - par=(Token)match(input,28,FOLLOW_28_in_chamadaMetodo2608); + par=(Token)match(input,29,FOLLOW_29_in_chamadaMetodo2816); par_tree = (BytecodesAST)adaptor.create(par) ; adaptor.addChild(root_0, par_tree); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2614); + tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2822); tip_tree = (BytecodesAST)adaptor.create(tip) ; @@ -4224,7 +4647,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -4233,12 +4656,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal59=null; + Token char_literal70=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal59_tree=null; + BytecodesAST char_literal70_tree=null; BytecodesAST cls_tree=null; @@ -4246,35 +4669,35 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:8: (cls+= ID '/' )+ - int cnt25=0; - loop25: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: (cls+= ID '/' )+ + int cnt29=0; + loop29: do { - int alt25=2; - int LA25_0 = input.LA(1); + int alt29=2; + int LA29_0 = input.LA(1); - if ( (LA25_0==ID) ) { - int LA25_1 = input.LA(2); + if ( (LA29_0==ID) ) { + int LA29_1 = input.LA(2); - if ( (LA25_1==36) ) { - alt25=1; + if ( (LA29_1==38) ) { + alt29=1; } } - switch (alt25) { + switch (alt29) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2654); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo2862); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4284,27 +4707,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal59=(Token)match(input,36,FOLLOW_36_in_campo2656); - char_literal59_tree = - (BytecodesAST)adaptor.create(char_literal59) + char_literal70=(Token)match(input,38,FOLLOW_38_in_campo2864); + char_literal70_tree = + (BytecodesAST)adaptor.create(char_literal70) ; - adaptor.addChild(root_0, char_literal59_tree); + adaptor.addChild(root_0, char_literal70_tree); } break; default : - if ( cnt25 >= 1 ) break loop25; + if ( cnt29 >= 1 ) break loop29; EarlyExitException eee = - new EarlyExitException(25, input); + new EarlyExitException(29, input); throw eee; } - cnt25++; + cnt29++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2664); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2872); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -4341,155 +4764,173 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { - public static final BitSet FOLLOW_instrucao_in_programa127 = new BitSet(new long[]{0xFFFFFFC040080402L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_instrucao155 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao169 = new BitSet(new long[]{0x0000000080000002L}); - public static final BitSet FOLLOW_31_in_instrucao172 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_operacao194 = new BitSet(new long[]{0xFFFFFFC000080000L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_comando_in_operacao196 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_comando_in_operacao200 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label222 = new BitSet(new long[]{0x0000002000000000L}); - public static final BitSet FOLLOW_37_in_label224 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_comando242 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_aritmetica_in_comando260 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_load_in_comando278 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_loadint_in_comando296 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_store_in_comando314 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_storeint_in_comando332 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_desvio_in_comando350 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_logica_in_comando368 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_pilha_in_comando386 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_retorno_in_comando404 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_96_in_comando422 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_comando438 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_definicaoClasse464 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse466 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse468 = new BitSet(new long[]{0x0000000E00000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse471 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse473 = new BitSet(new long[]{0x0000000600000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse478 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse480 = new BitSet(new long[]{0x0000000600000002L}); - public static final BitSet FOLLOW_35_in_superClasse541 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse543 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_membroClasse564 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_membroClasse566 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse568 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_membroClasse586 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INIT_in_membroClasse588 = new BitSet(new long[]{0x0000000019000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse591 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_27_in_membroClasse595 = new BitSet(new long[]{0x0000000011000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse597 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_29_in_membroClasse599 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse602 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse604 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse606 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_32_in_membroClasse609 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_membroClasse635 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_membroClasse637 = new BitSet(new long[]{0x0000000019000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse640 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_27_in_membroClasse644 = new BitSet(new long[]{0x0000000011000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse646 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_29_in_membroClasse648 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse655 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse657 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse659 = new BitSet(new long[]{0xFFFFFFC100080400L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_32_in_membroClasse662 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_28_in_parametros708 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_parametros735 = new BitSet(new long[]{0x0000000001000402L}); - public static final BitSet FOLLOW_TIPO_REF_in_parametros750 = new BitSet(new long[]{0x0000000001000402L}); - public static final BitSet FOLLOW_51_in_manipulacaoObjetos812 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos818 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos820 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_99_in_manipulacaoObjetos858 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos864 = new BitSet(new long[]{0x0000000003001000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos866 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_manipulacaoObjetos904 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos910 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_36_in_manipulacaoObjetos912 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos918 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_manipulacaoObjetos979 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos984 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_aritmetica1062 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_aritmetica1086 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_aritmetica1110 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_aritmetica1134 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_aritmetica1158 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_aritmetica1182 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_aritmetica1206 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load1280 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_load1298 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_load1316 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_load1334 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load1352 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load1370 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load1388 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_load1406 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_load1424 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_load1442 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_load1460 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_load1478 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load1496 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_load1514 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load1532 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load1550 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_loadint1600 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1606 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_loadint1626 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1632 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_loadint1652 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1658 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_store1720 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_store1738 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_store1756 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_store1774 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_store1792 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_store1810 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_store1828 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_store1846 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_storeint1900 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1906 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_storeint1927 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint1933 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_logica1993 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_logica2012 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_logica2031 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2082 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2088 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_desvio2107 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2113 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2132 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2138 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2157 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2163 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2182 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2188 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2207 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2213 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_desvio2232 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2238 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2257 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2263 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_desvio2282 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2288 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_desvio2307 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2313 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_desvio2332 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2338 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio2357 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2363 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_desvio2382 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2388 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_pilha2449 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_pilha2467 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_pilha2485 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2551 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_36_in_classe2553 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_classe2562 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2602 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_28_in_chamadaMetodo2608 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2614 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2654 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_36_in_campo2656 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_campo2664 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_programa132 = new BitSet(new long[]{0xFFFFFF0080100402L,0x000003FFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_instrucao160 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao174 = new BitSet(new long[]{0x0000000100000002L}); + public static final BitSet FOLLOW_32_in_instrucao177 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_operacao199 = new BitSet(new long[]{0xFFFFFF0000100000L,0x000003FFFFFFFFFFL}); + public static final BitSet FOLLOW_comando_in_operacao201 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_operacao205 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label227 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_39_in_label229 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_comando247 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_aritmetica_in_comando265 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_load_in_comando283 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_loadint_in_comando301 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_store_in_comando319 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_storeint_in_comando337 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_desvio_in_comando355 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_logica_in_comando373 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_pilha_in_comando391 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_retorno_in_comando409 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_100_in_comando427 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando443 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_definicaoClasse469 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse471 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse473 = new BitSet(new long[]{0x0000003400000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse476 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse478 = new BitSet(new long[]{0x0000001400000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse483 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse485 = new BitSet(new long[]{0x0000001400000002L}); + public static final BitSet FOLLOW_37_in_superClasse546 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse548 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_membroClasse569 = new BitSet(new long[]{0x0000000000000400L,0x0000040000000000L}); + public static final BitSet FOLLOW_106_in_membroClasse571 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_membroClasse574 = new BitSet(new long[]{0x0000000006001000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse576 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_membroClasse594 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_INIT_in_membroClasse596 = new BitSet(new long[]{0x0000000032000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse599 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_28_in_membroClasse603 = new BitSet(new long[]{0x0000000022000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse605 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_30_in_membroClasse607 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse610 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse612 = new BitSet(new long[]{0xFFFFFF0A00100400L,0x000003FFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse615 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse617 = new BitSet(new long[]{0xFFFFFF0200100400L,0x000003FFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse621 = new BitSet(new long[]{0xFFFFFF0200100400L,0x000003FFFFFFFFFFL}); + public static final BitSet FOLLOW_33_in_membroClasse624 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_membroClasse653 = new BitSet(new long[]{0x0000000000000400L,0x0000040000000000L}); + public static final BitSet FOLLOW_106_in_membroClasse655 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_membroClasse658 = new BitSet(new long[]{0x0000000032000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse661 = new BitSet(new long[]{0x0000000006001000L}); + public static final BitSet FOLLOW_28_in_membroClasse665 = new BitSet(new long[]{0x0000000022000400L}); + public static final BitSet FOLLOW_parametros_in_membroClasse667 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_30_in_membroClasse669 = new BitSet(new long[]{0x0000000006001000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse676 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse678 = new BitSet(new long[]{0xFFFFFF0A00100400L,0x000003FFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse681 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse683 = new BitSet(new long[]{0xFFFFFF0200100400L,0x000003FFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse687 = new BitSet(new long[]{0xFFFFFF0200100400L,0x000003FFFFFFFFFFL}); + public static final BitSet FOLLOW_33_in_membroClasse690 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_limite739 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_limite741 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_parametros763 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_parametros790 = new BitSet(new long[]{0x0000000002000402L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros805 = new BitSet(new long[]{0x0000000002000402L}); + public static final BitSet FOLLOW_53_in_manipulacaoObjetos867 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos873 = new BitSet(new long[]{0x0000000006001000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos875 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_manipulacaoObjetos899 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos905 = new BitSet(new long[]{0x0000000006001000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos907 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_103_in_manipulacaoObjetos945 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos951 = new BitSet(new long[]{0x0000000006001000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos953 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_104_in_manipulacaoObjetos991 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos997 = new BitSet(new long[]{0x0000000006001000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos999 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_manipulacaoObjetos1037 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1043 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_38_in_manipulacaoObjetos1045 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1051 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_manipulacaoObjetos1112 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1118 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_38_in_manipulacaoObjetos1120 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1126 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_manipulacaoObjetos1187 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1192 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_aritmetica1270 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_aritmetica1294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_aritmetica1318 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_aritmetica1342 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_aritmetica1366 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_aritmetica1390 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_aritmetica1414 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_load1488 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_load1506 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_load1524 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load1542 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load1560 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load1578 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load1596 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_load1614 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_load1632 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_load1650 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_load1668 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_load1686 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load1704 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_load1722 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load1740 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_load1758 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_loadint1808 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1814 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_loadint1834 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_loadint1860 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1866 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_store1928 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_store1946 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_store1964 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_store1982 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_store2000 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_store2018 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_store2036 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_store2054 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_storeint2108 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2114 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_storeint2135 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2141 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_logica2201 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_logica2220 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_logica2239 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2290 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2296 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_desvio2315 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2321 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_desvio2340 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2346 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2365 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2371 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2390 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2396 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_desvio2415 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2421 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_desvio2440 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2446 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2465 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2471 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2490 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2496 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_desvio2515 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2521 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2540 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2546 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2565 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2571 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_desvio2590 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_desvio2596 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_101_in_pilha2657 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_102_in_pilha2675 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_pilha2693 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2759 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_38_in_classe2761 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_classe2770 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2810 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_29_in_chamadaMetodo2816 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_VOID_in_chamadaMetodo2822 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_campo2862 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_38_in_campo2864 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_ID_in_campo2872 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index d8a8dc2..f5fbb63 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-06 11:43:12 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-08 17:02:15 package br.ufpb.iged.interpretador.parser; @@ -22,11 +22,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__27=27; public static final int T__28=28; public static final int T__29=29; public static final int T__30=30; @@ -100,6 +99,12 @@ public class Def extends TreeFilter { public static final int T__98=98; public static final int T__99=99; public static final int T__100=100; + public static final int T__101=101; + public static final int T__102=102; + public static final int T__103=103; + public static final int T__104=104; + public static final int T__105=105; + public static final int T__106=106; public static final int ARITMETICA=4; public static final int BODY=5; public static final int CONSTR_DECL=6; @@ -111,18 +116,19 @@ public class Def extends TreeFilter { public static final int INT=12; public static final int INTEIRO=13; public static final int LABEL=14; - public static final int LOAD=15; - public static final int LOGICA=16; - public static final int MEMBRO_CLASSE=17; - public static final int METHOD_DECL=18; - public static final int NEWLINE=19; - public static final int NULL=20; - public static final int PARAMS=21; - public static final int PILHA=22; - public static final int STORE=23; - public static final int TIPO_REF=24; - public static final int VOID=25; - public static final int WS=26; + public static final int LIMIT=15; + public static final int LOAD=16; + public static final int LOGICA=17; + public static final int MEMBRO_CLASSE=18; + public static final int METHOD_DECL=19; + public static final int NEWLINE=20; + public static final int NULL=21; + public static final int PARAMS=22; + public static final int PILHA=23; + public static final int STORE=24; + public static final int TIPO_REF=25; + public static final int VOID=26; + public static final int WS=27; // delegates public TreeFilter[] getDelegates() { @@ -175,7 +181,7 @@ public final void topdown() throws RecognitionException { alt1=3; } break; - case 30: + case 31: { alt1=4; } @@ -305,7 +311,7 @@ public final void bottomup() throws RecognitionException { alt2=3; } break; - case 30: + case 31: { alt2=4; } @@ -391,7 +397,7 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,30,FOLLOW_30_in_entraNaClasse197); if (state.failed) return ; + match(input,31,FOLLOW_31_in_entraNaClasse197); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse201); if (state.failed) return ; @@ -412,7 +418,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 100)) ) { + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 106)) ) { alt3=1; } } @@ -521,13 +527,14 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { + BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:4: ^( CONSTR_DECL INIT ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor280); if (state.failed) return ; @@ -539,15 +546,134 @@ public final void entraNoConstrutor() throws RecognitionException { loop4: do { int alt4=2; - int LA4_0 = input.LA(1); + switch ( input.LA(1) ) { + case LIMIT: + { + int LA4_1 = input.LA(2); + + if ( (true) ) { + alt4=1; + } + else if ( (true) ) { + alt4=2; + } + - if ( ((LA4_0 >= ARITMETICA && LA4_0 <= 100)) ) { + } + break; + case ARITMETICA: + case BODY: + case CONSTR_DECL: + case DESVIO: + case EXTENDS: + case FIELD_DECL: + case ID: + case INIT: + case INT: + case INTEIRO: + case LABEL: + case LOAD: + case LOGICA: + case MEMBRO_CLASSE: + case METHOD_DECL: + case NEWLINE: + case NULL: + case PARAMS: + case PILHA: + case STORE: + case TIPO_REF: + case VOID: + case WS: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + { alt4=1; - } - else if ( (LA4_0==UP) ) { + } + break; + case UP: + { alt4=2; - } + } + break; + } switch (alt4) { case 1 : @@ -569,6 +695,31 @@ else if ( (LA4_0==UP) ) { } while (true); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:26: ( ^( LIMIT lim= INTEIRO ) )? + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==LIMIT) ) { + alt5=1; + } + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:27: ^( LIMIT lim= INTEIRO ) + { + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor289); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor293); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + } + break; + + } + + match(input, Token.UP, null); if (state.failed) return ; @@ -576,6 +727,8 @@ else if ( (LA4_0==UP) ) { System.out.println("linha "+INIT2.getLine()+ ": def method init "); SimboloMetodo metodo = new SimboloMetodo((INIT2!=null?INIT2.getText():null), null, escopoAtual); + if (lim != null) + metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.def = INIT2; INIT2.simbolo = metodo; escopoAtual.definir(metodo); @@ -600,42 +753,162 @@ else if ( (LA4_0==UP) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:86:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { + BytecodesAST lim=null; BytecodesAST ID3=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo302); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo313); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo304); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo315); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: ( . )+ - int cnt5=0; - loop5: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:32: ( . )+ + int cnt6=0; + loop6: do { - int alt5=2; - int LA5_0 = input.LA(1); + int alt6=2; + switch ( input.LA(1) ) { + case LIMIT: + { + int LA6_1 = input.LA(2); - if ( ((LA5_0 >= ARITMETICA && LA5_0 <= 100)) ) { - alt5=1; - } - else if ( (LA5_0==UP) ) { - alt5=2; - } + if ( (true) ) { + alt6=1; + } + else if ( (true) ) { + alt6=2; + } - switch (alt5) { + } + break; + case ARITMETICA: + case BODY: + case CONSTR_DECL: + case DESVIO: + case EXTENDS: + case FIELD_DECL: + case ID: + case INIT: + case INT: + case INTEIRO: + case LABEL: + case LOAD: + case LOGICA: + case MEMBRO_CLASSE: + case METHOD_DECL: + case NEWLINE: + case NULL: + case PARAMS: + case PILHA: + case STORE: + case TIPO_REF: + case VOID: + case WS: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + { + alt6=1; + } + break; + case UP: + { + alt6=2; + } + break; + + } + + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:87:32: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:32: . { matchAny(input); if (state.failed) return ; @@ -643,16 +916,41 @@ else if ( (LA5_0==UP) ) { break; default : - if ( cnt5 >= 1 ) break loop5; + if ( cnt6 >= 1 ) break loop6; if (state.backtracking>0) {state.failed=true; return ;} EarlyExitException eee = - new EarlyExitException(5, input); + new EarlyExitException(6, input); throw eee; } - cnt5++; + cnt6++; } while (true); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:35: ( ^( LIMIT lim= INTEIRO ) )? + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==LIMIT) ) { + alt7=1; + } + switch (alt7) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:36: ^( LIMIT lim= INTEIRO ) + { + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo327); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo331); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + } + break; + + } + + match(input, Token.UP, null); if (state.failed) return ; @@ -660,6 +958,8 @@ else if ( (LA5_0==UP) ) { System.out.println("linha "+ID3.getLine()+ ": def method "+(ID3!=null?ID3.getText():null)); SimboloMetodo metodo = new SimboloMetodo((ID3!=null?ID3.getText():null), null, escopoAtual); + if (lim != null) + metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno(tipoRet.getText()); metodo.def = ID3; ID3.simbolo = metodo; @@ -685,15 +985,15 @@ else if ( (LA5_0==UP) ) { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:100:1: parametros : ^( PARAMS pars= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:104:1: parametros : ^( PARAMS pars= . ) ; public final void parametros() throws RecognitionException { BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:101:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:101:4: ^( PARAMS pars= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:105:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:105:4: ^( PARAMS pars= . ) { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros329); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros351); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; pars=(BytecodesAST)input.LT(1); @@ -730,13 +1030,13 @@ public final void parametros() throws RecognitionException { // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo357); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo379); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -758,13 +1058,13 @@ public final void entraNoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:120:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:121:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:121:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo383); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo405); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -789,13 +1089,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:15: '.class' { - match(input,30,FOLLOW_30_in_saiDaClasse410); if (state.failed) return ; + match(input,31,FOLLOW_31_in_saiDaClasse432); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -820,13 +1120,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:135:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:132:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:132:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:136:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:136:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo460); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo482); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -852,13 +1152,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:140:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:144:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:141:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:141:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor476); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor498); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); @@ -895,21 +1195,25 @@ public final void saiDoConstrutor() throws RecognitionException { public static final BitSet FOLLOW_saiDoMetodo_in_bottomup139 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup152 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDaClasse_in_bottomup165 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_entraNaClasse197 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse201 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_31_in_entraNaClasse197 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse201 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse205 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse209 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel243 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel245 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel245 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor280 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor282 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo302 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo304 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_PARAMS_in_parametros329 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo357 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo383 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_saiDaClasse410 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo460 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor476 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor282 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor289 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor293 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo313 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo315 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo327 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo331 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_PARAMS_in_parametros351 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo379 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo405 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_saiDaClasse432 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo482 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor498 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index c1071fa..1aaf0ab 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,4 +1,3 @@ -T__27=27 T__28=28 T__29=29 T__30=30 @@ -72,6 +71,12 @@ T__97=97 T__98=98 T__99=99 T__100=100 +T__101=101 +T__102=102 +T__103=103 +T__104=104 +T__105=105 +T__106=106 ARITMETICA=4 BODY=5 CONSTR_DECL=6 @@ -83,89 +88,95 @@ INIT=11 INT=12 INTEIRO=13 LABEL=14 -LOAD=15 -LOGICA=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 -PARAMS=21 -PILHA=22 -STORE=23 -TIPO_REF=24 -VOID=25 -WS=26 -'('=27 -'()'=28 -')'=29 -'.class'=30 -'.end class'=31 -'.end method'=32 -'.field'=33 -'.method'=34 -'.super'=35 -'/'=36 -':'=37 -'aconst_null'=38 -'aload'=39 -'aload_0'=40 -'aload_1'=41 -'aload_2'=42 -'aload_3'=43 -'areturn'=44 -'astore'=45 -'astore_0'=46 -'astore_1'=47 -'astore_2'=48 -'astore_3'=49 -'dup'=50 -'getfield'=51 -'goto'=52 -'iadd'=53 -'iand'=54 -'iconst_0'=55 -'iconst_1'=56 -'iconst_2'=57 -'iconst_3'=58 -'iconst_4'=59 -'iconst_5'=60 -'iconst_m1'=61 -'idiv'=62 -'if_icmpeq'=63 -'if_icmpge'=64 -'if_icmpgt'=65 -'if_icmple'=66 -'if_icmplt'=67 -'if_icmpne'=68 -'ifeq'=69 -'ifge'=70 -'ifgt'=71 -'ifle'=72 -'iflt'=73 -'ifne'=74 -'iinc'=75 -'iload'=76 -'iload_0'=77 -'iload_1'=78 -'iload_2'=79 -'iload_3'=80 -'imul'=81 -'ineg'=82 -'invokespecial'=83 -'ior'=84 -'irem'=85 -'ireturn'=86 -'istore'=87 -'istore_0'=88 -'istore_1'=89 -'istore_2'=90 -'istore_3'=91 -'isub'=92 -'ixor'=93 -'ldc'=94 -'new'=95 -'nop'=96 -'pop'=97 -'pop2'=98 -'putfield'=99 -'return'=100 +LIMIT=15 +LOAD=16 +LOGICA=17 +MEMBRO_CLASSE=18 +METHOD_DECL=19 +NEWLINE=20 +NULL=21 +PARAMS=22 +PILHA=23 +STORE=24 +TIPO_REF=25 +VOID=26 +WS=27 +'('=28 +'()'=29 +')'=30 +'.class'=31 +'.end class'=32 +'.end method'=33 +'.field'=34 +'.limit locals'=35 +'.method'=36 +'.super'=37 +'/'=38 +':'=39 +'aconst_null'=40 +'aload'=41 +'aload_0'=42 +'aload_1'=43 +'aload_2'=44 +'aload_3'=45 +'areturn'=46 +'astore'=47 +'astore_0'=48 +'astore_1'=49 +'astore_2'=50 +'astore_3'=51 +'dup'=52 +'getfield'=53 +'getstatic'=54 +'goto'=55 +'iadd'=56 +'iand'=57 +'iconst_0'=58 +'iconst_1'=59 +'iconst_2'=60 +'iconst_3'=61 +'iconst_4'=62 +'iconst_5'=63 +'iconst_m1'=64 +'idiv'=65 +'if_icmpeq'=66 +'if_icmpge'=67 +'if_icmpgt'=68 +'if_icmple'=69 +'if_icmplt'=70 +'if_icmpne'=71 +'ifeq'=72 +'ifge'=73 +'ifgt'=74 +'ifle'=75 +'iflt'=76 +'ifne'=77 +'iinc'=78 +'iload'=79 +'iload_0'=80 +'iload_1'=81 +'iload_2'=82 +'iload_3'=83 +'imul'=84 +'ineg'=85 +'invokespecial'=86 +'invokestatic'=87 +'ior'=88 +'irem'=89 +'ireturn'=90 +'istore'=91 +'istore_0'=92 +'istore_1'=93 +'istore_2'=94 +'istore_3'=95 +'isub'=96 +'ixor'=97 +'ldc'=98 +'new'=99 +'nop'=100 +'pop'=101 +'pop2'=102 +'putfield'=103 +'putstatic'=104 +'return'=105 +'static'=106 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 4eb2087..2ec54a6 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-06 11:43:12 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-08 17:02:15 package br.ufpb.iged.interpretador.parser; @@ -8,7 +8,6 @@ import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; import br.ufpb.iged.interpretador.symboltable.classes.Tipo; import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; -import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; @@ -25,11 +24,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'return'" + "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__27=27; public static final int T__28=28; public static final int T__29=29; public static final int T__30=30; @@ -103,6 +101,12 @@ public class Ref extends TreeFilter { public static final int T__98=98; public static final int T__99=99; public static final int T__100=100; + public static final int T__101=101; + public static final int T__102=102; + public static final int T__103=103; + public static final int T__104=104; + public static final int T__105=105; + public static final int T__106=106; public static final int ARITMETICA=4; public static final int BODY=5; public static final int CONSTR_DECL=6; @@ -114,18 +118,19 @@ public class Ref extends TreeFilter { public static final int INT=12; public static final int INTEIRO=13; public static final int LABEL=14; - public static final int LOAD=15; - public static final int LOGICA=16; - public static final int MEMBRO_CLASSE=17; - public static final int METHOD_DECL=18; - public static final int NEWLINE=19; - public static final int NULL=20; - public static final int PARAMS=21; - public static final int PILHA=22; - public static final int STORE=23; - public static final int TIPO_REF=24; - public static final int VOID=25; - public static final int WS=26; + public static final int LIMIT=15; + public static final int LOAD=16; + public static final int LOGICA=17; + public static final int MEMBRO_CLASSE=18; + public static final int METHOD_DECL=19; + public static final int NEWLINE=20; + public static final int NULL=21; + public static final int PARAMS=22; + public static final int PILHA=23; + public static final int STORE=24; + public static final int TIPO_REF=25; + public static final int VOID=26; + public static final int WS=27; // delegates public TreeFilter[] getDelegates() { @@ -191,9 +196,9 @@ private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) } - private void chamarConstrutorDefault(String nomeClasse) { + private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo) { - assembler.escreverOpcode("invokespecial"); + assembler.escreverOpcode(instrucao); SimboloClasse simboloClasse = (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); @@ -201,9 +206,17 @@ private void chamarConstrutorDefault(String nomeClasse) { if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); + + SimboloMetodo simboloMetodo = + (SimboloMetodo) simboloClasse.resolver(nomeMetodo); - BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse)); + if (!simboloClasse.getConstantPool().contains(simboloMetodo)) + + simboloClasse.getConstantPool().add(simboloMetodo); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + simboloClasse.getConstantPool().indexOf(simboloMetodo)); } @@ -227,15 +240,15 @@ private void newClass(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:102:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:103:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) - int alt1=18; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) + int alt1=21; alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:103:9: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:9: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown61); entraNaClasse(); @@ -246,7 +259,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:104:9: entraNoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:112:9: entraNoMetodo { pushFollow(FOLLOW_entraNoMetodo_in_topdown71); entraNoMetodo(); @@ -257,7 +270,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:105:9: entraNoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:113:9: entraNoConstrutor { pushFollow(FOLLOW_entraNoConstrutor_in_topdown81); entraNoConstrutor(); @@ -268,7 +281,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:106:9: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:114:9: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown91); declaracaoVariavel(); @@ -279,7 +292,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:107:9: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:115:9: getfield { pushFollow(FOLLOW_getfield_in_topdown101); getfield(); @@ -290,10 +303,10 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:108:9: putfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:116:9: getstatic { - pushFollow(FOLLOW_putfield_in_topdown111); - putfield(); + pushFollow(FOLLOW_getstatic_in_topdown111); + getstatic(); state._fsp--; if (state.failed) return ; @@ -301,10 +314,10 @@ public final void topdown() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:109:9: invokespecial + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:9: putfield { - pushFollow(FOLLOW_invokespecial_in_topdown121); - invokespecial(); + pushFollow(FOLLOW_putfield_in_topdown121); + putfield(); state._fsp--; if (state.failed) return ; @@ -312,10 +325,10 @@ public final void topdown() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:9: novaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: putstatic { - pushFollow(FOLLOW_novaClasse_in_topdown131); - novaClasse(); + pushFollow(FOLLOW_putstatic_in_topdown131); + putstatic(); state._fsp--; if (state.failed) return ; @@ -323,10 +336,10 @@ public final void topdown() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:9: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:9: invokespecial { - pushFollow(FOLLOW_aritmetica_in_topdown141); - aritmetica(); + pushFollow(FOLLOW_invokespecial_in_topdown141); + invokespecial(); state._fsp--; if (state.failed) return ; @@ -334,10 +347,10 @@ public final void topdown() throws RecognitionException { } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:112:9: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:120:9: invokestatic { - pushFollow(FOLLOW_load_in_topdown151); - load(); + pushFollow(FOLLOW_invokestatic_in_topdown151); + invokestatic(); state._fsp--; if (state.failed) return ; @@ -345,10 +358,10 @@ public final void topdown() throws RecognitionException { } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:113:9: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:9: novaClasse { - pushFollow(FOLLOW_loadint_in_topdown161); - loadint(); + pushFollow(FOLLOW_novaClasse_in_topdown161); + novaClasse(); state._fsp--; if (state.failed) return ; @@ -356,10 +369,10 @@ public final void topdown() throws RecognitionException { } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:114:9: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: aritmetica { - pushFollow(FOLLOW_store_in_topdown171); - store(); + pushFollow(FOLLOW_aritmetica_in_topdown171); + aritmetica(); state._fsp--; if (state.failed) return ; @@ -367,10 +380,10 @@ public final void topdown() throws RecognitionException { } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:115:9: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: load { - pushFollow(FOLLOW_storeint_in_topdown181); - storeint(); + pushFollow(FOLLOW_load_in_topdown181); + load(); state._fsp--; if (state.failed) return ; @@ -378,10 +391,10 @@ public final void topdown() throws RecognitionException { } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:116:9: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: loadint { - pushFollow(FOLLOW_desvio_in_topdown191); - desvio(); + pushFollow(FOLLOW_loadint_in_topdown191); + loadint(); state._fsp--; if (state.failed) return ; @@ -389,10 +402,10 @@ public final void topdown() throws RecognitionException { } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:9: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: store { - pushFollow(FOLLOW_logica_in_topdown201); - logica(); + pushFollow(FOLLOW_store_in_topdown201); + store(); state._fsp--; if (state.failed) return ; @@ -400,10 +413,10 @@ public final void topdown() throws RecognitionException { } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: storeint { - pushFollow(FOLLOW_pilha_in_topdown211); - pilha(); + pushFollow(FOLLOW_storeint_in_topdown211); + storeint(); state._fsp--; if (state.failed) return ; @@ -411,10 +424,10 @@ public final void topdown() throws RecognitionException { } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:9: label + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: desvio { - pushFollow(FOLLOW_label_in_topdown221); - label(); + pushFollow(FOLLOW_desvio_in_topdown221); + desvio(); state._fsp--; if (state.failed) return ; @@ -422,9 +435,42 @@ public final void topdown() throws RecognitionException { } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:120:9: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: logica + { + pushFollow(FOLLOW_logica_in_topdown231); + logica(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 19 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: pilha + { + pushFollow(FOLLOW_pilha_in_topdown241); + pilha(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 20 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: label + { + pushFollow(FOLLOW_label_in_topdown251); + label(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 21 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:9: retorno { - pushFollow(FOLLOW_retorno_in_topdown231); + pushFollow(FOLLOW_retorno_in_topdown261); retorno(); state._fsp--; @@ -441,9 +487,6 @@ public final void topdown() throws RecognitionException { } catch (LabelException e) { // TODO Auto-generated catch block e.printStackTrace(); - } catch (AcessoIndevidoMemoriaException e) { - // TODO Auto-generated catch block - e.printStackTrace(); } finally { @@ -456,10 +499,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:3: ( saiDoMetodo | saiDoConstrutor ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:3: ( saiDoMetodo | saiDoConstrutor ) int alt2=2; int LA2_0 = input.LA(1); @@ -479,9 +522,9 @@ else if ( (LA2_0==CONSTR_DECL) ) { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:7: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:7: saiDoMetodo { - pushFollow(FOLLOW_saiDoMetodo_in_bottomup252); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup282); saiDoMetodo(); state._fsp--; @@ -490,9 +533,9 @@ else if ( (LA2_0==CONSTR_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:7: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:7: saiDoConstrutor { - pushFollow(FOLLOW_saiDoConstrutor_in_bottomup260); + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup290); saiDoConstrutor(); state._fsp--; @@ -518,21 +561,21 @@ else if ( (LA2_0==CONSTR_DECL) ) { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,30,FOLLOW_30_in_entraNaClasse283); if (state.failed) return ; + match(input,31,FOLLOW_31_in_entraNaClasse313); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse287); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse317); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -548,7 +591,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 100)) ) { + if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 106)) ) { alt3=1; } } @@ -557,12 +600,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse291); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse321); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse295); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse325); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -613,19 +656,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:149:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:160:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:150:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:7: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel333); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel363); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel335); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel365); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -657,37 +700,157 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { + BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:158:2: ( ^( CONSTR_DECL INIT ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:158:4: ^( CONSTR_DECL INIT ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor370); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor400); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor372); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor402); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:158:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:23: ( . )+ int cnt4=0; loop4: do { int alt4=2; - int LA4_0 = input.LA(1); + switch ( input.LA(1) ) { + case LIMIT: + { + int LA4_1 = input.LA(2); + + if ( (true) ) { + alt4=1; + } + else if ( (true) ) { + alt4=2; + } - if ( ((LA4_0 >= ARITMETICA && LA4_0 <= 100)) ) { + + } + break; + case ARITMETICA: + case BODY: + case CONSTR_DECL: + case DESVIO: + case EXTENDS: + case FIELD_DECL: + case ID: + case INIT: + case INT: + case INTEIRO: + case LABEL: + case LOAD: + case LOGICA: + case MEMBRO_CLASSE: + case METHOD_DECL: + case NEWLINE: + case NULL: + case PARAMS: + case PILHA: + case STORE: + case TIPO_REF: + case VOID: + case WS: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + { alt4=1; - } - else if ( (LA4_0==UP) ) { + } + break; + case UP: + { alt4=2; - } + } + break; + } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:158:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:23: . { matchAny(input); if (state.failed) return ; @@ -705,6 +868,31 @@ else if ( (LA4_0==UP) ) { } while (true); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:26: ( ^( LIMIT lim= INTEIRO ) )? + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==LIMIT) ) { + alt5=1; + } + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:27: ^( LIMIT lim= INTEIRO ) + { + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor409); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor413); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + } + break; + + } + + match(input, Token.UP, null); if (state.failed) return ; @@ -733,39 +921,159 @@ else if ( (LA4_0==UP) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { + BytecodesAST lim=null; BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:2: ( ^( METHOD_DECL ID . ( . )+ ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ^( METHOD_DECL ID . ( . )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo395); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo436); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo397); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo438); if (state.failed) return ; matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: ( . )+ - int cnt5=0; - loop5: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: ( . )+ + int cnt6=0; + loop6: do { - int alt5=2; - int LA5_0 = input.LA(1); + int alt6=2; + switch ( input.LA(1) ) { + case LIMIT: + { + int LA6_1 = input.LA(2); - if ( ((LA5_0 >= ARITMETICA && LA5_0 <= 100)) ) { - alt5=1; - } - else if ( (LA5_0==UP) ) { - alt5=2; - } + if ( (true) ) { + alt6=1; + } + else if ( (true) ) { + alt6=2; + } + + + } + break; + case ARITMETICA: + case BODY: + case CONSTR_DECL: + case DESVIO: + case EXTENDS: + case FIELD_DECL: + case ID: + case INIT: + case INT: + case INTEIRO: + case LABEL: + case LOAD: + case LOGICA: + case MEMBRO_CLASSE: + case METHOD_DECL: + case NEWLINE: + case NULL: + case PARAMS: + case PILHA: + case STORE: + case TIPO_REF: + case VOID: + case WS: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + { + alt6=1; + } + break; + case UP: + { + alt6=2; + } + break; + } - switch (alt5) { + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: . { matchAny(input); if (state.failed) return ; @@ -773,16 +1081,41 @@ else if ( (LA5_0==UP) ) { break; default : - if ( cnt5 >= 1 ) break loop5; + if ( cnt6 >= 1 ) break loop6; if (state.backtracking>0) {state.failed=true; return ;} EarlyExitException eee = - new EarlyExitException(5, input); + new EarlyExitException(6, input); throw eee; } - cnt5++; + cnt6++; } while (true); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:26: ( ^( LIMIT lim= INTEIRO ) )? + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==LIMIT) ) { + alt7=1; + } + switch (alt7) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:27: ^( LIMIT lim= INTEIRO ) + { + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo447); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo451); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + } + break; + + } + + match(input, Token.UP, null); if (state.failed) return ; @@ -811,13 +1144,13 @@ else if ( (LA5_0==UP) ) { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:177:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:188:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo419); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo471); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do metodo... "); @@ -843,13 +1176,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:186:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:197:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:187:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:187:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor435); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor487); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do construtor... "); @@ -875,17 +1208,17 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:195:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,51,FOLLOW_51_in_getfield457); if (state.failed) return ; + match(input,53,FOLLOW_53_in_getfield509); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -926,18 +1259,70 @@ public final void getfield() throws RecognitionException { + // $ANTLR start "getstatic" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:1: getstatic : ^( 'getstatic' classe= . . campo= . tipo= . ) ; + public final void getstatic() throws RecognitionException { + BytecodesAST classe=null; + BytecodesAST campo=null; + BytecodesAST tipo=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:5: ( ^( 'getstatic' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:7: ^( 'getstatic' classe= . . campo= . tipo= . ) + { + match(input,54,FOLLOW_54_in_getstatic558); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + campo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + tipo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + acessarCampo("getstatic", classe.getText(), campo.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "getstatic" + + + // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:202:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,99,FOLLOW_99_in_putfield506); if (state.failed) return ; + match(input,103,FOLLOW_103_in_putfield607); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -978,8 +1363,60 @@ public final void putfield() throws RecognitionException { + // $ANTLR start "putstatic" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:1: putstatic : ^( 'putstatic' classe= . . campo= . tipo= . ) ; + public final void putstatic() throws RecognitionException { + BytecodesAST classe=null; + BytecodesAST campo=null; + BytecodesAST tipo=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:5: ( ^( 'putstatic' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:7: ^( 'putstatic' classe= . . campo= . tipo= . ) + { + match(input,104,FOLLOW_104_in_putstatic656); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + campo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + tipo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + acessarCampo("putstatic", classe.getText(), campo.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "putstatic" + + + // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:209:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:234:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST metodo=null; @@ -987,10 +1424,10 @@ public final void invokespecial() throws RecognitionException { BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:210:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:210:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) { - match(input,83,FOLLOW_83_in_invokespecial555); if (state.failed) return ; + match(input,86,FOLLOW_86_in_invokespecial705); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1013,7 +1450,7 @@ public final void invokespecial() throws RecognitionException { if ( state.backtracking==1 ) { - chamarConstrutorDefault(classe.getText()); + chamarMetodo("invokespecial", classe.getText(), metodo.getText()); } } @@ -1033,16 +1470,71 @@ public final void invokespecial() throws RecognitionException { + // $ANTLR start "invokestatic" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:241:1: invokestatic : ^( 'invokestatic' classe= . metodo= . args= . tipo= . ) ; + public final void invokestatic() throws RecognitionException { + BytecodesAST classe=null; + BytecodesAST metodo=null; + BytecodesAST args=null; + BytecodesAST tipo=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:5: ( ^( 'invokestatic' classe= . metodo= . args= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:7: ^( 'invokestatic' classe= . metodo= . args= . tipo= . ) + { + match(input,87,FOLLOW_87_in_invokestatic758); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + metodo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + args=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + tipo=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + chamarMetodo("invokestatic", classe.getText(), metodo.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "invokestatic" + + + // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:216:1: novaClasse : ^( 'new' classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:1: novaClasse : ^( 'new' classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:217:3: ( ^( 'new' classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:217:5: ^( 'new' classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:3: ( ^( 'new' classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:5: ^( 'new' classe= . ) { - match(input,95,FOLLOW_95_in_novaClasse606); if (state.failed) return ; + match(input,99,FOLLOW_99_in_novaClasse809); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1074,15 +1566,15 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:255:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:224:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:224:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:7: ^( ARITMETICA operacao= . ) { - match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica637); if (state.failed) return ; + match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica840); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1114,15 +1606,15 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:230:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:231:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:231:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:263:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:263:5: ^( LOAD operacao= . ) { - match(input,LOAD,FOLLOW_LOAD_in_load671); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_load874); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1154,16 +1646,16 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:237:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:269:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:238:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:238:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:7: ^( LOAD operacao= . operando= . ) { - match(input,LOAD,FOLLOW_LOAD_in_loadint700); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_loadint903); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1199,15 +1691,15 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:244:1: store : ^( STORE operacao= . ) ; - public final void store() throws RecognitionException, AcessoIndevidoMemoriaException { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:276:1: store : ^( STORE operacao= . ) ; + public final void store() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:6: ^( STORE operacao= . ) { - match(input,STORE,FOLLOW_STORE_in_store742); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_store945); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1218,7 +1710,7 @@ public final void store() throws RecognitionException, AcessoIndevidoMemoriaExce if ( state.backtracking==1 ) { - assembler.verificarAumentoMemoriaGlobal(operacao.token); + assembler.escreverOpcode(operacao.getText()); } } @@ -1239,16 +1731,16 @@ public final void store() throws RecognitionException, AcessoIndevidoMemoriaExce // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:251:1: storeint : ^( STORE operacao= . operando= . ) ; - public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaException, LabelException { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:283:1: storeint : ^( STORE operacao= . operando= . ) ; + public final void storeint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:7: ^( STORE operacao= . operando= . ) { - match(input,STORE,FOLLOW_STORE_in_storeint771); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_storeint974); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1263,7 +1755,7 @@ public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaE if ( state.backtracking==1 ) { - assembler.verificarAumentoMemoriaGlobal(operacao.token, operando.token); + assembler.escreverOpcode(operacao.token, operando.token); } } @@ -1284,16 +1776,16 @@ public final void storeint() throws RecognitionException, AcessoIndevidoMemoriaE // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:258:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:290:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:291:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:291:7: ^( DESVIO operacao= . operando= . ) { - match(input,DESVIO,FOLLOW_DESVIO_in_desvio812); if (state.failed) return ; + match(input,DESVIO,FOLLOW_DESVIO_in_desvio1015); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1329,15 +1821,15 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:265:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:297:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:266:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:266:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:298:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:298:7: ^( LOGICA operacao= . ) { - match(input,LOGICA,FOLLOW_LOGICA_in_logica853); if (state.failed) return ; + match(input,LOGICA,FOLLOW_LOGICA_in_logica1056); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1369,15 +1861,15 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:272:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:304:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:305:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:305:6: ^( PILHA operacao= . ) { - match(input,PILHA,FOLLOW_PILHA_in_pilha887); if (state.failed) return ; + match(input,PILHA,FOLLOW_PILHA_in_pilha1090); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1409,15 +1901,15 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:279:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:311:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:312:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:312:6: ^( LABEL operacao= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label915); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label1118); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1449,60 +1941,60 @@ public final void label() throws RecognitionException, LabelException { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:286:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:318:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; public final void retorno() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) - int alt6=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + int alt8=3; switch ( input.LA(1) ) { - case 86: + case 90: { - alt6=1; + alt8=1; } break; - case 44: + case 46: { - alt6=2; + alt8=2; } break; - case 100: + case 105: { - alt6=3; + alt8=3; } break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); + new NoViableAltException("", 8, 0, input); throw nvae; } - switch (alt6) { + switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:8: operacao= 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:8: operacao= 'ireturn' { - operacao=(BytecodesAST)match(input,86,FOLLOW_86_in_retorno951); if (state.failed) return ; + operacao=(BytecodesAST)match(input,90,FOLLOW_90_in_retorno1154); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:288:8: operacao= 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:320:8: operacao= 'areturn' { - operacao=(BytecodesAST)match(input,44,FOLLOW_44_in_retorno965); if (state.failed) return ; + operacao=(BytecodesAST)match(input,46,FOLLOW_46_in_retorno1168); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:289:8: operacao= 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:321:8: operacao= 'return' { - operacao=(BytecodesAST)match(input,100,FOLLOW_100_in_retorno979); if (state.failed) return ; + operacao=(BytecodesAST)match(input,105,FOLLOW_105_in_retorno1182); if (state.failed) return ; } break; @@ -1534,22 +2026,27 @@ public final void retorno() throws RecognitionException { protected DFA1 dfa1 = new DFA1(this); static final String DFA1_eotS = - "\37\uffff"; + "\42\uffff"; static final String DFA1_eofS = - "\37\uffff"; + "\42\uffff"; static final String DFA1_minS = - "\1\4\11\uffff\2\2\5\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; + "\1\4\14\uffff\2\2\5\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; static final String DFA1_maxS = - "\1\144\11\uffff\2\2\5\uffff\5\144\2\uffff\1\144\2\uffff\4\144"; + "\1\151\14\uffff\2\2\5\uffff\5\152\2\uffff\1\152\2\uffff\4\152"; static final String DFA1_acceptS = - "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\2\uffff\1\16\1\17"+ - "\1\20\1\21\1\22\5\uffff\1\12\1\13\1\uffff\1\14\1\15\4\uffff"; + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\2"+ + "\uffff\1\21\1\22\1\23\1\24\1\25\5\uffff\1\15\1\16\1\uffff\1\17\1"+ + "\20\4\uffff"; static final String DFA1_specialS = - "\37\uffff}>"; + "\42\uffff}>"; static final String[] DFA1_transitionS = { - "\1\11\1\uffff\1\3\1\14\1\uffff\1\4\4\uffff\1\17\1\12\1\15\1"+ - "\uffff\1\2\3\uffff\1\16\1\13\6\uffff\1\1\15\uffff\1\20\6\uffff"+ - "\1\5\37\uffff\1\7\2\uffff\1\20\10\uffff\1\10\3\uffff\1\6\1\20", + "\1\14\1\uffff\1\3\1\17\1\uffff\1\4\4\uffff\1\22\1\uffff\1\15"+ + "\1\20\1\uffff\1\2\3\uffff\1\21\1\16\6\uffff\1\1\16\uffff\1\23"+ + "\6\uffff\1\5\1\6\37\uffff\1\11\1\12\2\uffff\1\23\10\uffff\1"+ + "\13\3\uffff\1\7\1\10\1\23", + "", + "", + "", "", "", "", @@ -1559,27 +2056,27 @@ public final void retorno() throws RecognitionException { "", "", "", - "\1\21", - "\1\22", + "\1\24", + "\1\25", "", "", "", "", "", - "\141\23", - "\141\24", - "\1\25\1\26\141\27", - "\1\30\1\31\141\32", - "\141\33", + "\147\26", + "\147\27", + "\1\30\1\31\147\32", + "\1\33\1\34\147\35", + "\147\36", "", "", - "\141\34", + "\147\37", "", "", - "\1\35\141\33", - "\1\36\141\34", - "\1\26\141\27", - "\1\31\141\32" + "\1\40\147\36", + "\1\41\147\37", + "\1\31\147\32", + "\1\34\147\35" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -1612,7 +2109,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "102:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | putfield | invokespecial | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; + return "110:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; } } @@ -1622,48 +2119,58 @@ public String getDescription() { public static final BitSet FOLLOW_entraNoConstrutor_in_topdown81 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declaracaoVariavel_in_topdown91 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_getfield_in_topdown101 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_topdown111 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_topdown121 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_novaClasse_in_topdown131 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_aritmetica_in_topdown141 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_load_in_topdown151 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_loadint_in_topdown161 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_store_in_topdown171 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_storeint_in_topdown181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_desvio_in_topdown191 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_logica_in_topdown201 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_pilha_in_topdown211 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_topdown221 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_retorno_in_topdown231 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoMetodo_in_bottomup252 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup260 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_30_in_entraNaClasse283 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse287 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse291 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse295 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel333 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel335 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor370 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor372 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo395 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo397 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000001FFFFFFFFFL}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo419 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor435 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_getfield457 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_99_in_putfield506 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_83_in_invokespecial555 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_95_in_novaClasse606 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARITMETICA_in_aritmetica637 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_load671 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_loadint700 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_store742 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_storeint771 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_DESVIO_in_desvio812 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOGICA_in_logica853 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PILHA_in_pilha887 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label915 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_86_in_retorno951 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_retorno965 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_100_in_retorno979 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_getstatic_in_topdown111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putfield_in_topdown121 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_putstatic_in_topdown131 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokespecial_in_topdown141 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokestatic_in_topdown151 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_novaClasse_in_topdown161 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_aritmetica_in_topdown171 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_load_in_topdown181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_loadint_in_topdown191 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_store_in_topdown201 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_storeint_in_topdown211 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_desvio_in_topdown221 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_logica_in_topdown231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_pilha_in_topdown241 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_topdown251 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_retorno_in_topdown261 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoMetodo_in_bottomup282 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup290 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_entraNaClasse313 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse317 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse321 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse325 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel363 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel365 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor400 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor402 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor409 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor413 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo436 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo438 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo447 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo451 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo471 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor487 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_getfield509 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_54_in_getstatic558 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_103_in_putfield607 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_104_in_putstatic656 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_86_in_invokespecial705 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_87_in_invokestatic758 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_99_in_novaClasse809 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARITMETICA_in_aritmetica840 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_load874 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_loadint903 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_store945 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_storeint974 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_DESVIO_in_desvio1015 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOGICA_in_logica1056 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PILHA_in_pilha1090 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label1118 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_90_in_retorno1154 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_retorno1168 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_105_in_retorno1182 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index c1071fa..1aaf0ab 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__27=27 T__28=28 T__29=29 T__30=30 @@ -72,6 +71,12 @@ T__97=97 T__98=98 T__99=99 T__100=100 +T__101=101 +T__102=102 +T__103=103 +T__104=104 +T__105=105 +T__106=106 ARITMETICA=4 BODY=5 CONSTR_DECL=6 @@ -83,89 +88,95 @@ INIT=11 INT=12 INTEIRO=13 LABEL=14 -LOAD=15 -LOGICA=16 -MEMBRO_CLASSE=17 -METHOD_DECL=18 -NEWLINE=19 -NULL=20 -PARAMS=21 -PILHA=22 -STORE=23 -TIPO_REF=24 -VOID=25 -WS=26 -'('=27 -'()'=28 -')'=29 -'.class'=30 -'.end class'=31 -'.end method'=32 -'.field'=33 -'.method'=34 -'.super'=35 -'/'=36 -':'=37 -'aconst_null'=38 -'aload'=39 -'aload_0'=40 -'aload_1'=41 -'aload_2'=42 -'aload_3'=43 -'areturn'=44 -'astore'=45 -'astore_0'=46 -'astore_1'=47 -'astore_2'=48 -'astore_3'=49 -'dup'=50 -'getfield'=51 -'goto'=52 -'iadd'=53 -'iand'=54 -'iconst_0'=55 -'iconst_1'=56 -'iconst_2'=57 -'iconst_3'=58 -'iconst_4'=59 -'iconst_5'=60 -'iconst_m1'=61 -'idiv'=62 -'if_icmpeq'=63 -'if_icmpge'=64 -'if_icmpgt'=65 -'if_icmple'=66 -'if_icmplt'=67 -'if_icmpne'=68 -'ifeq'=69 -'ifge'=70 -'ifgt'=71 -'ifle'=72 -'iflt'=73 -'ifne'=74 -'iinc'=75 -'iload'=76 -'iload_0'=77 -'iload_1'=78 -'iload_2'=79 -'iload_3'=80 -'imul'=81 -'ineg'=82 -'invokespecial'=83 -'ior'=84 -'irem'=85 -'ireturn'=86 -'istore'=87 -'istore_0'=88 -'istore_1'=89 -'istore_2'=90 -'istore_3'=91 -'isub'=92 -'ixor'=93 -'ldc'=94 -'new'=95 -'nop'=96 -'pop'=97 -'pop2'=98 -'putfield'=99 -'return'=100 +LIMIT=15 +LOAD=16 +LOGICA=17 +MEMBRO_CLASSE=18 +METHOD_DECL=19 +NEWLINE=20 +NULL=21 +PARAMS=22 +PILHA=23 +STORE=24 +TIPO_REF=25 +VOID=26 +WS=27 +'('=28 +'()'=29 +')'=30 +'.class'=31 +'.end class'=32 +'.end method'=33 +'.field'=34 +'.limit locals'=35 +'.method'=36 +'.super'=37 +'/'=38 +':'=39 +'aconst_null'=40 +'aload'=41 +'aload_0'=42 +'aload_1'=43 +'aload_2'=44 +'aload_3'=45 +'areturn'=46 +'astore'=47 +'astore_0'=48 +'astore_1'=49 +'astore_2'=50 +'astore_3'=51 +'dup'=52 +'getfield'=53 +'getstatic'=54 +'goto'=55 +'iadd'=56 +'iand'=57 +'iconst_0'=58 +'iconst_1'=59 +'iconst_2'=60 +'iconst_3'=61 +'iconst_4'=62 +'iconst_5'=63 +'iconst_m1'=64 +'idiv'=65 +'if_icmpeq'=66 +'if_icmpge'=67 +'if_icmpgt'=68 +'if_icmple'=69 +'if_icmplt'=70 +'if_icmpne'=71 +'ifeq'=72 +'ifge'=73 +'ifgt'=74 +'ifle'=75 +'iflt'=76 +'ifne'=77 +'iinc'=78 +'iload'=79 +'iload_0'=80 +'iload_1'=81 +'iload_2'=82 +'iload_3'=83 +'imul'=84 +'ineg'=85 +'invokespecial'=86 +'invokestatic'=87 +'ior'=88 +'irem'=89 +'ireturn'=90 +'istore'=91 +'istore_0'=92 +'istore_1'=93 +'istore_2'=94 +'istore_3'=95 +'isub'=96 +'ixor'=97 +'ldc'=98 +'new'=99 +'nop'=100 +'pop'=101 +'pop2'=102 +'putfield'=103 +'putstatic'=104 +'return'=105 +'static'=106 diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 0590b00..6bb27c6 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -58,7 +58,7 @@ public class Interpretador { private static int topoPilha = -1; private static ClassLoader loader; - + public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { public Object create(Token token) { @@ -1022,7 +1022,18 @@ protected void cpu() throws ClassNotFoundException { } ; - break; + break; + + case Definicao.INVOKEVIRTUAL: { + + op1 = obterOperandoInteiro(frameAtual); + + + + } + + ; + break; case Definicao.INVOKESPECIAL: { @@ -1152,5 +1163,6 @@ protected void exibirTela(StackFrame frame) { } + } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index 02dd00c..fdbbc05 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -13,7 +13,7 @@ public class SimboloMetodo extends SimboloComEscopo{ private byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; - private int tamanhoMemoriaLocal; + private int tamanhoMemoriaLocal = 65536; public SimboloMetodo(String nome, Tipo tipoRet, Escopo parent) { super(nome, tipoRet, parent); From dad6073863672b5ff1ea82137da5f2c6e04b0f7d Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Sat, 8 Sep 2012 21:29:41 -0300 Subject: [PATCH 63/79] commit --- .../asm/BytecodeAssembler.class | Bin 6804 -> 6804 bytes .../bytecodeassembler/asm/Definicao.class | Bin 5079 -> 5085 bytes .../iged/interpretador/gramaticas/Assembler.g | 36 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 19 +- .../interpretador/parser/Assembler.tokens | 214 +- .../parser/AssemblerLexer$DFA6.class | Bin 1949 -> 1960 bytes .../interpretador/parser/AssemblerLexer.class | Bin 30572 -> 31073 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 770 -> 695 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$comando_return.class | Bin 677 -> 677 bytes ...semblerParser$definicaoClasse_return.class | Bin 701 -> 701 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../AssemblerParser$instrucao_return.class | Bin 683 -> 683 bytes .../parser/AssemblerParser$label_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 692 -> 692 bytes .../AssemblerParser$operacao_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../AssemblerParser$programa_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../AssemblerParser$superClasse_return.class | Bin 689 -> 689 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 76771 -> 84850 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 20984 -> 21153 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 214 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1434 -> 1450 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 33435 -> 35626 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 214 +- classes/Main.class | 1 + .../iged/interpretador/gramaticas/Assembler.g | 36 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 19 +- .../interpretador/parser/Assembler.tokens | 214 +- .../interpretador/parser/AssemblerLexer.java | 1227 ++++---- .../interpretador/parser/AssemblerParser.java | 2490 ++++++++++------- .../ufpb/iged/interpretador/parser/Def.java | 95 +- .../ufpb/iged/interpretador/parser/Def.tokens | 214 +- .../ufpb/iged/interpretador/parser/Ref.java | 685 +++-- .../ufpb/iged/interpretador/parser/Ref.tokens | 214 +- 44 files changed, 3360 insertions(+), 2532 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index 7deca01ad267cc1ed3a49f6da8b1043efd91097a..af59b30a4e0f56f4375312b46ac9d86f28a98f5b 100644 GIT binary patch delta 18 acmbPYI>mIu31L=l1_lPc&1Z#=vjG4&e+8TX delta 18 acmbPYI>mIu31L<)1_lP+&1Z#=vjG4&Zv~nF diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 6881f185c65c049cf04ff9f2408f63852b8697f4..2e7f9542b576dca70be1bca2b5d2dd28ee7d8a41 100644 GIT binary patch delta 2352 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 ^('getfield' $b tipo) -> ^('invokespecial' $c $d) | a = 'invokestatic' c = classe '/' d = chamadaMetodo -> ^('invokestatic' $c $d) + | a = 'invokevirtual' c = classe '/' d = chamadaMetodo + -> ^('invokevirtual' $c $d) | a = 'new'c = classe -> ^('new' $c) ; @@ -205,18 +209,40 @@ classe returns [List classe] : (cls += ID '/')* (cls += ID) {$classe = $cls;} ; -chamadaMetodo returns [String nome, String params, String tipoRetorno] +/*chamadaMetodo returns [String nome, int qtdParametros, String tipoRetorno] @init { $nome = ""; - $params = ""; + $qtdParametros = 0; $tipoRetorno = ""; } - : n = INIT par = '()' tip = VOID { + : (n = INIT | n = ID) argumentos tip = tipo { $nome = $n.text; - $params = $par.text; + $qtdParametros = $qtd.qtdParams; $tipoRetorno = $tip.text; } - ; + ;*/ + +chamadaMetodo + : (n = INIT | n = ID) (argumentos | '(' argumentos ')') tip = tipo + -> ^(METHOD_CALL $n argumentos $tip) + ; + +argumentos + : '()' -> ^(ARGS VOID) + | ( + a = ID + | a = TIPO_REF + )+ + -> ^(ARGS $a)+ + ; + +contagemParametros returns [int qtdParams] + : '()' {$qtdParams = 0;} + | ( + ID {$qtdParams++;} + | TIPO_REF {$qtdParams++;} + )+ + ; campo returns [List classe, String campo] @init { diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index cd8ff32..42334e4 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -118,6 +118,7 @@ topdown | putstatic | invokespecial | invokestatic + | invokevirtual | novaClasse | aritmetica | load @@ -232,16 +233,26 @@ putstatic ; invokespecial - : ^('invokespecial' classe = . metodo = . args = . tipo = .) + : ^('invokespecial' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { - chamarMetodo("invokespecial", $classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokespecial", $classe.getText(), $metodo.getText()); } ; invokestatic - : ^('invokestatic' classe = . metodo = . args = . tipo = .) + : ^('invokestatic' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { - chamarMetodo("invokestatic", $classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokestatic", $classe.getText(), $metodo.getText()); + } + ; + +invokevirtual + : ^('invokevirtual' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) + { + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokevirtual", $classe.getText(), $metodo.getText()); } ; diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens index 1aaf0ab..e17e231 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,5 +1,3 @@ -T__28=28 -T__29=29 T__30=30 T__31=31 T__32=32 @@ -77,106 +75,112 @@ T__103=103 T__104=104 T__105=105 T__106=106 -ARITMETICA=4 -BODY=5 -CONSTR_DECL=6 -DESVIO=7 -EXTENDS=8 -FIELD_DECL=9 -ID=10 -INIT=11 -INT=12 -INTEIRO=13 -LABEL=14 -LIMIT=15 -LOAD=16 -LOGICA=17 -MEMBRO_CLASSE=18 -METHOD_DECL=19 -NEWLINE=20 -NULL=21 -PARAMS=22 -PILHA=23 -STORE=24 -TIPO_REF=25 -VOID=26 -WS=27 -'('=28 -'()'=29 -')'=30 -'.class'=31 -'.end class'=32 -'.end method'=33 -'.field'=34 -'.limit locals'=35 -'.method'=36 -'.super'=37 -'/'=38 -':'=39 -'aconst_null'=40 -'aload'=41 -'aload_0'=42 -'aload_1'=43 -'aload_2'=44 -'aload_3'=45 -'areturn'=46 -'astore'=47 -'astore_0'=48 -'astore_1'=49 -'astore_2'=50 -'astore_3'=51 -'dup'=52 -'getfield'=53 -'getstatic'=54 -'goto'=55 -'iadd'=56 -'iand'=57 -'iconst_0'=58 -'iconst_1'=59 -'iconst_2'=60 -'iconst_3'=61 -'iconst_4'=62 -'iconst_5'=63 -'iconst_m1'=64 -'idiv'=65 -'if_icmpeq'=66 -'if_icmpge'=67 -'if_icmpgt'=68 -'if_icmple'=69 -'if_icmplt'=70 -'if_icmpne'=71 -'ifeq'=72 -'ifge'=73 -'ifgt'=74 -'ifle'=75 -'iflt'=76 -'ifne'=77 -'iinc'=78 -'iload'=79 -'iload_0'=80 -'iload_1'=81 -'iload_2'=82 -'iload_3'=83 -'imul'=84 -'ineg'=85 -'invokespecial'=86 -'invokestatic'=87 -'ior'=88 -'irem'=89 -'ireturn'=90 -'istore'=91 -'istore_0'=92 -'istore_1'=93 -'istore_2'=94 -'istore_3'=95 -'isub'=96 -'ixor'=97 -'ldc'=98 -'new'=99 -'nop'=100 -'pop'=101 -'pop2'=102 -'putfield'=103 -'putstatic'=104 -'return'=105 -'static'=106 +T__107=107 +T__108=108 +T__109=109 +ARGS=4 +ARITMETICA=5 +BODY=6 +CONSTR_DECL=7 +DESVIO=8 +EXTENDS=9 +FIELD_DECL=10 +ID=11 +INIT=12 +INT=13 +INTEIRO=14 +LABEL=15 +LIMIT=16 +LOAD=17 +LOGICA=18 +MEMBRO_CLASSE=19 +METHOD_CALL=20 +METHOD_DECL=21 +NEWLINE=22 +NULL=23 +PARAMS=24 +PILHA=25 +STORE=26 +TIPO_REF=27 +VOID=28 +WS=29 +'('=30 +'()'=31 +')'=32 +'.class'=33 +'.end class'=34 +'.end method'=35 +'.field'=36 +'.limit locals'=37 +'.method'=38 +'.super'=39 +'/'=40 +':'=41 +'aconst_null'=42 +'aload'=43 +'aload_0'=44 +'aload_1'=45 +'aload_2'=46 +'aload_3'=47 +'areturn'=48 +'astore'=49 +'astore_0'=50 +'astore_1'=51 +'astore_2'=52 +'astore_3'=53 +'dup'=54 +'getfield'=55 +'getstatic'=56 +'goto'=57 +'iadd'=58 +'iand'=59 +'iconst_0'=60 +'iconst_1'=61 +'iconst_2'=62 +'iconst_3'=63 +'iconst_4'=64 +'iconst_5'=65 +'iconst_m1'=66 +'idiv'=67 +'if_icmpeq'=68 +'if_icmpge'=69 +'if_icmpgt'=70 +'if_icmple'=71 +'if_icmplt'=72 +'if_icmpne'=73 +'ifeq'=74 +'ifge'=75 +'ifgt'=76 +'ifle'=77 +'iflt'=78 +'ifne'=79 +'iinc'=80 +'iload'=81 +'iload_0'=82 +'iload_1'=83 +'iload_2'=84 +'iload_3'=85 +'imul'=86 +'ineg'=87 +'invokespecial'=88 +'invokestatic'=89 +'invokevirtual'=90 +'ior'=91 +'irem'=92 +'ireturn'=93 +'istore'=94 +'istore_0'=95 +'istore_1'=96 +'istore_2'=97 +'istore_3'=98 +'isub'=99 +'ixor'=100 +'ldc'=101 +'new'=102 +'nop'=103 +'pop'=104 +'pop2'=105 +'putfield'=106 +'putstatic'=107 +'return'=108 +'static'=109 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class index 9d3bd51934c91fb07f6008a2ae59a284b3689650..692b69d660c3b5475d024f90cf4fdd2efba0b39e 100644 GIT binary patch delta 110 zcmbQszk+{5IkUh$Ln}iog^>L0)VyK^D+P_s)0qpHBtqij4Gqi{Y81c>3mC(4G7H;( z%@PJq-cklW-ZBOe-f{+M-U@JKAlMC5( E0Ey}wj{pDw delta 101 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 literal 30572 zcmcJ&2YeL8|HnPwnY-NF-5dm#-kX#Fp%Z!!5ITeo8bb&W2ni+uGo}{Z!{RxMW_8G$n>)KhUO`E2(W0W3}Ugtg$2bWSZQ*0{^DG51pkNy zCuU`J?jZosz%@O!X=qKCj@mSGO($&{yQZ@?Oba#y*NOO%L=;0be(9<=BpqFb5L2qli8-hNrF$8^G zV+i`W#t`&(jUgD|8bdJ9HHKi2YYf3)*BF8!t}z7Z)}$E%j3Yf<(hR{c*BFA~t}z4{ zYGyS1gE*i5M;T=5S;EBLy+wn zLomxVh9HMn5*of!M}siC!Wo9#3TGhZR5(L1x562Wc@@rZuuC;?%5#spJf4Ambsa8SD0R~2nC zM%!(wV*62J2b!{y0WoUqFqgO*PI05tM-Q4XHf!*xfti``{tWg66j+r#d?5QRS95-;nz|p1}wXolD8KZ`q_NWb$IdSX+vrQdha$?4~u~`$+ zhw8o5MH!RF+6vY~Ri~Kk>mzseoNSy1(nkGX&+09P3?0}V$A4IBR&HSl#&q>j^Rt&^ zcgW8!nA;(^3U9oyyiy**Yp) zPh}hQ(v4JhCsgmMEUvfQL}m91WACG~``vw)-DlRo;_ZQ&W@*i^S?4hq((G1OCg5Vb z`Q=v%vpz~LzghpemCA1m>P^dU*Q@ZFN!nn+W@|%c*-kQTz-yXS_g&}`?pv;RfnxMZ z`!3O9ji^ccuAqHan!Q%G|C~(8KEM#zca>h>&0d&Sfb5Tno}w_dF(u`g&2nfl3iL zp!^c7n@V%2kZZpL+n*tFu|+o4pKF#a#NSy|BvO&1*IbNk^!BXV}&r;p|+1O`Cx1>c_!>)~7yFbd2n$hkNdvdqU zv9&P!*Swm;)Pv`lI2*Od=a#mjU$f6dzkWuvk4oKsEjG0&Mq3opnP?r|L$+5--Civ{ zVXx}m%;UCCmzX})C7h^FOFeyBihl6)DSF=9tEJep?bTAWoL<-VYN@Hu@x7|oC`GSg z54_av)l$=|rKVTycIbc8tEIFMQR#p5YUxRPwTq!BKnWGSYIAh2nmk@=dZv_YzV6k9 zWR3>2-^yImtKc@hYWuCCSCMP>QhH3UntB}5tCp52a}v$Y$;n+*f{y(kQ6EzcVG4%lXgCbZHz$yB4RqvO6N9!A3{!<0Ni>D&g? zkQ$loTbjS^G4MKI*mk1MZsmJYFSDed*(#leQYMWwl?qal$*W?Tp{w~DqpFll)u_5z zQp2p*jk;4B^)T!MO#T=eOAgL*wWv1LF*%KKs5hl%)SOz-Db&j3wKISF(?A+TgK3Cy z^$bgE4EYplYjQ@JocbmnZR*&Ea8-(#1}$Eco0FHFj~4w3msE3RJQw$($!1|mQFcLb zUP)eI0j^xmjN>m|xP+P&ac#pDa|YI`@VJSwAKp-3B*)fx(5db3^Pe;QsrfD%n58=ArRwnQGUruDi0f=>Q^b z8rmU2frvvv(>zsmN64C#%xh8&G<@|?O{x~KSED54g^(oj!_WvcilmTYR3%gs_e!WE z)sYx&`pyaWU3JKIM15*tnjC}3Xk$sZ?MkL5`iP*WCJ&t|Q8-FyAyGIAIK>R+mJ+*Q z9jR4im+Ea&OpR>Uwj(nfO%8^n8BCoe;bx0d7m0Dks!&%`RyVV!?vijbB`M9g9uif> znmr}P8MK!q+!X2BV?U9ay0z+=7O00B>RTe}D{(w9S+AcyPuA-vabzI3zr@&t4v>V8 zjGP8aj8W(yNiDSwmegA75Q#AfO_ziZcASPv97~`XW(bE%99788kT|lSBP4YtR*yy+ zRy&ACn;MQW?J-v3sKI*UB=yibUg9`}PLQ~9LaCX_y0s=s!g%2{NfJItahfb~tl-8N zrv^zwbj~!1BNjSc;>d^2kTgQ;Oo@vu^i)Y>w4NpjA6+#v-R# z5@#ELGOg!Ix(GK)biTPRmR%s}5*&O~cA=!pOt4JS z3KJ}sbcG2nm2?&1X4(uQ94uv*h5j{?uE8e@DqCSHS+-KrDzn`clCCqsm6C2S!BvuO zGQri7)|lWLNw=EdT1mH?V3nkGCRi+-DiTk zBt2k)yCpqjf_o%wHo*guwwmBUN!v~EkfcXU@UWy^rVg9Uz%AP%=~1&_tE9(>)j#$C zGDEg(n;x_JIC|WyxkFN!2_BKSLD5aRQ{oO(2fHLaV}jk1_M6~QNzeaBv3n|tebKDB zSJKNmC`V5nFadh%H4~tx-Y@}r>MavoB3b90 zDCx)l*wIZDJNntIxkl2jCP2UbZi-z?K&Lr2JmVnLcTk+YdJ7_nTfTe?ae%${&=R>kcn}$Xq$fAC^2|cDRMg zw^I2wD&H=7lG)D=$)yP%kvw98U6L!a@osYnmOm-X2rddSJ%P53nZ^$ zf@PA|GQmZX*D=AxlGiiArII%=!DW&+GQs7NH!;Bq$(xyAWtb6fq1e~#n+R{oTZcHl zkgIw8w~V;nD&B^t;2OWUU{Q9?g7ktMTv=z^&!@y{wLbpJ-)2UpF1?*%-?Hy?l&aYG z>^r@mj*55UoryI&L17aMC*h7_Zb9zs!SnD%=zow$)bj_?UQBZBfL z>pI}8yb&iU{{(wKVZi{whyJ{RMT<*_H9Emo9%kJUdhKFOM6AsT);{q*Fw!t+h81Nm zT$o)nG%r7QO!h()P@{F5Ia%$!v;Q$J0Zsh=kNYw=v{FuNo#C%brN5Nd$yzGL4+ifx|}(Ax%riu z-6X#Z=Y-V!yoGrsP4e~mqjDeJC0~i!r5;;Mn&emMVu}|p$}OrWyGKQUX9H$$T{}v? z8XVa<`Wa4E!Qy;0k6nWL+<>Oa&M(Za!03wV+>BkBysV0vcST)pt<1&K4ZA(+v9>Z7 zr(T&y?a9bsD7&VXvJ=**Hb2|pfU@!dKUZ1v)xe9vfWUt=Z|Jr z)T%pb_0rMoiduC?tqvT`uBcUa)av!4*7sH`h9vde{MzBbw?$?@Z{snXIia0YKeQXigNT7 z(&VS1n%{WxE7ng#J-VN@aVo# zw<9*Ia;-EeaL0wUj_$FC6hWPpS5Pqo(t1iEaoFT}4x1hwrHEp9o4m>)+oO{dRVs5U z+POz(DXLZGR&;HTE>hH}%&q9z9$lrtzR?m{=KCu-J4a~*Tw z_C(FvVU0ZRf!h-m>!8P*$*gRJo~RjWS&?1Q3_Vdb49SY@igxIU>fsz#kzLUcJyAt{ z)00=ccvb}&YSvF@omt7>6E(uKN|8UiqO*FUMnjNOkh>I>&_^&Hg-J0?XBFZc;AWvZ zBapSolZDFQ(P98uKyz0^O~!!@mvr}B;pU?%nHa9fuQ*w_3s4z-8L4PHHy3r8hTMvE zgA4UjEy)2DKsZrf`}89rt@`m2?taASicjU!qGFbq9TKQqgX1r#NAD+;$Q5&NksF1! z(3j7QkidoX1lQm(g_F$<>cISxqt{?DSKv}ROe`SQ^#s?&jEoc9on#c0RNj6`fw2?N z*BQxh#tUTUm!Qw_OsDn(=VhO{+9nz=K#S3#o z0+;XB$2Z34ykc|zfV;e0Z{3!PQeC&RiS;@W!l1kotl#@2HN>rhI9G}D1TOrcBHXAh z(bwO$Co0grZ9C>JN8h4~3yHNj9y>j|DF3YVGxNO27l`E=`67Mmd$P8-&5Z$z=I(5o zJEx!o$B^y>2y(mVT(PhieUNg3YM!{=&jqX$Y5*t0B z_~kZwNbxIdv{~`1ZM0SKYizV#anxJy_YuXfv(YZaZ?w^)im$QJV~XEqqsJ9rXQML3 z@37H6#qYAwQ;OeXqh}Pq&qn(df6zwHE56xAFDkyxMlUP=h>Z>?zS~BxDgKy^-cbAr z8@;9YJ{uiW{AnA#tN4B!y|4HSHu_NUmu>X1;;-81Q^nt~(dUZ4ZKMAw{;rJ>M{!sik8~vsDA2#|&@xM(J zUZ8PT8}(CSri}(D zajK05DRG*OhA3f=nZQsbuCjTG8eb zdwYBz_`V+B55B+04}c%&@q^$8d;AdibdMhjKg{EY!)JK>2>6j6KMH=d$B%&@>+$2@ z$9wz)_)L$V2tUc=C&N$i_^I&IJbpU-43D1)f2zly2A}2er^9D^{4Dq!kDm>n>+y5o z=X(4+_&krF55K_U^WpJjNagWT0AJ|wi{Q`j_#*gXk1v5=?D0$BmwNn}@Mn2^Dg4wR`}aI{&x7a9={HLy~l5Wzr*7`g>+vd+M;a*}=-=>K*v^JpO(74?X@P_)k3kQ~1w4{tNgo zJ^m0po{*UR;8})IJjpPM=MP5l^uZ{eJs8E42cvlC0L{X+@ppC@gnuxmeg!wjEP&zF zsLCGp=QL6M@62g|>PIrC1s$TyX-SxPkU1@6Vrl*+BP*CWEg5+s2r|QvutQM@W+=oU zQHQERlta}ZF^3#T6-*IQF9Zm_u_R!yU?lWH__{GQy#SkdY1*LPj}s24u8D z#gH)$EryJBXenfzLuWz8J9IW=fM zmqVu8Rc2V3Y2{RhR$|#{4qXY!a_DNv=?+~B$#!TpWR^qMLvm~r%(m^4>(GtJoa4~V zkhu=s0-5K~ZIC>N)LspT>Mp;`)yv)d6%IYD%US8r7Oht}v`y=k4(-r-mAn4c4(-(b8i#gkz1E>U zT30!=SLvlJPheID||A<2$Y2E42Ct7zo^qJP( z4t=5ZQHQ?Ny2qifv_9r;zt^E}w13>8@3cPQ&<|S69QsLXxkJBb-RJh#ldeAHZvV8a z&$#-mtNUGj&Rzd`hkn!Lyx``)=+I&9UvlVAtuH(Dx7Jr2I->P}yWXp=zUJ!duD;=L z((AqHmj9N+h4yc|%MUs{sQo(*4{3eZ&416;_g($K)el|$$kmTs{lqQ*Q-_CjIiI=t zpS${ntN(NLOIHuM`jx9+yZVj8qq>}L9UjyAotyu?!>ellgTt$7{n5?;$0`IarKD9YhpWm>gBbylFcV>w&LWi;mxbR^9Vm>3vXNfeWUHGfAk3Nu!VQ2 z{;AP!)xR+LY1I!I?YWsZf2?=CJ-qi8-beI_GiNjJQy-c2J7am~MMU-Mtv~YZ!??o` zydU1?D53_qzo^Hgs?TDoF{`ecusW(KYowa77OFXGt6H$m>J-*fwPXWSD>h8EVPjMZ zo21&ZnW`PjQSI4$mCDXg9oU(wBRgMpVwb4S>`K*zU8lOTTU0l;L3L;Ms5JJF>cMuX zp6oHzi#@4&v*%SG_Nwa34yu0aBh{b%PYqz-se$ZQHHiJK22(%{p{Poy>S`#}Rl}%> z8cwZL2BoTz)J=_|K58@#R%2*{8cXBVIGU=)QL0O`@~aWLl=C(B*0> zU8APajcPjGu4d4kY9`&MPNgmCG}@)I=m~W?J)^SeB{hrQP&xFTnoXaoT>47Qp&!*; zI;`e#JZIq{HJ?{e3wTYH&l{+PytyjiDXNfnQj2&Gbq4RRiuh1fj7bwEe4<*+XQ(B7 zmRid5)R}ydItve_OZj=~Y<{sihhL%2<*U_se2qGvuU8lFyVZsKLA8u;SIhYxbrIjE zF6PgvOZWkGDSumC#y?b-^Dop2{;gWce^FQPztojNsH;RoT`j7qYeXG&t!S)PiI!@$ zXs@mlUDfrXx4J zZNT@icZdyYqu8YG6r0suVwZ}GGIh7uukH~C)FyFI-77v;_lZO5e(|GvK>VQ|#20c8 z1tRL_g1yw+!9nU^aD;j{ zI6=J^oUYyv&Qc!)=c^BcMe3tqsrop$Onnkup*{_+QlAIcs4s#W)c=B;)R)1{>QHc( z`YKqaz7FnJ-vke+Z-WQbcfpU<_rXKzhv1Lu$KW68rzEa^PKu~sld7xVlIp47lbWf+ zNh#`&q|WNkq+aT;q(SQMq!H?$qzURs()1WhniZp@`7xeU6cb6Mu|U$YSTJctEGcPK zER?h+CX+VA!bzKAk)+MBXwt5jN-B%RlJ>`{BprxVO*$A$PWm`jE$L9KdeV(56^QXmhM>XjiOVs4Uh#v_F;_ zIuPp+IvDF1`Z(4pbSTz2^sTBF`XSaWbU222z_BzLj`fh$Vm)QuSTET$)=##K^_T5q z17zpeK-nKUj49q9XP;V(%a*JeAAnD1Om<*(_(1(RjSs>y$@t&0Gf`Fe!F-7Q4218! z^o(e{bSCyN@el&8PhjT59b;#iLX};Cr}Lp$LVE6#yYUcw?Wi}dp0a}vPua~!OiMvD zY8xM`PldLmD&{N7b66mH0ADJe<0-NF(GvN1x5RY&k&MMs+V18PrtRPpckoF^3ybK_ zYwSFx*!dOpg^#%f>1ZmShN1w;r?^E<2c-U%v_?wXc02g=gqZl&1(*(7W=d~jx2r6@ zhFdzy($i|dLi|*In!BG=y)%5cfG}0`+4NA(nfC(kzf0d3c$Sy|qnX9H=;RoLa}iE|L2`gm z7Z~+`(bzWz9%LrKXl^ks^?`8;Fj@j51sENH(FqvcePiG$Y66TF7Gs4Ej6T5V3ygul z7zT{tz!>ct1CMYMV4PwxuJnPC35b2F5{P zybp{|f$w1sHz<<1f~LlWz=6)JTBQ-eRmjIR+2m zleT2|fPy>U>bM_sfKkUc24;yQz(}QAvQ&!D7UH zU~~gUcVP4a#sFXp1jbO`7?>ZE0HdSD*yICa6fi~uV>~dX0AngJPW6p}$vFuyI$4bS zePHAOV>U460iysIg}^BBje(g#2{1ZajE8(+lmg>yV4M$(i-BD6PE-Pnt`=jv4~)BkaSt%=2gVj)Yz4+n-x!#Xl>nog z#n|ZsV=pis2gW{N><7kkz9xJk8cdjgG+$X!(x=3976<{5J7we5yn)ss;q`cW(`D5 z-x!#LmjI)u#dy*OMtxv307esFv;;;gV6^j%ff;}aFnU>xXMA9E21XZPqyeKZF!}*w zux|`ZKTLqp+hRQD10w?%BY-gm7!!dp2^iCTV_@!M0*pQu<3%4BrvoD!7`eb$0E~QK z;0s}V?O|`s6W@zs;$;Giz82#Z9~eu4aV9X%0md?5ECcfH|oF&Vqp?rUHu92*g-}Ky}|3nB$xP zV~EB0+y_P-U|?Eopdm1t1EU2n+W5x61nUGC=@#Ql9~d2g(GeJ3fzb;Xy@4^nHwI>R zC%_nLF~0VJF%%fXfH4vnU}|{+jA0hzJ0BRQ0^>Ab%mT(dVB`U#z&8fw zwI{$BZZUrJfl&gC#lScV80Q1y0$^P18v~Q-6JTUmj9+|UtOUjtz_CVBG2( z12g&)V2rRBzx%-00E|0;5eLToz<2-{TYO{Sb%F#KBQ3_CJ}`CyV;3+U1I9jJJPC~b zzA^AFLjsIZ7ULfu7%v0k6=1v$jCX+XE-*gwi=khnNPscgUH(t(Fq#6RrEd(pzmfoBoW+Rvz-R}I_Q2=_j5J{M07hTm7j2*z(4U8v%Q3i~sePiHNu>=@X zEJkA=7%u?hMPM8N##_L68yN5V#=v`O2{5KwjAlMCJ_W{S!1xjv-vQ%$VEp16124%X zz?fz+PVs^9CoukEK};D?NlC0mQiwH3vhzlKe3aI2=q13IZZR-j;bij!lBzS2j2FBk^g#@b+3a|#Dux|{!0G$9M*J5Ox93xbfiBK{NhH3z#9x&8j z1Mi(Dz?f$-CiuXZ2#iU=tvU;f0WZ&@1l{dA)*lgL@lpLMe>3M$)r+^?c*nNKI25 zk&j-Evk0Ps|LAY?_6Hlms^dTDIEXsFgF1f5LZOdP$4^+j(5I|%=yTRG^aX1h`ik`q z9b$b$->?Cp@7dJQ&nzo+n9U0P&GKZJogpLaENQ=L>1S)k?F4MWmQ+rkEpeyMhS)5j z-(VM*@H$!Gcl|J<80R8!hQKFdKFHJ|=?H#gAsAx#m32bRqBUxV4`an@;sg_bQR@JH zLV~gPlVc}p&i43-8R+LWRb8y7n@T4qCAmHNUvv)!yC-@20KY7p+;Kg_bo%6;c$GWQ zJ*j4rZs-Y~ZL1w!U$5K9W3f$DZFdU%d`+Bn-7S_*Bb~8BoYhOF)Ro)CId$dUn!y0x z8;`SkyTt|5%}ubE_h7LpB^BO9@LvN3BQ zo3f7b6xLm)vYxUN>mxg};j$~6EW5F3vM0-zec1}xkKG^#vW;>O+aw3G`{hWsU5;jD zaunMq$FQg6IJRGoXD`Uf>~%SXy(edy;Xa2&&;svQcJ0B+u6?VrYo8JqyIs3WTw=Pm zC%aDQ7yg5+54%cShA4>*XUl|s=|99avanboR${{cJ`8~?#Fb2%A<&LRkD!`Ihk%1m zgPi`xe=wyHp)6u8WHD)ScNtd_&Ji+c&3WO#cT>GZ3W$ke;!*LRU^xViAL$F)zu)Asy>_$OQe8sVP+c7fuA7UV0SX-?Q}pL*0(__SUUeFr{u#AGpE2|2+^UVA491H)0^%gn@7?8z^r> zC$D4E<$9JSH?VAZ56h98SfRX+t&{h&4f0{ORc@n(ayzw=J1I@>!f)a4#xLIQr{VHB z{06<9?K52eRt}A?7#x`R?7kU6Bi+Fr_!0bFnFL1xdc z^;ng^@&B$-!>IE&{xdd;#i&}lh7F^K@kUNH{i{F!9y*@)JZhK&312^-?Ak3cX-Hzy zkbDP+!v{D$eaPy|&wO7sPc$F)GYsGW2F0A@`o|97@Y-WWY;5f@BcjQ=V@}5>9I?qc zI3SLHZ^fQ&Q&|+f`W5Q)HR|&{>nwl3Vf-^2DSu((0 zw@AMr{e?RVJS^fk`}1l@b&wh(wM1%<)D@{W5-#0518E%66r|ITa*^_pijhi@E=0Nv z>1w1KkZ_dqjY#(*ZARLO^f=PfNG~FxUihIg#y>$ig!BW_??^|`7C4)U7!nRT{B#!+ z&5+t4bwo--!nN6JQ;hg68P1nFF)i;z|#twOpPX&q7==>eo|NRJ|w zBkf0e1s9Op;yfF&HjWpxwu|*~o(Z`l&PPG+jPrCzJkI+;?uqj>$h~pi5psW=w}Ctu z=glAw$9a9omN>5g*%s$9$c{Kqg6xdb5y;J4=Ag*+Lj z*C9{G=|#x1ae5l^T$~<r;U);<8&M3%{bivc{@&5L*9wg zWsvvcbRpz}IF&*^ic>MNwcX1j7`5{id zAwR{bE993rwTJu`r&h|iR$JusB-8g#?Qa{e_hBS<`^^nGK zwg%EP&Q?R3$JrH-Q{wDmNUJzI57H*imO|Rb*&;~$ILm`{h_hLcPH{E^(k0F&Lb}D- zXh>R|4TbcK<0`a0&^yk0K>Eg6CrJM|OMwiGv*wV&an=Bm9%nUC_p9Tq3f!g!Vy+A9Hk4wRq3KIewrg(n^uPL!bP|-tqM1%>%*<+=5SlOHQa&L zg}cxl;WUbed()v!fqix}l^hkItJsQrWz2PZT9-cu@g|ldXIEP*c&!tzw z3+T0QA-xqYrgy?i>4Wgu^l|un`aHaxz6@VV--K7v_u;GQ=kRL!Eqo*W8NP-739scm zdL%_$A&h{3`Ddev@|z zzr(wSKj6K>pYXonFZjUlSA0nLJ3c)86CWA=jgJlg$tQ%5@W~Our$s{i)JT+{9;wP_ zM;tykQkyS`)aM0}#=I!foG*^F;%7zL@^c~`_yv(Je0d~|UmEGnS48^rt0IH>wUJ@` z`p8IrQ)Dc^HIm8KMyBvPA~X11ku1I`lEd$h%;gV97Vxc+LjFjknD34(<$EJ%^RmeK z{He%t{%qt@{z7CWe>rkBe=V|_zZtoazZ1EIzaLr4KaSkNKa0fqmyvt<*O3SL_mM69 zr^pWeTVyx?BeIwO6Db!Id0GS`&j}fMNvO!HqH5$#;Y8jMwIUygdXY~=!^jt+Y2+)> zBJ!PR9r;PLjr=A$ME(?=BS%E{s1QA)A<;J)6$7GG#gM2YhDB?Ok5N$3d zMO%q!(Y9h{w1YT3+C}6<)5P3pZ!tgGUlc?Ki!-9b#Ny~kab|R^I47DZ&W}zJ%cC>I zCDAOgBAO$vjLsF;Mi+?dqJ`q7XtB5@x>T%{v#oyD|w7>A5#U%az^G`4yz|{bMM+e40@jH@y1b$0$ HEMxxDHmd^k;$1yf<&= zdk0-P!Q*+m16X0|LJ2lSJu9+paoy>Tfs1xIm!lpUIM8J+>()fDw4JETRJs?kjHn9I z^r;?Q&S|qn1^;YgL)FbOjM3$8-Ual~rxOGiP=DbI!qXp|e8cI7Rv6jZ7!jw>KY|zu FycdFr78w8l delta 302 zcmdna+Qi0n>ff$?3=9m$4002>YOM3}b5j`^gnY6R%M$f-67$magG-7s^U|#u8Q2OE zixP8-85y`sG7Iv9QcLoS^70uOSW1dgfm&>RCJIPTTxre5&%?mYz%%jHJT`G222KX9 z$$gBbEHaD?h7$!0C;wnnsApkdWME}r1KP>Rzz(H3z%&C$Jy4tpC<8PDNb&-C`aqfy zNV95fXW-iimKFe#Y#>3w6AXetHb^N@0fP{OFpy?s5MdAnlBk-uFo~L3=`wT$+1i}j8i7hV$uNsL^%dk delta 19 acmX@cdW>~L3=^ZrGwA>TL@EZI delta 19 bcmZ3@x|(%^BNOAd$xci*j6WvVGwA>TL;41n diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class index 76f8da78ebe29d51b10e7c3dadaf762e07227f3a..fb3637cd130b22d53ef2a2182e9a328daeea6180 100644 GIT binary patch delta 19 bcmbQwI-hleDHG$J$!1J8jQ1uNGwA>TKXL{q delta 19 bcmbQwI-hleDHG$($!1J8jJGEjGwA>TKSBl} diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index 3f07b9e117c3a68baddd03cab959c87582635c4d..df345c24253f19a4d4d35e894ee3726f1515c35c 100644 GIT binary patch delta 19 bcmbQkI)`YbIXJ$(2kx06awm^#A|> delta 21 dcmZ3=x|DT;6%!NBy~#FA)=WGPCRZ})002l?24MgI diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class index 4a481897d70957dae2c7ba41b6e0dbb2a0a1ebd6..b1607b7b3bc1efd5f5c025a028f3ec8270e22dc9 100644 GIT binary patch delta 21 ccmZ3)x`=gyITI7V!emP(YbJiB$z@DB06QfF+yDRo delta 21 dcmZ3)x`=gyITI7#^~sh@)=YdiCzmnl002ih21oz^ diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class index 6249df4327d879789e7925f50b0be6a4381486ad..1a4bfc97b1bdf305fd4bcd2dcc7a785f9764840f 100644 GIT binary patch delta 19 acmX@cdW>~L3=?Db~L3=?Df diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$operacao_return.class index ef53783f24c67c66b5caac6ce8c93350fb375091..3bd600cffccb295e7f6fb37c8c51a54f106b6db8 100644 GIT binary patch delta 19 acmZ3%x`K6s9TQ{WWP2tX#^T8}OgaEM@CAMV delta 19 acmZ3%x`K6s9TQ{TWP2tX#)8Q;OgaEMzy){! diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index 03d5fb19e3a5c90e65d4e02fd12c1fa8c813ddf4..18cf336e9963f8f54b7a68b96a82620f3f81ace0 100644 GIT binary patch delta 21 ccmbQwI-hle2@{hb+hj8)YbHUC$;C`M064+~od5s; delta 21 dcmbQwI-hle2@{jR-pOW6)=UEXCl@p6002bR1_=NF diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class index c10955ce6e7cfbd0f87e33bb3e684354ea417a5c..5dfbd9b9079ba01aeef7494b6c4a1b13af95aca5 100644 GIT binary patch delta 19 bcmZ3%x`K6s9TVe<$@WY(jH@QsFzEmQK41mx delta 19 bcmZ3%x`K6s9TVfy$@WY(jLRq2FzEmQJ}?F5 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class index cbf20c618e6d0e4b416185c40f0af913ba3d5752..b203dbea92817ffe8e2cdf07b09a02e7030e5f68 100644 GIT binary patch delta 19 bcmbQwI-hleDHG$7$!1J8jK?MyGwA>TJ@N(j delta 19 acmbQwI-hleDHCJ$WHTlk#@flnOgaELVg+RY diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class index 2e0abb0e5c208d645a59a6ac0366b3e50499fce2..55164f5d7fc3c535555351e1237c5326eae00dc9 100644 GIT binary patch delta 19 bcmZ3%x`K6s9TVfM$@WY(jB_T}FzEmQJ%9z! delta 19 acmZ3%x`K6s9TQ{VWP2tX#^A{{OgaEK@C7~q diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class index 8e2ccf65f43c537aa6d8a7d451d1368f99c80765..08255b9517c5567e6337c7e2d452288fddbfae45 100644 GIT binary patch delta 19 acmdnUx{-B*I}@Y#WDh1AM&HS;OgaEMz6DM+1X9`KE%i+!o7Ok9)UB-@sX{3Uw>0is+c2wUZEZ6pktH+sso797vc9Ha^~iZGO?3^c zM^j=~&7MpNt)?WivazAL1sN@gCZq&IG$ADzstGB< zFil7ahHFAfFhUbjf{~h#5{%M>lps$LMN)!%O-Km}G$AD@)P$6vNE1?mVogX1N;DxQ zDAk0NpiC1|f^tnr3D8NR7mB3>V>BTp7^?{>!8lDw3C3$eN-#kaQi2LiNC_rtLP}7n z2`RxOO-Ko<6j352fVK#6N~8o+G$AFJstG9p6iP;u5=_&Clwi6hqy#fGAtjip2`RxW zO-Ko5E230NFh>(og55MBC77!TDZxBVND1a^LQ1f^CZq%lG$AEes0k^-9-5F6EK)?7 zlwh$Yqy$SeAthL<2`RyznvfFgr3op)GEGPc_SS@yphgo?g5{c!60D%aLBr>bk|L}O zC@Dj2KuIB11(cLxbwEim)&!K4qb{JNAo~QAlw{w4lA_cHl$2#HC9GoZlzGBN;ex^y zbF1giteRh4Ss^$ap%Z6MS|o6Xl8nmPv*yj8yKGWbWac7@EV6NH#Cdy1Ag7w&In)y#==XD_RqQ88~`l_(+t(NU?XvnMU9 zte7FQizZn?ZDJ^WR@K58)w5)x&M0Hn?kaW{lrg7bZpBPlv#t=`p=FI-j!&)&3tMNK2HW$T(6S2xwHt;s8dKkL>;Mic8==GC?s$s5XHlcjW&^itr8a+ExNL{c|)CSvLJOaq)N1RS3P(YzKxoWM8k-u-oD1_HS63}`-lzhjK82#WgOu7<%-|xF8nk7BOxQ}D3QLf8 z5JUB2>lmdFuD>qbC?YKyiW(HO?0TqmQeV@eV&wiaIbs+etaDt8$yt+O0b5hizBFMFiE->&KX>lM_(BK8dBGeSENHk|)HhH6D2`S;CF@xl)xl@B- z&%Lw+Ep_Xp7Nkaih(Y>-($>Wnk22B=f1Vz}XnM?iF@J4oQs!qCQ!KngqL@)>x#StG z{Rg?^p|umaqd<)Rnhj*> ztFsAwV46GyM&}h2r3a(&6V*-cn_@KDAE-vL@E<|)HX5TCiWg}3AGCRiDPwxi3D@~& zaxvUWL3+;#Ef0FGEj2AJH7u#Uo-0L#{!7o5p)&ui=Y-||*Pbgg>yy@VC8MBdoptXQ zl!%U1s#H>liUvMiPlSxnB8V6G^a457B|E011abv|symZ`rJ}%~?xv?Pq6p&&>Q$sf zP8&8$OHi*}wcsmi)@p~59#4!uLANJ5tc_@9naa7PMJf}%;ZKxVCMxjX%Ph-775eEa zI8jR>@44d$mSYi44Wp=Nw-Wh+`S$hK4s zV(HoD3D^6l#LUZwsR#MBD`s8+jN-3|nO6WW6J%S~UhVVBQ23t`Ghd9JL4NIunLi4p z{uMFv^UzL7WmDcXy*cxR!}xP@mY_y~S1OWPl$2uov-4T8s!!y^Opli zkWZ<>&ojy`O_p0CG&d1HS#C*@QEq9n+>#QrTqAy&QQyL3{L)cIxrNF0EX_B{EmQ-Y zXt&ZrlpCxtN)zpgs0bKNmD3>+90Gv_EwNaXj2f9nnrYe5KwdP6e`$ zTIYni1ry&t%t`F0C32El)hZ{kRS?uGm>IW9RL!0X^h)fVkC`-k;Vj@+BbPC|&l%^D8$5EOM{f4Wtsc3} zBX@XYt4Hqi$TpAMj6N466e`e4k?=K8mWd0R8a^TAK>wtbEf>zhI1nu%2 zj!*=Rqh{=wBf<~p>4B>oTN;7?B=EYLm7;RLD7-=7zlluhR6~fG{%+8a$07y|c`VDI zA&(`_sDku`pm8ddpo>7`5Go@GUn?@ip%VmIS+@Z=j+zj-YFXWiwd-p40|O^a3C8ML zFmg;r3mCZuqh7>_nhX)6v%zQ(F}lhUSIGi!AcWFa$-Hp@Byo|bm%?R^eKaokeHAYA z=`ZoR1~jcTKqyO{QWk5F=x|AhF13avNm1cpNm4Z6h$Jc64;Bw0)~<&JT9~B(Z>U`j z9DXJn_y$}vXkJ&lqOL|nD5fMUVCqh`;2DC58|s=`*2{?HLQCozn~-LV%(SU?E%0%& z>_9WE2|_dLv}RfpWzR`UR%4Pui+W5pXi<@=1}$nbO%~L=emU?N5r;U)_j4kljs7G4yed~50U@6^?`a@i$%YJ4%FLPD#TAzW-meMun?iv z-ag^PajoT;v8JEsse?GabLVdsnc!I*7ca!MjGbYt##-ZBb=E$R1pZUHTRv#Xw80BR zru9B~o4kYA@;^(k*7@XJ#bRJeR*O&GBkzd74L*4vfhdNM34{pNK|c9F1s>v)4;6Np zPd<`)STbJ`?I@potOAem$tOXXI*${4@~H|u$tRyF>=d7TuCUX5@`b|A@X417JIg0u zDeN4de66taeDaOLF7U~>3cJWB-zn@8pM0;d%Y5=fAOP`XC9d?zk1FtLpZuf(pB1tT z(XaK%&nobGpZuZ%=LCT_`Q%p>c#BVdO9sk@yWJ-{bV;7h>>ob)UB$o4Cp%?eACZ?V z>0USx6?mUdsZQCI^pSxN`P5Q@kNDKqfrRA9z$bjlH0v>4r)PZ1H7iHw|GZBf%{oEH zdda7*Vxedy#j8H`R6(!%G^DUMeHunIbo?Obmn`xfpJu4Q_k8NBKraaV$fubq@DrbA zDeNDxWY#Gbc7U7_L!_izE4LcD%Mr9ihVjt#V_?~p2Es~ny;`iJ}pq#IG+|O zY=TdV6gJVP#R{9`(-MVE_GziYruwu@VbgqCuCN(C9j&lgJ{_a5IX)e$u(>`Rr?B}x z9j~wjKAoVjJ$zcBu*E)|sIa9ztyI`vKAohny?t7xu;o6Ttgw|nouaT+KAoztH9oCY z*gig;rm%XSPFGliPiH7>olj>ftjVXd6xQO?*$Ug>(>V$|z^A(@>>!`cRoEduou{zF zd^%rYNBDGig&pP71qwUHrwbK!oKN>q*a<#eq_C5Gx>#YS_;iWFPV?zfg`MHkJr#DA zPxn&TIX+#cu=9Mnx56&)X^p}z^67GgUE}sE`R@mQs zx<+Bw`m|1A*ZXuIh5g;9`zq`vpVlkv7N4$F*k+$LDC~BhHY#k3PuD5zA3ohrVR!ko zNnv;Uv{_;I`m{x1_xW_a!XEJH28BK3)BP3ph))kt*ke9DP+?E_^dN;j<8T3)#;2z#>^q;HuCO0` zdWOP&^68lh`^BecDeO0&o~^LoeR__>81d=33bTBAp2C<<&nNF-N;L!XuvzQZF0XBx zUxRC*l;qA3ON|BC(-yR5`j~D{s;#eGUDF~ig7zFVcu5<#ez45M6;s^$VJ&Ow5UpUw zU%rou#C->~k@b9W4HZ{TYirhy9=yP1xUn@beYP{Vc17drhPs1lo93;lX{ud050l5* zF!Nb9raJV(FrlmyFowzX^#4{$8$z_1J;cGhuC4(yHrz02Bb6z7nAoh7%evqSNxJm% z_Elx$+O>@h#vQCM>&&t-)Ua+od5io9Wr@ijI%;qmWwk9KX4B2JEk>Sbytb+@1u&w? zs%4?;4IcJO2DMdkT3ReTMM~rPa7<`T>lHjYJQwk%;EKlDnx@Hh^|j)%F(pxyk`~uv zSdT2JEMK}i^sIU5{JNUejZ3H0wJfckQZ;EQwu6)RotHK@tysFeX{oply;NL>ZWS!= zuZas+%}WzkqDSDOV^(eRil*8PwN10vt-!VejxPqK%OSeFsI3;1)g9eN$EX02E?jlM zirRH8by$+S3~Q$RKd_NnL|xHX+dOiHxYw3Q2m^$Gb*mtKQ-#|7npwNH5f(e8zHxa? zJ?>YuFPyL*EXF4OnPMwe)HXLaRyVAy-B7o(QI}ze;j8OOO;S9pOM-iWlvJVn{-6Y$ z|F>}&y?>B?nOg0Pb{RJC2BcexR&&va329u0J;#dwcbQ>Utjw+4XAu_7U}M-gm*Jjt z&vY>i%l6rLhGnKT1B<*KgR0xI5Tybka-UFSmK*!~()1~ncP@k-?+aRC)%i)z8gAtfk?K% zXA2otz@fxlPf8|tNOuw$1j-|P=3<|9XFWm~0han~PjOS2EnC&RF3gs(8kg<;$7axu zlD00$XUj#iyV_5RE?eodTDA%XfqkgTHFfnXrNd3SGu<7AW6>O}zM&s$d{!s)gJF|m zoyc!rpVc$mn9gllUtc??vAJbVQ=>3VJb)qmaU1!hvqZ*?K3m836XP@P_);?Vk4*Hx zslsR>ShLSs*m?*i#uwr0CpNBcSc$oVm?cbUL$EgVLD@yS0ZLEy_t^pLKly8ZMNQscq#@-O!?^8f{3`PWGZT4)@s+ z>_{kctq^aP96nBMs{q4sv_Dw1QFgmc)wWRSN`TECxK?bIQ&Rayo!^e?xAxB>yT--9~36wMZ%7 zc|JRzT>z&L+`H`PC>f*=8Y;{#65j0M4h?^;G80yEsn0HBmt$?v>hduqGdkp%TV<0J zd!rEhN*LiEj7aThV%vEN>96+LHSBNDnzc18E7k~^|FCb`>bYQqO1B@EU5mre^r2W9 zrf>n*`|Jkxci06ck#d$kyshGu9h(ze?f->-t`UD4(foMe0uCNmG%>BMsV{_I2|6pk zW9Azq4|)IxYOUH4r;O7&V7skyN#-AIRflD2;1Pz6qF~qs!mt^R@7gi#wro-?Fp&Wo z0U6{k8zuA~mVFVMDEj|ipKWLNAxu7}ff2q#Ix7Egr+`7$+*9+sb)?>zK4DG z2zwM`kba&5-m*gy>f}io9~Uw{LCJ)_E@Nt5qA8(-7YQYFr1+SHPw0SJm{muodAgWl zbV>(uOBK?{5A%MZ4=@nuL!r=z2ZTO6AUyrclnhTdS2=T@Tf0A=x~ZLuDU~rEd+ZfR z+9KvMeG2o!>?QV^aQv@RQr4Cwx1NKKHhhL290o7&*qezwt0##(|Kqc_8Ma?+Ob}Zw zF^!qv1FX?w??Y9TI5i^WheDc<+S$MO6Ve#+B}#JHCzOo*@69xC{c=$P>V<6>k9{Vl zV`#lTYDy7iAF~gI5ByU2z^}xVx7sKzXbpp<1rTYz@!7ZRJ4_>%V`jFtb}nWWl$4r7 zt&W_YybU)h8tMn1{V3+;UPJ8xEn+SvGy>xRt-;IyH#3?7$65+4uhEVvHzhzbLvUiK z@UlY8MMkzUn8;RdTbrPzLF#Hu=slg25J98CbS&>rWSr9e$XZRlprnrreSci~KkoY6 z<9G%#H~qphC9^x^YSME`cpaVrufu)l<6rkW?Pd!%$+LW(&2yj-$;-83MbVL6g=7v% zv2%sk5e%b$UF@{%gt#%EcjjH-h{RDjCSn~DRHRLc7#AYq9DnRz7tzQ_2-m~sJvmPP zUBSmLSx1K)ojfUGA0gr{9U5{{^Ab|_^Lc;1E1bAIn(yeqtUb1>W)iy85xZ%98dCoTg<(#HbCnAw3@VtPh_df)?q2GjtUlXuTB20tr23#(8j49my`m35eE{Mwf>LMn_uDv{+;o($*nv#df4` zQ;iE5##-Byp08#l49i$<7lqkIF-zRYCVG4y%sD0GFRd$*A;_%tcaLlAfuQ6AQFfLxs3C&#EVh2a6IT2HaT! zhv!J(Fw{(=tMlQeCU?NA7+D0Jh=XCXE5sunQ#z2dnMX3~R)(CP7c4wQwObo?L2E`) zYeq@H&`V5h<7g+%C_wu~G;T^H&T-UI*JuH?xq|v)bER1B)~#r0K|_lz7XWZe1lO(= zCrSg_(6RL1hVN2K*L-2r*&+OaQ`(F+RvsvL;K1XzC%sach}J0nw4oz#so@}%c)LmK z7A@6HlAVkcaCD7>0Hc-4!u)U{-Qhwy>?j8Qag@g&KzT}5@j?fWKZIn8#>+4~{zx)% zzQ-R+QbitrB1si{{Ha7n;$aw%Ka&hC_4u>F4vTtB-{a3?TUh#DY>Vr6T6p|lC|okd zb0;2u2}U5vV7pg%xqtio75*xEO~k?A*dgyGpKD3X6JHlz?TrqtPmPR3^EL_z|Kszw zIkv>Y$*Og9!Jo__u(2?IPe_Zsv<@uz)3Oude(3X$_{U-eBVWeR;T4Q}l}DmcKNVtr z*0B|gnU%-CfF?;bK;9w#x-gx?+b|vRFnTMGD_;Krk1HNlYaIfI>Ig+GfY;43_sYck zc~Tj$LPr>fcQ)?i7 zIPe&e7=J4*7w&N6PeumOIO+`{w zuT5@QkWwk3rh>UKUfHDzOfZ6RwUzXE+PqE4@U(f`{9yDA2^H0GQsl)G)+%KxH)w%C zprSya1fv~E@KC7AFEPBs5Hj?zCMu8a(G&(Jn1LpQeJ5}+iwgMY!XUY5bt44o7VKLG zZm*M0mDJQ^YGDZK98+wc2a1I`1EvmQiRR#7Urs3$0(r!w0)=2wQ7WezAR#fxGC|68 zfFk;+1Ou8V81jmMjDdUv11Ezz32ad?tn2}aOZa0g-jsh9wK ziV1*&J6L+nq@ObPoa*FYT_R$^#eUj`i!DNpLOM|qs?$ot@Ma6ue_4q*0YkT~<{KSR zA_g=__MVVz_oNtkf`v)^OZ)`!=X61)PnU{O%T_`Z2TGaH0yL{^D+n)|M)n8C)K9F2 zWdNWEkh4F9U^+KVNHvX3#6>Y@mG7(;3j>^VHZ(ndCI%QZTT6A?5)hUl1s5*<@i>^X-dsKQa6a~OIvm@$@k z4pxVHdRbKDIauInsti$&F`^=$;|wz2b52OaEiLsNEZcO-(lXCEC73^|yL_H=8mcEJ z1@bLFo^yu2Q`QF#HTk+6%x|2teCKTE9JGpz+0pG!^)jJgcH^9f*^P64hqgb>oJ8|B zdd@{qKv|jPA>=G3kn~Z8cjk87vkfk{Ard z>$nsmMj*+-$dfV;z*~XZm>u99MQw3|kt1;0V)hl_V%{ALWq9>hGC)j!gGl1NI>|^# zog|Fefp~*mkfIa=STF|&jLg^Lly(*3(vKMMQ<_8%8b}=+f}`I96m1@$E5cZ-z=6Kb zCW=4MDe0GyPWojvs|)j75hqtT*;f)CuNZ#xwFFfJZ-~`t;78#p-%3!W@TzYoDLB=4 z6I2=eCf1387sbGyE7Utzh!QkHvDutP z_FZ0>_Yr;92Yu%bO4PIvEi@!Sm7-0CA#pI|W1`jvZqyx#>5<|s7aZuAvs{~cP>^_K zOMr{lswPbogp>gDu7N^=fkFbPm+ptMQqP483aAp#9h;3RY6HGlOD1rmN93Aa`x3FZmvt=& z^AV!1BSc*nBqS*;^V~fWR9T^j0J%n(a)~8uP>y)zl*|thlh=H4ZH$i*8IKVe3*V%= zr3e`d_oS#YG|ejH5_BW#KSq=@#w7t~KVGpptXV5|}3Dnp*x6$e)~QmY{2oN`|3pG1UxW!fY|q3@9kb z2}!D0h>mI(nbj8W2@0w$-rN`9#RgxzX)NH2cX|f6*nbId@lx;vZm5QMH(Y{m*o1g@ zUV?9^m3S?U?Be1uuN19aDO&pyL=JinmAcFzQR6ETbu5AkRf;-RiaI834h19$qhzrQ zB1R zqchxF+|90gD<(|I^dbZo2i@DSd~4%s+~CEcR7jgL#}dtHuc&WE&FYbUnM6~j9C&+` znp}7Y)2OTpI!oAwT>2>l-JuZlg+dC$m=B`5*NVn{AlRNxzLp46UiTs2eb{{j4VPqh zbZa-6Lt?V)K8DGz`*?@8cGI%++$R$rxxsUvMytss2Igv_j%Zxk(7J)q7O5=`Rj`o& z8)nJ;#rujovICgRA*gU_wlD;zp{>bbNwA@m+SkE`TCi`E%wOv-tX1@EV#7sj5QBkT zJRrd=4Q&uu0V*0s7i5Rl;R0(6WdXu9JOtOjRvs| zEd!L&;f+>WlDuW$℘g6upYsFW=XILNgSi$ z#e_x=LhnTns%|-c#Jafa4- zQ&vccl$j}OQc+3$-HITac)Q(<*Q&MsECv>BDR*U{4y_-!f_UbIeWXx(ya~B7jJryZ zD)p|Bh^{^ck&v?8t61W`m-(H8AVqetMVu(IQ*v85!Sl^~H5hPOJ(LE?ke_j-4fQhb zG06>Sb%8UHWv+4FonU5&^|_|lE(9t^2wvwB7q45w8*$>q#jA2)yud9I2AyHhKIlw? z&H|ln&^e$x8FVh_h(Sj|#|*kN=q?7`6?EL7yMgL%&^+j_Xb^K(91!u zFzA(_YYlo8=+y?j26UZ4?*n>YgRTd?)}R|eHyZRh(EAy56X<4xZUMdCpf`Zt-=Gfw zeV{=f1o~iuJ_Pik27MUl!wvcf&_^2dQJ{}D=wm=1YtYAmKHi{D0DYoCp9K13gFXfH zsRn%-=+h1Q4A5s9^jV#&Y-UceS<;&9rTR`eG}-L4f+<)w;J?j(6<@%?V#^4 z=q;eP8uULv-)Ycyf!=1&cZ0sipzj5}-JtISeZN6J0Qy0LehBo#2K@-=M-BQh(2pDR z6QG|o=%+wGZP3qv{-;4d3;H>OejfA-2K_J4FBU&CEB9H8Mq4F_pBSi>P24%Kj&hQl=+q2WjkM`@U+VZMe18Ww6; zq+zj!B^s7$Sf*jQhNCqcqv2Q$$7wiT!wDKzXgE>BN)0DzSf$})4X0>0Rl{lxr)fA{ z!xmTqE`V+kx(%Rvgx(F%BSP;1=oz8+0`!W|?Et+a z^nQRo5&9s&E)n`LK;H;`6rf*(J`T`7LZ1ZKHA0^T7!aZV1Q-~h&jAdI&=&v(N9clSCAVNO|D2&ig z0g58@bAaLq{Su%gLcazmjnHoa$|Cf8fbt0a5nyzL{tPfCLVpDq8=*S@#zp8(fbkKF z0!)ZlHb6zh;s6sPmJ3iBu|fcoB31@KRm92!m>jXP0j5N(P5@IQRs^6rV#NTaMXW9W z(<4?KU`E914lpxf^#qs|v3di{j##?@%!ye20CtO5y8_IOSOWp(MXbR9^CQ+!fZZe3 zaDW97Yb3zJh?NJhN5m=sSQN2}02W8A5`ZNUs|;Xi#2O8-XT%x{uvf$y53np^RRHWA zu_^&-B32c^@`yDBU`52L23Q%frUTSQteF6-BGznx)e&nqfHe_o9zb2h+8tn@2)8uOWSr;2DUB^oe*5#^>8x5AO_EiS!8Wn4k!P2p=GgvpMST`Ch z9qVR;b*qYXo58w6v9=m4E$W?urM2jC+2`9-+jlMn(O|u-Sg#l?o$xh-rQ72T!P3=w%T(pJ)8oEt#C_k4`(b+l z9~+tIT7PQ9O=-u^jkvlUzcg67IleYnx@o^PSh_jBH(0tkel%D*;m-z3H^;An)mC%t zNRPYIh-)^7P1_5wjZ9Q?*gVOyUDS&<~mQjKcI43=sL zyNkinCB_YwPT1XG>4ZHEmQL8)VCjUr7%ZKzpTW`zcQsf#;Xs3>6Am_5I^j@*r4tTM zvh0znaqjp$qMqSG*~*Xsw6AO zYl^|rc~u)M-4fH&Su@jFv(s6-rL*RxvvyBsElg)EN@p!eXYHBJT9(eLNoTD{XVs>& zR;RP-(pmeav(~1w8q-<(rL&sTS?kkT`=_%GOtJzGaBz|pD8QjfRuJp(BrAw@WRexc zIy%V;VjY{#IzF9sVmj;Obk?cqtkct3XQs2xPG_B)WChZnpJWBnUzlVCu`W)sf>@WP zvo23(ZA@ofWw5lRU1PAcrEM};I@WatOUJswVCh&l8Y~^_W`m_;-DuH0fWBt=$=~&MhEFJ3wgQa7=Xs~pwm(y9Vq_bX2XT6bR1)lt^Br6ze-!@pf#CHvr zn$y_tr?WmZSbF69*kGw?j{T{@Qqvs!bAzQ5erd3@5MQUWzD=@%`Na3>tRIuCz|wwB zvVw%arn7b!EIlIcOtN%)F>0`ssLZ|<`xq9(H)gC)$X&pr*xHEUE^5?f(L3#)(Yx$X z(QS5R^lp1W^d7r0dar#{bh~|S^gjFA=>7J#=mYjM(Fg6fqYv5NMIUBv^byuA`Y0P7 zeT+?rKF;PvpJ1z^PqG7}Pq9;?PqWLT&#=wWf3k<8&$53A3M)QKXKlRe(L-f{mczVKX-dZzi>xI zzjUjkU%5-8U%Tt0-?*nmzjZf8zjJSoe(ydS{lR@T`lI`K^e2x*fA%8LU%Ua)U%j&E zZ{CdP4sTiXcdseB(>pdsybEH~yCG(I_r`4Rxft`_i*fJAm=g-e+)&S$7aA1{g(_p= z(1KV-s4nJ*4vA%kPLE}Uu8d`e?ug}t9*cDfy%x(2eG!XBnND{6Voi ze{?M0pA{?cYhs0dORUI0K342s6f5y>jFtNL#mf8_V&(n^vC;m|u`!u`Y;0!l*tpF6 z*!aw<*o4eIVilSD#wKPS7OTuWGd3yn>R46g*4X6CCt_1F--u1k{3=$RWyhvvb&gHX z8XTLEH6}JQYj$i_*7Dfwto5-uStrDH%epu=H|wU@ysZ0U^RxaH+db>U*n+HIVhgh~ zV|!%xi7m=5h%L^Z99xpTD7G}aKDKA};jz84&x$R}z9zPJ_CI1Z*-yrnXTKR+k^OaS zWe$tg=5&dz${7+{oijGJCTC8pE@wq-pPUV`eREEX)#qFiTbpxptRd$C5@F)%fQ27r zF2nJx*wn+pIIfiea{C@)-y$Liv%oC_!8}eT@l^yCVqx$o-T|1Q6IbD6M`V~eWau{L zFWSnowz8arZQ){q2t1YegVw3no(Wt0tMgHV)!gHeScqFlhC;0$MwB*7UeIYAr;Ix$kl%1eng zlyqYGtN@`wPK83H=r`yXs2UAzW5wvZ(iub1GG**eHrgV0unIbp&Js;^C&Sh5``GlE zyqM_-Gc8igV>~D0a?%^1^W~%~z%G}QP5?tTl1za5tB8ZwiO1OW5TA^}Pqd%-4%67t-^ z8U#J`cGiGj1%9jVWK9f5&}HRpNStk98-^f4nZOQ`Nd+aM3aB!Tqqc`}o!ih`AYM1} z40(oy!OI{8X^y&H`r{$>^Xe8>;-(Q>=k^a>|OFXKArWQ?EI->yPk%$ z;&_y@qu9}qq$~NF9mDp6{&yo^vSZnCu$&=e9TQg!7)oBr#CNzj@+@R0vXcm7Cqver z#QmKNbXl>>rn_v}4w6Ty75SMA-r%yrB4`3$rQcc;?Df!t3<&Y)Hnt3!a7wBsoGLVd zmNQz;X}QCTUD1AMIH3hz%oAGB6#!b$2>{)n1Ay+w+vMF%WLFToTtPxew~2J!#!g!l zVP`nD$YU!zt2`7BZI8K9M~FOo78)WlCk8P61 zGWuqkhq)BV_+$Ie5w#Y>#>{E zw|Bs^~3km2H?wS`S?=W zEPNwvKE8>z1Ybj|!3WOv!*|b`@lmr4v@bb>4j`A}n`2kgA>?{|U2H49CiV!v5cW8} z{`C^R@%08RBk$sCUSHwsT|4OnYS9XsMJs8HPNH4uWIBvaqhsj|{GE=!v*;dl30+0^ zqWjZj^mIJscP1XuJ0FkNZKSpIVOlTk;}~3$gK8%1V>|5QIAI_3=D96!B*le6dhj-O5sYzLsxjW3G)AE{hI1AQ7pSfqb8|9abgbCf zL<&Gi<8+mAy3#ng2ny`cP1vIs_qN9zq3vgCWf#U6!*31j??7cn_q6S{@0YrcXa}ok z54C5ekI9Ie$S}k`G>F@dWvaL-2J~cW1A0mu&{Hs;yYYK6VL;B1xRWp-U?~Q4w_!lA z(_kQYN*YifsBdM$fG#2f&?N`KfDVQM9R}q)0tR#x6z&+P+9_l>KDads>M{nO)~clE zkZOEHYcG60YbCvyv|zN|KrbZ+(koy*bMzK` zyXiI<&{pyZ{RfQbF0zB(O?`YOxEp<(4y8}Pl%A$l^ck4XKk4rH(C>ltWoaa@JXGGnNc}7mw~Sn}L7Rq$ zPv?a5I-Cu6g9q;|w{4|9mO6npSy z>uAL;XK`1I5pNA0b_aVmnaO*@x3Uk)F$wxum-6Y*M@Sf2^zJ6i!M3u`%fq7dgr%88 zd4{0GPac8a$-c0~WFnq%C;M7rDndLX9@@gbSLT7p!$btkaHJ$Ds{K=I)qYoGE`-7F zMf`qBsCHALuNj?3IG+Pciz;elnmPf9!!eq0RP42UD$U{~q z@}iYXUIzZQ6(wI=oyiWX2eqs|G{@>kcd`1@GHW0mjc)~4ScBkH^OwuAi+HLj#1*iK*`W@QI* z0xX1Ui+gg)#g**)$XIS8MFvJKrQ{*0$4N_ z&t;Qcdht$p$^Vvsn+cHBPI7@BP}(jeF;w7#0IjXa#T1+5VsUWbHum_Ut(>J;5$7pZ zM9W=T?$PoPEf3T33|fxwZ)Vc+ELxsT%X5U5B{V$8FYYAtN6qon+>F+sazpT|hq7RG zf`MN_fd{_@z{~L~Z1tNBx`+N%0QSXiDtFf-io73<8Ss1+P7s zMVN>q@)Pm*#81@2tjhvc+-Vb;$i?3=j`&;bioc^g@pnj$WcACDydF7{iLDh8mX#A0 z0Hbtqr&uR6vDFi8OYy@z9Jkg9ZdR)y_#VKI5riRFw#8b&3-NmxzppWV9xumF?zA(r zY?&d_!CK03A02anDq72TKp!I&OFi$81}y6UkeMd$x)@N_yPZ zaWl5?LLK)u#64HVEh+cgkip-=N9(x9BkuVs?zr;IHsWS(;S+V-C5U^Wid$8l)kfT` zExcOC9jV5q)tjx0+gv+jBRK|%Y#Cj}?Y!B#G#JN3XdK3=R~piIhsASbY;!c>(jOQr zWJ=<2u2gSSvUx5 zJU)FqfpoSiNmr|ibh9Rtp4Jr7$Eqg%tm$NcHIodsW|LvoZe*l2kK|jslOk&&DYX`n z(biHj&f1eySS!dZYc-i`t)T~4P4r-^g&t-dN{_S-r^i@l(&MeO=}FcF^i=C2dWLm1 zJ=^*lJs9)b z^(NhEy=8IhZ7bJ$*V@JU!0K;(Vhy!Eweqabt#Q_u)=cXgYmW7Uwb1&}+SB^k+Q<6U zI?(#vI>ffDqix$d(dO29wrgEuhplVvEbC@F+q%QutNI z^@ZKr+F|#_#@PVdwFlan_F%i4JrsXO*u(66y8!=}*+uqbyTsnzF1Pov$Jxv5@pi3U zVK>>8_K^rV#-3)MY)`k(v}f9v*|Y5%?YZ_X_5%BU#D2zJXg_N&wqLhb*k2&kZ}v+2 zcY8Gp+x4ug-N**p>sW=|%qr~`R&B3m^Xv_5fBR55^4^C>i!hJ`BQM(zBk!|fszJM>p$UBV9mKS7LTxk-ARpd-rD?6TR~7)+!) zB`4CDUtbkCpm>g)NGCkgCLO@z*>P;9yv2*7!ei(?qF5}JGf?iML}O7go0x^480y5Y z6Wr!?%565a8b0EYIL3|*Tlj&Af^O6WIVcFLxwq`%&b+vbQC8Pj*PQ;CwgC)~MRtjG zkrSA?Mwwy*@@7@$L9K?NcrGT@{4lf3+jN;O%ET7TTboF)SZB78VENpA8$S}4W<~j1 z`O)R^czpXYo$02X4Vc*T;}Xrw^ooKX7py3R$jSMZNtAaLl<>vh$1%j}RfJ-8jpqcb zhSXEu1$J6WesXmpIPxNHVugazb>8uKF7moaROU=*;@R6}o|3Ec zl;Jx+74c-=@vdWSiP7G5R#%0XJgfAuIb7(%C+pbhXbU-R!eSPy1}r$3BPj zv(F_1?DNQA`vNk|zL<=(FCqE%rKHHdjFj4!lhO7SWV*ePEU~X7``TBLgYB!y$@X>R z68m~`rF|p0-M)!z!>Q!c_Ga=gdkcBl-b&uJ?P; z58wk>rZtRZVMUc`6|-Dx9E(`9SZ8Y<>t@xk?p7`9VQpYNtpk7`#d=#Ou|C#WteuX)l23R+>Pdxzf_DIb|$|J-X9}}9p;wutFP%pv<)&+)6l>qHK=?&sHF4VX(#wr=Hr0~R4K(;v8age{6qm{0h%z+%`2 zI+csZ*gDfnayq{rSQjh;j^^S~wyyLkV)MWA8%do0Kwg$>$}U*{Zk21wu2v0M!f%2s zaof@3R8)*pbPtldlYCA(%TYz_9tNvRwZ`1!^8HhZ$ZZsK>Oj|F!GV}V!)wKEokMUeQ(M==t<8%sLvyJduUSd2^N?vh&bi9zU& z6py^6wMV`~WDZY!2Y$EUw?$*Z(K$S*xsa)ts?W;YO~QiBJAym{{8@Gsd5IlOUIY9OJC1zDPQiKE8Du9ro95sftb^G3bO^hE zj$#+$=;|W67rtBoZ$%E0+m3q&-iq$Qj)I>NrwLO7Z$&5bt?)wPG@+9J1DM!hn!xXb z9m8AEvHUJz4)(-`^KI}XVuz_GzZ;lG&e8iyAw0;c_LahPNXov_8nLf*n%eS#ktZ!b zxvwNPl@7qar1i-YhxTG)M=2Q_8U9EvP^Syxn-#4sq336id?vQ3Zr{cahb7#TY6E$>Rpdtd(iTpw7eHB?@i15(DGeq zd0$%IkCykR<-5}I0knJ|EgwY72h;K)w0tNnA4bcE)AA9td?YO&Ma%POd4AFww+rhl zNYeKUx-dyUDCnXj{ji{mleC;8mn7*&MR;j~R&(aE1kE28;pIvCNkNZJ(oYK-(|5gX z%>OCo&|{PIbAle1q+by9_$2+JpeH!R@;F*gl_$m~=Jc26HWi!53J{pYP8P-n?GwkX zm9fekUmm6+To5>W4FjwN4>@fjBlQ7mPL5o&ixbvK@k!eg+{8IgWxR5GtU^wWy$O15 zEbeo3hnJiTi#=A&x%+Rn?g`vnxmXPF;z}WpmUmKYk|-NTq!31CHdN;&=JvTNkF}ev z?FpY)WUL&pqq-p#_TTob5c%ksRNap$N&(%WQT)@2i+J-bYoS# zYP)WEf|miH^YF9q6UXP{(VEYx)_hB@D~#407w@`-zl+w~L>4JAdu_H})M9$^0xZ37 zgtFOsB}gxtEhT+irB{jjY_?w0i9_*XaWJ9JUwUk|-p~Qzcws!82*8Hc+d3d4UJ}oc zx+S_U(5=a_$vL}9-KvUJN!`NMtE`{WtD^ESVo9XjgL;z;;Hd*ffmQd z8q3G2g3?PpV5!T;>O@)M5z$0h*vZsWkm^l(6;bd)uAQDEHnJ~gB@hRK2ied(kv_WxqXdLw9+rWl;p!z8`)Fa&nzt>WB zf(>F9K-l1qLHeGp)Awv;gFoxUxv;@pmH1bc_~r7>sfowOJ1cjp+6U&iLnn^FNFuU* zS{uo((i{`^FsGG0>{La4P~I!GsIl>0srG17T~riBVY!d45PB9^{T`#y*v}wNoC0J;oqHsy*`0?8n|DE$l6_ zKl=|kh`mh?W$%z9*t_It_8uQNeM>%M-;p2L_qZLiQ_N z&3>c%vmNw!PUuOT((|}YFXfD0#T|M*cj*><<@p{SrVrxt%g^yl`ZDiCKf))IKf#Lt zKId`zJMU@{-rcf!FRKslYvu8NRtXnc9cx`j`&?&348?R=K?8lPi*#CNxT;0vr@_(D5_?}1&L1$Gy{*zU=f zU>|6)J&^BZm+-yqO1{dT%Ioaue677FZ?ISL{p=0A$v%{Cu#e#T+o$jY?T!2(dlNsz zzKI`d-_DP;ALd8ckMg7KC-`ypd;BE(Q+~4jH9yt^D)xpJV^^q#-@uyr-`PR@W_Aj{g`LfBXXo)d*p*oEU5B;a-?6s4kKfB4 z<=ffQ{C@T-e~`V$A7(%BN7xSjJSY4G?(-MA z`~$w4f58vrU-BdP&-_^a3*X3p<2N~!-|blZKF8+IIgGym{0+z9?>a932=H?!%y&4M z4tKJgnA6GWhQEWH&dxBWi!;{g>Wl|o?R0l$I6a)DfGeHePMx!hv%%@_9OVpgj(3JT zCpme}B~HF`l~e5e%_(s8|C>cDXah?c~gL z2RQTGVb1PufwRCZa~8YPoJH;oXQ?~eS>~>BR=ADMN_V}p%00?iz?j3x*MH! z?zK*{d$ZHx-r;O;A8-zEpK=az-*gUk-*=92KXZb%iopZd=c(3Ce=OS;RbFsIlbE&tFbGg^zZ1j$EuJlfIZt~7>ZuTy5ZuS1* zZ1%P}TfAqTyS$g3ZQdKsJ>DnIcJDjq0q;lWiBQOSGL+-I7>YSBg$kUPL$jS%LQ9=D zL;E;yg&LgygbsJ!4jl>nWar(`na+Em^8hb)J`CO9d>q>5d=`4p`8@Q3^Hu2I&Uc{? zobN-QI6s7bb$$%(aJ~<_&M)Dx^J};pU|;9=@IaS@3tc-r!3~A0-0bi?H#fY}jf4+z zJBJT*yM&K%yM|A5Q4dF|I-G=Z*{A;z_5I&!O zqjnp@=kRZVVYeZCCjSl?_C~{}@$Z3QZ!~-|{{a~GM#CrYAAw z5Ma4vT6iCa0*jED;nj`>EK25tS2{MZ7?~HYahSt#H+n&MFPxik+?QSyUgEe8_D0Fl z@E%SG7+xzE-rWg18Q7X!9-iy?xSH0T)P`q6<2}-YtO?J6-g~&ayl=SL$ws_hq#-=n z$w9o{WWR8w(+N8+eMn1qf|Cnu7qWkNtP=s&mmCx>ccQ@hkwe2JP7GLoazwb$=?rXF za&$P)=>lv3IW9cH=?ZKhIWauci31x%P6-ckx&a$ZP7m+ubO$zsoP~bw0cI??2oR)+Rb%p>NO{av`Izxetp$kKMI>WGkJ(jKx&2)wX8%OsKjdex<8&8i9 z4R=NYn?O(UzHvrDZz||{-Um(|u!(dFDRJ_FRnkxNb-zhiKB_yhl~y^;atcJKHJMsY zA+Sl-Yhs|RqRUozEcWp zGA`GzcFKTF;XYa7lmmm0CLhS0r|`SUBQocy&LA>N?x0sYf3q)lMk8LOv)Mk|83SyR z%k2rySYTCdC%e!Y2W+xCLzg?n+tuph;3fi@;^kRUX9BRP-We#j0$86;fJpzV|LQ3uzQW2XT4V+?B46E zVt<;!3fJi#@`Q{Y#t|w26pAgyd1eZ=^TP=(3@j+kRdoEivCOn z?1VF#@;}nAvS<0R9zQnOv;RYN3R*vWv+HIXM?Uf?Nb@#C)@B>$I&z!UxDDYPW?RbAKiv<K2l2ZV~C}mXJPfDe32ykpj0I<}`uKcPq$ZcM_?0t4Omu8zcW5 za*jKfY;+fro83LgZSErSkh_>X0{mHbDS64=le`A_A9ru^nY)U7?e0T%x@&2U+dv1o z`_UozZqz8Z8Hf5UbT9Yd_HIL9_1)?=gfjzceR&(gnF&nZhHz$Kbt`W}IJ1Gt+Yrti ztVZQ+2xm87fB7~97CuXF2cE-XBU_)8XT&n}fl_!A84g08+-Kx;mxsIHCC-&{ z6X!~P+}|Dx_Lz~{4Z5$PNDu&>O-VS$Vgmw)AJS%WCX*#IJ|vjJzpCc42c_MKu8KWK%lSeB@9sbJ|V z4cW15(H6Y{GR1@B**V=e;tV`Hr^nS2^tpmWcyZO@pTp)dPc>f6&NTq9qfLQ{lMRS$GjyVBW6{0?Xy29wNGY32xA$;?WO%LL(#K z>M=UnyyB&v4N+O|yhXr0q?jolZc%Fww?LEx&$a-+dH5|#c)0KoaW=1?CIn`l$T;&v z+i4F6cdMWOKrX_=&BHSdBsh_w(+F-_yC=fKodgeeDm>ij@Nj3q!<_{WcQ!oSIq-1j z!o!_M=DBDU_hPc#y_D3smyt&I3Ua8sksR$_15bA~InUihF2uV5ZgFoS54bmz$K5;0 zGwxmF6ZdZNqkBK)_?TG8#Z6oHA=(4@0DM4fnENOl3pmkzg3fZErSseu=mPiObdmcS zUFyD0*SK%eM)xgxu=_T>%zcMm?S4paa6h6qxu4O;+^^^>?$`7!_j~$|`!oI4{e}MQ z{!V}MsKq_o%JnQO>M^T}=UCl5*XrqYvif?tR)L4N(|R#$sn^w7>BX&jua|X@*V{VG z>tmhn?P8q?{9>=4bpv*!wtC&M5i!_$$Qxlj?iE@udnMLKUa3vI(YED{u|03Bo$HOW zi@hr8p}!F~IqcG42iYFQj>1l{?1y4lU-JQkCL)%@0CnD{bvqX7ln+NyR ztnZzr(nHU)-j_R!A+o^wzviw4-lppNuf5Ma-Fxmi_dV}EJsvW9WO_;{`BjF99w8|q zWDL!bQj`j*NF*UcQtC$Hg$zx!|2}Wuz4zT`pL6a$ zXRq~LYp=c5Y_TKKY!y1wSH;_~q`^2(lcuBRin|=Wm`(&};^@T;(w^Kc-j2uV7!?Y%h6WIPs1NZ(sOBUV6k1Na`2bm}&MoeZhk08Cvm^$)0

ETWdDIO{Db%eiyMjmEkSY1pZGc1F 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 literal 76771 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index 12f2e0620bfc133b30d6db48fe6cee50adee6a92..a1953fca3b7ae60bfd87f9ccf9bc439abc51a98b 100644 GIT binary patch literal 21153 zcmeHOd3;nwwmwyLdm*_%$R$98Ku{nHOMry1ge{N&k&r+Vz{nDtqzSD_I(9mUI*v1L zGve;Jj61HlBLRYnh~k3#j>|aiI?jyaIx{K?^1iBjyHiOwYJC3le!myEIrY`8TXjy= zsdG*(dFqGzA0(n&F~dWg(ePEFoYvLNt8xPM{<@q%Q`jGB4*A2rx?m`$*%xZ@hjNPi zt36~e8X64M=lGh!4WXP+Yg0JT=+6m<{QjIO{F)PJz?X~?!olPGO=Z4De+wgPS?RI9 zwZ5DNUsHWfWjGXQsxM$9ip%FPVkL}v&JH%Ugi+%XUqh>39K;VJS5-|-?pOg92RmS# z1VbD!UV?N7LYv_-NrQE@QW0g8ip4p1CGp;R%&!I2J79L#rs z;-J(4ih~6XP#lywKygrRgGq{mg$__0EOLP2puz!)gGvV|4yqiWI9Tie#laE>C=Ql7 zKyh%C0~80;fa2g72Ph7F4p1Dda)9EX zmXRABKW?mIp)P_H5B>;JOstL|#YKGtDK^$bkm4f{L5h)MBS>*_Tm&gr8X`#X(#Xgt zte9IV=O}DZLSaQo)q>)xlG%ka$A!1E%8ROH+RZ3&c6nK4RYgrv@$6EWMKRa?C!C|O{ClZ5X}%L`RqeZWL%`CNzNWSGAN#S3Otl-JBIEv&38mQ7e- z9YW13FRGbcSgNY)+mRKKCIzjR6)!CnFm4orRw`MM!mwmRsIHFWuS3YuptPW zKBM$U97fBDvKT&T@aNPv_*z>0Ejd-4Du8K8^taRon}dbnRv(6VVt4B+R$rr@5p&8* zOUswm_?yBZUs-T=Fw`7e;137uf;EArnsBhWE_gyy9<1D9rLm4{Rv=vI52KdhU2B0y z3blrVA+3^pnB<|I%f&P_5yrW58Q*Nx16n)K&ad!EiX(*xEd9JiI}KFIBLE^Jtk|R2Jz6 zr!u`4qU9#Q8|igv5=P79L&h{mgxp-ovOPXd*>O_D$orC_nD^tyqOT8kzIP^RoI+^i z2&Yg)jpLMpSlLdgjtMTy#rEy^Jd9tYU7N3Xh0t!KM$N=@G>u`1^xXJK@ahpJr42bm zDfH5N4pB@SZ^!b)FE|-;L=?j@CDLwag>41M9fyMP2Ev&`x#J*f`XLx|su+*4 zjP{vr4rANN#ehbX-Zo9LOo#gCPC$W34@euXRiVx4+==LcNMn&=T{S;%ESMhXFl}p} zEaK>1Uar>HUHV3w8hMjYEYqo^%P4o59eI-xQF*7GYih$m>sP1dl>vs zQrGa;%iw%^Obs-x^)&?Qrh6G&jcaOgc?FX2FYc*D7}Q=^sJYj_tJ}Adf7{Rz4V%w z-tf|!UV6*RvcY3UW`>uILIW9@Sx6x&6&W%Cb@gV9QDz$mePCvc@i*0_M{*Ew_Ox?g zx7GyfPzbgKpR5k}8ze$s^v)R55NHg9(;I@dzJ?ZLBCza{F(qDg$w(%S3~;ic@d zj2t8oFp7*RNFYA!nc=IIv#6%2wV?r72n;_cEIs~ zr5!LA5b+%fV{y|OY63)1=gsi7z|{MJDi8%YNY#w+EsAB;7}qG4bt6=ZVp+Ki&@$>; zn~_9BmXJ~J4@de1aaf|nSn7lWwJ3n_%bigl3%&#@Yo{J@n)-%Ea)G@J+Atl}#eyeB562H?jnq-O7REw)s183N2Rrgs=T7L9LJFRM5 z@1$k^xprFBbG}Lknq=2rD3vAPD9goiz!gwKdPxVA0$Wb6cAIwE>?jumOQmBr`I|H*^$S8wkl@2L*4ES`r9`ki11z8uB+H zeXD9as+qS-%?v~|^G-E#3Mnz}*07Z09t}%D+B7UB*{T|9XVh2Df#XTlRmdU{K}*+IzIHumtULorTy|-lfJT3-LO?_S>mmCLOR-NhbYZr;<%N zXs7y`jORK9T@|U$XuJVTvv^QXdms~2%xQai4olFy^tjOQsulI%JCeMh> ztYvWm>@GV)h_sFHngGgY{8+%>vEzgfvNM0I-ZD5@>?!$ujRjdtJRJK&8L{eA;jazW zHw8}ehbq^=^4C>jcKQ?eU_MkTl}I4Qk3fnKV^sNbTZ_X~+-ATQCQzUWQ$tD}%UraJ zG*J>raJg+ICkzH4E6!)}8-w4(xKwGoZz*zMx&|QV)?}2Mi^WHyFN9q?zuc>1)HgFL zwyc+9mum6sDa#jQ8?a@0RlrvtTs}7tUS2Y{xM+E&y~5=!q1xrELd)e=;&Qo_*yVLS z8kFA8*RmYjiDR%s5ct{s{l8mqW-XDUJYJ4+8fGKUGwB_Aw+GMXlRO*&?6m(?^(LRp zr@%JVHw0J7u(MR5EOa%Ow71g zRdRGfmWdXYmCZ8wa6TfD7x6hBUW`>xyo029M;~o$6;evz9={OLcR#SvDyd4s>3Gl(H>qIm*KMDl7O@^g$>~- z!(P4^CMkhe@TGFJ5MkwI#wuk=Nt`)R(iD!`0y*4An|v9UaaeO}%bGdChKAq?Snb5q zIAPbuVDgHBz8|h%I7orDk->8v$~~OHdAMEzbxM;T0XM+lW*%yzDB<7>Aba9 zP4dmLCO=Ml{ZRK9L8d6>7t4~P8C!BDt36bd4~ z8yQdDc$xxBC2Kjso}(7X_==32R%KQCSl9eo{VAP!MI`pnl5#zN1)$_M5qUcK>D z0_KW`4pBaCQ|N8j_}b$Z_?jJe<&A7jND)sn`RTGBle(@P<;ycoewKWhs4WI%{vS<# zw#@I{W%VcDon!KIqu)5=XbU@DzP`ZZ7xIf>&td#(*DxxLCwNDP##8Nxf@(9NeATi3 z+Hiq~|A|pSH_g|q6T=wYI)6)HWtHUcQj=fCFGq}~I4o?!_^1CklL)=|75pj>M~JL1 za8GOr`=P#9^J}n}3reS#V)Gmb<}Ae7Ph^IA_;rl>cXdp&S_2Jr{*aen5Bq`j^cr7! z0>75uC@sNFs49*nfY$Ph`7I{j$Zv(#!mY^w290NCmB?>zH~AeL(X-pv+>C`Rqd~A` zS~uD!QclAKUXH-poRVJWUu`dWRr~kIIyN&J9k2aE)+PDcV)CsV=RcCKD*w8$$z9*+3iQXSH{t4#iYl-<)Td#|CX2WoxLfrHf* zzCd>2GbVqQKZkB@u{X6DP5Omw79{c)_)8xCBBKf290S|!oBU<|3OIpeSlhth7G(ZX zR@BB*Q&7fo0^2LL4a$Y(DJ{&c8S79OV1*<3c@D;|nOkl1;OptXkONzt&?QCuU6a4Z zp`^UDO3vI)lg_bSUj8B4v}c=#{|(J{vjZJXiR_Ih@Q?W4rT+ed(UHG`{#FH=gG&EC z;!nuA@h_8q%0Gh-z-*43S}zO+5%DEQBInj{pdqIe%Xaj^7yK&^{}Q_bYF0o*!nen_*htJAd;^ha?4fa^t8-3|=rJn8)>=zp+Csq<91o#jJqu>8p zquSkWbPk-b$P{jbdL51nec-S6hZ2N~--utLhba=IC-TBts~ZgoVBa)FPtl7}zZSRw ztbv-=V1vCeh!Y*Pw#GnXek|!Bh(Cd$$L1-fq&zJck2keVVa!k&IoT66uLg=C{C>>R z5piO#*m0DrZhVdDjcGqYngKTk2q$E}e45(>Q{WYY5NdTAb1Cg$Qw)(VD*@70prud~ znu0>Z;CQ4$BhQvA-{uSioaIZoB%@f40Zx>R8geTD--38VHlr!sv=8>EsXk5+Sz?sb zB6!{@-8Qh%;r9xxhQ0R2_7oW$h;axG1O}>8a1fcvhYSwjG(?^$CI|?h5?qCAGjv-i?srVcQTC1FA^97GYNrCr7zG_7fi47*`bVo%$W2>f8#2gHcm>a1wAI4JQLz8tx06qTznP{WUxQI90=k0S(mfAmB6&4+b8h z;dJ1k8a^EO2n`Pd9z{MJ#13Xv5^MFeO6`ehse%uGjDy;DCmY1wKy04Zw{WZUPQ!xEc6(4TpeRG#mzQ)$m&26EwUI_(Tn# z1bniFe*=7qhJOous)m0D{Cf?b27J1P&j3DC!)F2iLBoFpK3l`s_)i+X1o%=7Uj}@+hW`wFg@&&LzDmPa17D-zYk{xR@CM-PHGBi`jT*iQ z_+|~?0=!Yfw*ud$;oE`l(D0qWcWL-;;7uC72Y9oF+km%dcq{NW4Yvbt*YLf-_i6Zk z;2j!%0C=Z{9|Yc|;fH`9*6?oNM>PB>@M9W&9C(k0p8$SR!%qP}t>I^YpVjblz|U*= z1>hGo{1WiX8h!DJhBr zB}H+Zq$m!P6va`JqBuxW6vs%4;t)wu93d%+10+RpYNRMmh!n;7kfJygQWQr*isC>> zQ5**;io+m9aTKH|4uTZLF_5A-1X2`7K#Jl3NKqXBD2l@$MRD|_C=PxkmB&7c;?M`w z!j2|q0_Ri)?$Lb@?~NbV(xj%H%vCKc=BcbUEY_p4+GVlC%4)a8dRA6@EY`cS+H0|- z%IYL!^#MU%G6*s)kRBH63zA^56p%!V^#d_2)*qy&#Rh=%vREoeZ;KrUl4P-gAbl)0 z2qf8JX&{!x27~mq*btBui=~6~v)E9O{uVnNWPrtv07r8Ep{Eq(H6TNWSPZo1X*sen?Y7sY$M1@i`@oNW3f9xjMgbdWR1mkf&?tK3*=afJq&W3#U24^ zu-IcDjTYNexrIHsgFRhsJdju|`m$#iZfDPLVK2vK?TyWPEjH_o*sM2Wv)+o$dM7sP zz1XY|VzWNdvOc!C|A)+S*#dpCu-fR$KDA$b9$WTHE$iQQssCzOPL1Cjs>Xe>WxqdE z*#og<4{BL<>zrv>cI#XmqDJnDE$h*;oEm#*Sx$|KT9!TJyk~4y@7Sz9u~}AZR?24B zR?hq5_j)=UzX!nFrs8N}fG~`^M1SLMk!@@e(~Nt>LSwV2HQK~lV~aT3*eb3zwuwzf zyVz}P7kiC+#b?HS1~cwA`Wico4C4V~rm@qgG#)e>j9td5#zV%%#>2+V#%|<1V!UWP zYJ6xsW_)8j?n*HBxYCR#Tw{$VU9*j+TuZ1wA0WBH!+0t`%ytA=lweyJc`mVCZr zV%x1U*Q-xVy8s`^2g#4IU6kg0Tug?luxIwj9ei;0cAmbSAKoE*f_ixoZaG}6D(Yt! zb}Az3DGx1W`>1l5Q)LO3nR21&$sRdsJJ0A^*(F$eUaBffw~Iw9^Ej2^Q+a@irWnuW zBb{o;$YxNj(Z-(aD&^&xltx5KK8la-`mM#sbp7_v@xFyPW1VkTfDd)!JA34IJ}!II zHlCY3YAc_xjTdx?mW*yBx)uxT>#&gCK*@ByCZZJ;(Ta*_sbGdvA3hB(o%88ZGzdIH zI(Pm9Ith)kE0Ww(v$yg><32u{BRrKqN8^#pcli|Hkzv40JPCNJ@TA}=#v^s59M4cZ zM;cQ%(rg!gO?TthWDkDjdGRX;4Q!+=v{AB^&%c&TnKHKVvdueqMYYAN3?bX!&X+70 zwQJz*s0w#mz!)Cc{s=rJcpC6rfTs=5-t0E^ayzfiZs#jxZPi=(F-F}sevI8n*%kEI zW)#_L7paY35j~GjVlL;#zj5dN0)c+)ZQA zS+`@D@1S{fHyug$V71{;F@8i1F=eTI~9es*T-p`nezF^7pB}=1k z*)VXNN#C;xv>z8c1)IwZHXqkvk76Eh+Y470d*gayA9gZJW@oYf>};0G*0aOd1#BR0 z;SE(Po-I|MUE!#>U}y1@RMdVBl=@`;8~o+kdg{eb;lG7)p9+bOpyd5Dj~VjEm7F}{ zaP@Og&UTNS;vPPu7iPup;>?PL&aBAs#7qh`1LPc(S~&`joE7QE*KG!4&8Jhgbvf(pH3tI+S`tB}&w_v|8P#4na`yNNL5QtPLqljqi49?(bf8j{jlTM6lGuG zUh)Dp<&%cCv46Dl^OwqA-^yXbjLqtWi^a=LN^E1F?}`;$Gw3D%N(zr<4y5;t|v3ao78wC zxs2&)(oBc&NL`grA6teVZS2c<+#W)Pfo<%+whRly#JHG)o_2zbdo5k;H=bJ`8P6^0p+lap(18nEp+WEbs9;d`nsJ~zv-?@W7 zRBeB|TYei;Toz;7`J+=@sjiXR_@0reu5J8jnVX8Pex6gd%qW0aFUuYsG3!XctS7*n z4Px(ODx}ePMRTc4(Q}slG*I)`=M{C&zI*r{xXR{mWQg$<@(Ji!*-AY^8 zZPd;-(GzS7rp`9{2DgMQb}!3f53{N45!{S_oULGcFp-{ssosOD*H7Y_^;0m_Pvb7| zGsu0GJ%@j9u;(|-#$QE>gVXc5 z+{6*!_cZ=GQU*2C94b?BU@jeXw@oip3mfmj&vf&-znkT|TmS!;k25B63?s3Fk#B4yQ~h>hcvB3uSW_#s zNE~3PI6yZqV>hQ6*OPlAjYd_mE5Lo#9@)fp{=M|1yUq}7XjfNvl z;@Aty;5>cp*dwWp9qfkQ_G;rY#OM+~sjA|~9M?w^2XCH6c1h}%|jyFvvZVpqg!i=86Lw%THc=wk;UVwp%rI3XZYzQBnHR&pjl$Wh2r*xKrJ`&M@E~9_yq% z`Emto`-e!QEt+>oj(7*|>4s**JM{Rqyu-C|y@MDC@1XmHpLP}=;pw*r5Y3sMviL1`QEz znt-5nk?27+B9TI(7qyB$v`!@RsUn5X69f2sk@4&fS(YnRAVklAqvbBiArOTjoe3Cdqx(q%K4rLfp zZjOyw;iaThUaxEV5DJ7}RPD8D2AECiN&=7n5s+PCu=;IFe z;!W-oaW9tRUUJA2buajWbzb$xywevR{o{P<6&K;ZbWX9K+V3>~G@J~*ZBj0(4>n`* zhfZBx6t*c0wP1LamD-bdKpRi|d6QUoLH5U;UC<%oyl6z{?=)wlTSsciE9Y8d%V;Ew zlf7Mpr7m8`CGLVzYKek-*e*K{*bi$1z0)Vy9lxak%d$ zX$93Qx(4@cB(_(wb8s7y#K**;0t3b8G){a$GsIU^A^t;a#5dF;zNIV0KDt4CN1Md= zv=!To_lX1axFKkdVbC*%i}o6cN^RAiI=vcETY5!gs5od7^%a>|vvQmR*bxj@YG#pV zKMj-$mY(uG9UX}*@E3AjhYeSn>;u0!_Mo}jc+akb7VYO@**ip5wd}<00=*_f+n8ez zc^Wx@^3e_Q`lFQ3HzrY;F`ded8B}G=q!q>-O~{pwkmWH#j*AG1zfAinA&0i{K0iaq ziNCUtl@M|;y8ka!GOCjWC5b|mWc@2cT7DC?C O9U+;RhDp!G^#1|DpHFK5 literal 20984 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 am~q%J*mBr1xNz7_wq$i-beLSnssjM+N(`U? diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index 4682d19ef4128db574cfa87ad00421f15671bd44..a4f0d28eebc9ebdaebfb4482c128ba82c30a4610 100644 GIT binary patch literal 35626 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 Yg3uN~-9jtVs5$XNl{kdOwMC5m9|;&0X#fBK diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens index 1aaf0ab..e17e231 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,5 +1,3 @@ -T__28=28 -T__29=29 T__30=30 T__31=31 T__32=32 @@ -77,106 +75,112 @@ T__103=103 T__104=104 T__105=105 T__106=106 -ARITMETICA=4 -BODY=5 -CONSTR_DECL=6 -DESVIO=7 -EXTENDS=8 -FIELD_DECL=9 -ID=10 -INIT=11 -INT=12 -INTEIRO=13 -LABEL=14 -LIMIT=15 -LOAD=16 -LOGICA=17 -MEMBRO_CLASSE=18 -METHOD_DECL=19 -NEWLINE=20 -NULL=21 -PARAMS=22 -PILHA=23 -STORE=24 -TIPO_REF=25 -VOID=26 -WS=27 -'('=28 -'()'=29 -')'=30 -'.class'=31 -'.end class'=32 -'.end method'=33 -'.field'=34 -'.limit locals'=35 -'.method'=36 -'.super'=37 -'/'=38 -':'=39 -'aconst_null'=40 -'aload'=41 -'aload_0'=42 -'aload_1'=43 -'aload_2'=44 -'aload_3'=45 -'areturn'=46 -'astore'=47 -'astore_0'=48 -'astore_1'=49 -'astore_2'=50 -'astore_3'=51 -'dup'=52 -'getfield'=53 -'getstatic'=54 -'goto'=55 -'iadd'=56 -'iand'=57 -'iconst_0'=58 -'iconst_1'=59 -'iconst_2'=60 -'iconst_3'=61 -'iconst_4'=62 -'iconst_5'=63 -'iconst_m1'=64 -'idiv'=65 -'if_icmpeq'=66 -'if_icmpge'=67 -'if_icmpgt'=68 -'if_icmple'=69 -'if_icmplt'=70 -'if_icmpne'=71 -'ifeq'=72 -'ifge'=73 -'ifgt'=74 -'ifle'=75 -'iflt'=76 -'ifne'=77 -'iinc'=78 -'iload'=79 -'iload_0'=80 -'iload_1'=81 -'iload_2'=82 -'iload_3'=83 -'imul'=84 -'ineg'=85 -'invokespecial'=86 -'invokestatic'=87 -'ior'=88 -'irem'=89 -'ireturn'=90 -'istore'=91 -'istore_0'=92 -'istore_1'=93 -'istore_2'=94 -'istore_3'=95 -'isub'=96 -'ixor'=97 -'ldc'=98 -'new'=99 -'nop'=100 -'pop'=101 -'pop2'=102 -'putfield'=103 -'putstatic'=104 -'return'=105 -'static'=106 +T__107=107 +T__108=108 +T__109=109 +ARGS=4 +ARITMETICA=5 +BODY=6 +CONSTR_DECL=7 +DESVIO=8 +EXTENDS=9 +FIELD_DECL=10 +ID=11 +INIT=12 +INT=13 +INTEIRO=14 +LABEL=15 +LIMIT=16 +LOAD=17 +LOGICA=18 +MEMBRO_CLASSE=19 +METHOD_CALL=20 +METHOD_DECL=21 +NEWLINE=22 +NULL=23 +PARAMS=24 +PILHA=25 +STORE=26 +TIPO_REF=27 +VOID=28 +WS=29 +'('=30 +'()'=31 +')'=32 +'.class'=33 +'.end class'=34 +'.end method'=35 +'.field'=36 +'.limit locals'=37 +'.method'=38 +'.super'=39 +'/'=40 +':'=41 +'aconst_null'=42 +'aload'=43 +'aload_0'=44 +'aload_1'=45 +'aload_2'=46 +'aload_3'=47 +'areturn'=48 +'astore'=49 +'astore_0'=50 +'astore_1'=51 +'astore_2'=52 +'astore_3'=53 +'dup'=54 +'getfield'=55 +'getstatic'=56 +'goto'=57 +'iadd'=58 +'iand'=59 +'iconst_0'=60 +'iconst_1'=61 +'iconst_2'=62 +'iconst_3'=63 +'iconst_4'=64 +'iconst_5'=65 +'iconst_m1'=66 +'idiv'=67 +'if_icmpeq'=68 +'if_icmpge'=69 +'if_icmpgt'=70 +'if_icmple'=71 +'if_icmplt'=72 +'if_icmpne'=73 +'ifeq'=74 +'ifge'=75 +'ifgt'=76 +'ifle'=77 +'iflt'=78 +'ifne'=79 +'iinc'=80 +'iload'=81 +'iload_0'=82 +'iload_1'=83 +'iload_2'=84 +'iload_3'=85 +'imul'=86 +'ineg'=87 +'invokespecial'=88 +'invokestatic'=89 +'invokevirtual'=90 +'ior'=91 +'irem'=92 +'ireturn'=93 +'istore'=94 +'istore_0'=95 +'istore_1'=96 +'istore_2'=97 +'istore_3'=98 +'isub'=99 +'ixor'=100 +'ldc'=101 +'new'=102 +'nop'=103 +'pop'=104 +'pop2'=105 +'putfield'=106 +'putstatic'=107 +'return'=108 +'static'=109 diff --git a/classes/Main.class b/classes/Main.class index f3e183e..0b1a3dc 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -94,6 +94,7 @@ L2: ineg ldc 8 idiv istore 13 + invokevirtual Classe/kioeot(III) I new Composicao dup invokespecial Composicao/() V diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 08cb8f5..6afc841 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -21,6 +21,8 @@ tokens { CONSTR_DECL; PARAMS; LIMIT; + METHOD_CALL; + ARGS; } @header{ @@ -105,6 +107,8 @@ manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) -> ^('invokespecial' $c $d) | a = 'invokestatic' c = classe '/' d = chamadaMetodo -> ^('invokestatic' $c $d) + | a = 'invokevirtual' c = classe '/' d = chamadaMetodo + -> ^('invokevirtual' $c $d) | a = 'new'c = classe -> ^('new' $c) ; @@ -205,18 +209,40 @@ classe returns [List classe] : (cls += ID '/')* (cls += ID) {$classe = $cls;} ; -chamadaMetodo returns [String nome, String params, String tipoRetorno] +/*chamadaMetodo returns [String nome, int qtdParametros, String tipoRetorno] @init { $nome = ""; - $params = ""; + $qtdParametros = 0; $tipoRetorno = ""; } - : n = INIT par = '()' tip = VOID { + : (n = INIT | n = ID) argumentos tip = tipo { $nome = $n.text; - $params = $par.text; + $qtdParametros = $qtd.qtdParams; $tipoRetorno = $tip.text; } - ; + ;*/ + +chamadaMetodo + : (n = INIT | n = ID) (argumentos | '(' argumentos ')') tip = tipo + -> ^(METHOD_CALL $n argumentos $tip) + ; + +argumentos + : '()' -> ^(ARGS VOID) + | ( + a = ID + | a = TIPO_REF + )+ + -> ^(ARGS $a)+ + ; + +contagemParametros returns [int qtdParams] + : '()' {$qtdParams = 0;} + | ( + ID {$qtdParams++;} + | TIPO_REF {$qtdParams++;} + )+ + ; campo returns [List classe, String campo] @init { diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index cd8ff32..42334e4 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -118,6 +118,7 @@ topdown | putstatic | invokespecial | invokestatic + | invokevirtual | novaClasse | aritmetica | load @@ -232,16 +233,26 @@ putstatic ; invokespecial - : ^('invokespecial' classe = . metodo = . args = . tipo = .) + : ^('invokespecial' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { - chamarMetodo("invokespecial", $classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokespecial", $classe.getText(), $metodo.getText()); } ; invokestatic - : ^('invokestatic' classe = . metodo = . args = . tipo = .) + : ^('invokestatic' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { - chamarMetodo("invokestatic", $classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokestatic", $classe.getText(), $metodo.getText()); + } + ; + +invokevirtual + : ^('invokevirtual' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) + { + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokevirtual", $classe.getText(), $metodo.getText()); } ; diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index 1aaf0ab..e17e231 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,5 +1,3 @@ -T__28=28 -T__29=29 T__30=30 T__31=31 T__32=32 @@ -77,106 +75,112 @@ T__103=103 T__104=104 T__105=105 T__106=106 -ARITMETICA=4 -BODY=5 -CONSTR_DECL=6 -DESVIO=7 -EXTENDS=8 -FIELD_DECL=9 -ID=10 -INIT=11 -INT=12 -INTEIRO=13 -LABEL=14 -LIMIT=15 -LOAD=16 -LOGICA=17 -MEMBRO_CLASSE=18 -METHOD_DECL=19 -NEWLINE=20 -NULL=21 -PARAMS=22 -PILHA=23 -STORE=24 -TIPO_REF=25 -VOID=26 -WS=27 -'('=28 -'()'=29 -')'=30 -'.class'=31 -'.end class'=32 -'.end method'=33 -'.field'=34 -'.limit locals'=35 -'.method'=36 -'.super'=37 -'/'=38 -':'=39 -'aconst_null'=40 -'aload'=41 -'aload_0'=42 -'aload_1'=43 -'aload_2'=44 -'aload_3'=45 -'areturn'=46 -'astore'=47 -'astore_0'=48 -'astore_1'=49 -'astore_2'=50 -'astore_3'=51 -'dup'=52 -'getfield'=53 -'getstatic'=54 -'goto'=55 -'iadd'=56 -'iand'=57 -'iconst_0'=58 -'iconst_1'=59 -'iconst_2'=60 -'iconst_3'=61 -'iconst_4'=62 -'iconst_5'=63 -'iconst_m1'=64 -'idiv'=65 -'if_icmpeq'=66 -'if_icmpge'=67 -'if_icmpgt'=68 -'if_icmple'=69 -'if_icmplt'=70 -'if_icmpne'=71 -'ifeq'=72 -'ifge'=73 -'ifgt'=74 -'ifle'=75 -'iflt'=76 -'ifne'=77 -'iinc'=78 -'iload'=79 -'iload_0'=80 -'iload_1'=81 -'iload_2'=82 -'iload_3'=83 -'imul'=84 -'ineg'=85 -'invokespecial'=86 -'invokestatic'=87 -'ior'=88 -'irem'=89 -'ireturn'=90 -'istore'=91 -'istore_0'=92 -'istore_1'=93 -'istore_2'=94 -'istore_3'=95 -'isub'=96 -'ixor'=97 -'ldc'=98 -'new'=99 -'nop'=100 -'pop'=101 -'pop2'=102 -'putfield'=103 -'putstatic'=104 -'return'=105 -'static'=106 +T__107=107 +T__108=108 +T__109=109 +ARGS=4 +ARITMETICA=5 +BODY=6 +CONSTR_DECL=7 +DESVIO=8 +EXTENDS=9 +FIELD_DECL=10 +ID=11 +INIT=12 +INT=13 +INTEIRO=14 +LABEL=15 +LIMIT=16 +LOAD=17 +LOGICA=18 +MEMBRO_CLASSE=19 +METHOD_CALL=20 +METHOD_DECL=21 +NEWLINE=22 +NULL=23 +PARAMS=24 +PILHA=25 +STORE=26 +TIPO_REF=27 +VOID=28 +WS=29 +'('=30 +'()'=31 +')'=32 +'.class'=33 +'.end class'=34 +'.end method'=35 +'.field'=36 +'.limit locals'=37 +'.method'=38 +'.super'=39 +'/'=40 +':'=41 +'aconst_null'=42 +'aload'=43 +'aload_0'=44 +'aload_1'=45 +'aload_2'=46 +'aload_3'=47 +'areturn'=48 +'astore'=49 +'astore_0'=50 +'astore_1'=51 +'astore_2'=52 +'astore_3'=53 +'dup'=54 +'getfield'=55 +'getstatic'=56 +'goto'=57 +'iadd'=58 +'iand'=59 +'iconst_0'=60 +'iconst_1'=61 +'iconst_2'=62 +'iconst_3'=63 +'iconst_4'=64 +'iconst_5'=65 +'iconst_m1'=66 +'idiv'=67 +'if_icmpeq'=68 +'if_icmpge'=69 +'if_icmpgt'=70 +'if_icmple'=71 +'if_icmplt'=72 +'if_icmpne'=73 +'ifeq'=74 +'ifge'=75 +'ifgt'=76 +'ifle'=77 +'iflt'=78 +'ifne'=79 +'iinc'=80 +'iload'=81 +'iload_0'=82 +'iload_1'=83 +'iload_2'=84 +'iload_3'=85 +'imul'=86 +'ineg'=87 +'invokespecial'=88 +'invokestatic'=89 +'invokevirtual'=90 +'ior'=91 +'irem'=92 +'ireturn'=93 +'istore'=94 +'istore_0'=95 +'istore_1'=96 +'istore_2'=97 +'istore_3'=98 +'isub'=99 +'ixor'=100 +'ldc'=101 +'new'=102 +'nop'=103 +'pop'=104 +'pop2'=105 +'putfield'=106 +'putstatic'=107 +'return'=108 +'static'=109 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 6ed252b..f2a1232 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 17:02:14 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 21:27:27 package br.ufpb.iged.interpretador.parser; @@ -11,8 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__28=28; - public static final int T__29=29; public static final int T__30=30; public static final int T__31=31; public static final int T__32=32; @@ -90,30 +88,35 @@ public class AssemblerLexer extends Lexer { public static final int T__104=104; public static final int T__105=105; public static final int T__106=106; - public static final int ARITMETICA=4; - public static final int BODY=5; - public static final int CONSTR_DECL=6; - public static final int DESVIO=7; - public static final int EXTENDS=8; - public static final int FIELD_DECL=9; - public static final int ID=10; - public static final int INIT=11; - public static final int INT=12; - public static final int INTEIRO=13; - public static final int LABEL=14; - public static final int LIMIT=15; - public static final int LOAD=16; - public static final int LOGICA=17; - public static final int MEMBRO_CLASSE=18; - public static final int METHOD_DECL=19; - public static final int NEWLINE=20; - public static final int NULL=21; - public static final int PARAMS=22; - public static final int PILHA=23; - public static final int STORE=24; - public static final int TIPO_REF=25; - public static final int VOID=26; - public static final int WS=27; + public static final int T__107=107; + public static final int T__108=108; + public static final int T__109=109; + public static final int ARGS=4; + public static final int ARITMETICA=5; + public static final int BODY=6; + public static final int CONSTR_DECL=7; + public static final int DESVIO=8; + public static final int EXTENDS=9; + public static final int FIELD_DECL=10; + public static final int ID=11; + public static final int INIT=12; + public static final int INT=13; + public static final int INTEIRO=14; + public static final int LABEL=15; + public static final int LIMIT=16; + public static final int LOAD=17; + public static final int LOGICA=18; + public static final int MEMBRO_CLASSE=19; + public static final int METHOD_CALL=20; + public static final int METHOD_DECL=21; + public static final int NEWLINE=22; + public static final int NULL=23; + public static final int PARAMS=24; + public static final int PILHA=25; + public static final int STORE=26; + public static final int TIPO_REF=27; + public static final int VOID=28; + public static final int WS=29; // delegates // delegators @@ -130,59 +133,15 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__28" - public final void mT__28() throws RecognitionException { - try { - int _type = T__28; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' - { - match('('); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__28" - - // $ANTLR start "T__29" - public final void mT__29() throws RecognitionException { - try { - int _type = T__29; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' - { - match("()"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__29" - // $ANTLR start "T__30" public final void mT__30() throws RecognitionException { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' { - match(')'); + match('('); } @@ -200,10 +159,10 @@ public final void mT__31() throws RecognitionException { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' { - match(".class"); + match("()"); @@ -223,12 +182,10 @@ public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' { - match(".end class"); - - + match(')'); } @@ -246,10 +203,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' { - match(".end method"); + match(".class"); @@ -269,10 +226,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' { - match(".field"); + match(".end class"); @@ -292,10 +249,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.limit locals' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.limit locals' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' { - match(".limit locals"); + match(".end method"); @@ -315,10 +272,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' { - match(".method"); + match(".field"); @@ -338,10 +295,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '.super' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '.super' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.limit locals' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.limit locals' { - match(".super"); + match(".limit locals"); @@ -361,10 +318,12 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( '/' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.method' { - match('/'); + match(".method"); + + } @@ -382,10 +341,12 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( ':' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '.super' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '.super' { - match(':'); + match(".super"); + + } @@ -403,12 +364,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( '/' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: '/' { - match("aconst_null"); - - + match('/'); } @@ -426,12 +385,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( ':' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: ':' { - match("aload"); - - + match(':'); } @@ -449,10 +406,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aconst_null' { - match("aload_0"); + match("aconst_null"); @@ -472,10 +429,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload' { - match("aload_1"); + match("aload"); @@ -495,10 +452,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_0' { - match("aload_2"); + match("aload_0"); @@ -518,10 +475,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_1' { - match("aload_3"); + match("aload_1"); @@ -541,10 +498,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'areturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_2' { - match("areturn"); + match("aload_2"); @@ -564,10 +521,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'aload_3' { - match("astore"); + match("aload_3"); @@ -587,10 +544,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'areturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'areturn' { - match("astore_0"); + match("areturn"); @@ -610,10 +567,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore' { - match("astore_1"); + match("astore"); @@ -633,10 +590,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_0' { - match("astore_2"); + match("astore_0"); @@ -656,10 +613,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_1' { - match("astore_3"); + match("astore_1"); @@ -679,10 +636,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'dup' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_2' { - match("dup"); + match("astore_2"); @@ -702,10 +659,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'astore_3' { - match("getfield"); + match("astore_3"); @@ -725,10 +682,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'getstatic' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'getstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'dup' { - match("getstatic"); + match("dup"); @@ -748,10 +705,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'goto' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'goto' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'getfield' { - match("goto"); + match("getfield"); @@ -771,10 +728,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iadd' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'getstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'getstatic' { - match("iadd"); + match("getstatic"); @@ -794,10 +751,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iand' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'goto' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'goto' { - match("iand"); + match("goto"); @@ -817,10 +774,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iadd' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iadd' { - match("iconst_0"); + match("iadd"); @@ -840,10 +797,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iand' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iand' { - match("iconst_1"); + match("iand"); @@ -863,10 +820,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_0' { - match("iconst_2"); + match("iconst_0"); @@ -886,10 +843,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_1' { - match("iconst_3"); + match("iconst_1"); @@ -909,10 +866,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_2' { - match("iconst_4"); + match("iconst_2"); @@ -932,10 +889,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_3' { - match("iconst_5"); + match("iconst_3"); @@ -955,10 +912,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_4' { - match("iconst_m1"); + match("iconst_4"); @@ -978,10 +935,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'idiv' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iconst_5' { - match("idiv"); + match("iconst_5"); @@ -1001,10 +958,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iconst_m1' { - match("if_icmpeq"); + match("iconst_m1"); @@ -1024,10 +981,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmpge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'idiv' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'idiv' { - match("if_icmpge"); + match("idiv"); @@ -1047,10 +1004,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmpgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpeq' { - match("if_icmpgt"); + match("if_icmpeq"); @@ -1070,10 +1027,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmple' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmpge' { - match("if_icmple"); + match("if_icmpge"); @@ -1093,10 +1050,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'if_icmplt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmpgt' { - match("if_icmplt"); + match("if_icmpgt"); @@ -1116,10 +1073,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'if_icmpne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmple' { - match("if_icmpne"); + match("if_icmple"); @@ -1139,10 +1096,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'if_icmplt' { - match("ifeq"); + match("if_icmplt"); @@ -1162,10 +1119,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'if_icmpne' { - match("ifge"); + match("if_icmpne"); @@ -1185,10 +1142,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ifgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifeq' { - match("ifgt"); + match("ifeq"); @@ -1208,10 +1165,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifle' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifle' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifge' { - match("ifle"); + match("ifge"); @@ -1231,10 +1188,10 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iflt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iflt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ifgt' { - match("iflt"); + match("ifgt"); @@ -1254,10 +1211,10 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ifne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ifne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifle' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifle' { - match("ifne"); + match("ifle"); @@ -1277,10 +1234,10 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iinc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iflt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iflt' { - match("iinc"); + match("iflt"); @@ -1300,10 +1257,10 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ifne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ifne' { - match("iload"); + match("ifne"); @@ -1323,10 +1280,10 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iinc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iinc' { - match("iload_0"); + match("iinc"); @@ -1346,10 +1303,10 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload' { - match("iload_1"); + match("iload"); @@ -1369,10 +1326,10 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_0' { - match("iload_2"); + match("iload_0"); @@ -1392,10 +1349,10 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_1' { - match("iload_3"); + match("iload_1"); @@ -1415,10 +1372,10 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'imul' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'iload_2' { - match("imul"); + match("iload_2"); @@ -1438,10 +1395,10 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ineg' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'iload_3' { - match("ineg"); + match("iload_3"); @@ -1461,10 +1418,10 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'imul' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'imul' { - match("invokespecial"); + match("imul"); @@ -1484,10 +1441,10 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'invokestatic' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'invokestatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ineg' { - match("invokestatic"); + match("ineg"); @@ -1507,10 +1464,10 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'ior' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'invokespecial' { - match("ior"); + match("invokespecial"); @@ -1530,10 +1487,10 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'irem' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'invokestatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'invokestatic' { - match("irem"); + match("invokestatic"); @@ -1553,10 +1510,10 @@ public final void mT__90() throws RecognitionException { try { int _type = T__90; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ireturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'invokevirtual' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'invokevirtual' { - match("ireturn"); + match("invokevirtual"); @@ -1576,10 +1533,10 @@ public final void mT__91() throws RecognitionException { try { int _type = T__91; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'ior' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'ior' { - match("istore"); + match("ior"); @@ -1599,10 +1556,10 @@ public final void mT__92() throws RecognitionException { try { int _type = T__92; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'irem' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'irem' { - match("istore_0"); + match("irem"); @@ -1622,10 +1579,10 @@ public final void mT__93() throws RecognitionException { try { int _type = T__93; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'ireturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'ireturn' { - match("istore_1"); + match("ireturn"); @@ -1645,10 +1602,10 @@ public final void mT__94() throws RecognitionException { try { int _type = T__94; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore' { - match("istore_2"); + match("istore"); @@ -1668,10 +1625,10 @@ public final void mT__95() throws RecognitionException { try { int _type = T__95; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'istore_0' { - match("istore_3"); + match("istore_0"); @@ -1691,10 +1648,10 @@ public final void mT__96() throws RecognitionException { try { int _type = T__96; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'isub' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'istore_1' { - match("isub"); + match("istore_1"); @@ -1712,10 +1669,79 @@ public final void mT__96() throws RecognitionException { // $ANTLR start "T__97" public final void mT__97() throws RecognitionException { try { - int _type = T__97; + int _type = T__97; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'istore_2' + { + match("istore_2"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__97" + + // $ANTLR start "T__98" + public final void mT__98() throws RecognitionException { + try { + int _type = T__98; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'istore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'istore_3' + { + match("istore_3"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__98" + + // $ANTLR start "T__99" + public final void mT__99() throws RecognitionException { + try { + int _type = T__99; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'isub' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'isub' + { + match("isub"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__99" + + // $ANTLR start "T__100" + public final void mT__100() throws RecognitionException { + try { + int _type = T__100; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'ixor' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: ( 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:10: 'ixor' { match("ixor"); @@ -1730,15 +1756,15 @@ public final void mT__97() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__97" + // $ANTLR end "T__100" - // $ANTLR start "T__98" - public final void mT__98() throws RecognitionException { + // $ANTLR start "T__101" + public final void mT__101() throws RecognitionException { try { - int _type = T__98; + int _type = T__101; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: ( 'ldc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:9: 'ldc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: ( 'ldc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:10: 'ldc' { match("ldc"); @@ -1753,15 +1779,15 @@ public final void mT__98() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__98" + // $ANTLR end "T__101" - // $ANTLR start "T__99" - public final void mT__99() throws RecognitionException { + // $ANTLR start "T__102" + public final void mT__102() throws RecognitionException { try { - int _type = T__99; + int _type = T__102; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:7: ( 'new' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:9: 'new' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: ( 'new' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:10: 'new' { match("new"); @@ -1776,15 +1802,15 @@ public final void mT__99() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__99" + // $ANTLR end "T__102" - // $ANTLR start "T__100" - public final void mT__100() throws RecognitionException { + // $ANTLR start "T__103" + public final void mT__103() throws RecognitionException { try { - int _type = T__100; + int _type = T__103; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: ( 'nop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:10: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: ( 'nop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: 'nop' { match("nop"); @@ -1799,15 +1825,15 @@ public final void mT__100() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__100" + // $ANTLR end "T__103" - // $ANTLR start "T__101" - public final void mT__101() throws RecognitionException { + // $ANTLR start "T__104" + public final void mT__104() throws RecognitionException { try { - int _type = T__101; + int _type = T__104; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: ( 'pop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: ( 'pop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:10: 'pop' { match("pop"); @@ -1822,15 +1848,15 @@ public final void mT__101() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__101" + // $ANTLR end "T__104" - // $ANTLR start "T__102" - public final void mT__102() throws RecognitionException { + // $ANTLR start "T__105" + public final void mT__105() throws RecognitionException { try { - int _type = T__102; + int _type = T__105; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: ( 'pop2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:10: 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: ( 'pop2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:10: 'pop2' { match("pop2"); @@ -1845,15 +1871,15 @@ public final void mT__102() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__102" + // $ANTLR end "T__105" - // $ANTLR start "T__103" - public final void mT__103() throws RecognitionException { + // $ANTLR start "T__106" + public final void mT__106() throws RecognitionException { try { - int _type = T__103; + int _type = T__106; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:10: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:10: 'putfield' { match("putfield"); @@ -1868,15 +1894,15 @@ public final void mT__103() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__103" + // $ANTLR end "T__106" - // $ANTLR start "T__104" - public final void mT__104() throws RecognitionException { + // $ANTLR start "T__107" + public final void mT__107() throws RecognitionException { try { - int _type = T__104; + int _type = T__107; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: ( 'putstatic' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:10: 'putstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: ( 'putstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:10: 'putstatic' { match("putstatic"); @@ -1891,15 +1917,15 @@ public final void mT__104() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__104" + // $ANTLR end "T__107" - // $ANTLR start "T__105" - public final void mT__105() throws RecognitionException { + // $ANTLR start "T__108" + public final void mT__108() throws RecognitionException { try { - int _type = T__105; + int _type = T__108; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: ( 'return' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:10: 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: ( 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:10: 'return' { match("return"); @@ -1914,15 +1940,15 @@ public final void mT__105() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__105" + // $ANTLR end "T__108" - // $ANTLR start "T__106" - public final void mT__106() throws RecognitionException { + // $ANTLR start "T__109" + public final void mT__109() throws RecognitionException { try { - int _type = T__106; + int _type = T__109; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: ( 'static' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:10: 'static' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: ( 'static' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:10: 'static' { match("static"); @@ -1937,15 +1963,15 @@ public final void mT__106() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__106" + // $ANTLR end "T__109" // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:8: '' { match(""); @@ -1967,8 +1993,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:7: 'I' { match('I'); @@ -1988,8 +2014,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:8: 'V' { match('V'); @@ -2009,10 +2035,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -2031,7 +2057,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:9: 'null' { match("null"); @@ -2040,7 +2066,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:18: 'NULL' { match("NULL"); @@ -2068,10 +2094,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -2080,7 +2106,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:11: '-' { match('-'); @@ -2090,7 +2116,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2145,15 +2171,15 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:11: 'L' ID ( '/' ID )* { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:18: ( '/' ID )* loop4: do { int alt4=2; @@ -2166,7 +2192,7 @@ public final void mTIPO_REF() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:19: '/' ID { match('/'); @@ -2198,8 +2224,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2211,7 +2237,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop5: do { int alt5=2; @@ -2261,8 +2287,8 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:9: ( '\\n' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:271:9: ( '\\n' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:271:11: '\\n' { match('\n'); @@ -2282,8 +2308,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:273:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:273:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2309,708 +2335,716 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) - int alt6=88; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) + int alt6=89; alt6 = dfa6.predict(input); switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__28 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__30 { - mT__28(); + mT__30(); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__29 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__31 { - mT__29(); + mT__31(); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__30 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__32 { - mT__30(); + mT__32(); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__31 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__33 { - mT__31(); + mT__33(); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__32 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__34 { - mT__32(); + mT__34(); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__33 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__35 { - mT__33(); + mT__35(); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__34 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__36 { - mT__34(); + mT__36(); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__35 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__37 { - mT__35(); + mT__37(); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__36 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__38 { - mT__36(); + mT__38(); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__37 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__39 { - mT__37(); + mT__39(); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__38 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__40 { - mT__38(); + mT__40(); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__39 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__41 { - mT__39(); + mT__41(); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__40 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__42 { - mT__40(); + mT__42(); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__41 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__43 { - mT__41(); + mT__43(); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__42 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__44 { - mT__42(); + mT__44(); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__43 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__45 { - mT__43(); + mT__45(); } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__44 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__46 { - mT__44(); + mT__46(); } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__45 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__47 { - mT__45(); + mT__47(); } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__46 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__48 { - mT__46(); + mT__48(); } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__47 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__49 { - mT__47(); + mT__49(); } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__48 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__50 { - mT__48(); + mT__50(); } break; case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__49 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__51 { - mT__49(); + mT__51(); } break; case 23 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__50 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__52 { - mT__50(); + mT__52(); } break; case 24 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__51 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__53 { - mT__51(); + mT__53(); } break; case 25 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__52 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__54 { - mT__52(); + mT__54(); } break; case 26 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__53 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__55 { - mT__53(); + mT__55(); } break; case 27 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__54 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__56 { - mT__54(); + mT__56(); } break; case 28 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__55 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__57 { - mT__55(); + mT__57(); } break; case 29 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__56 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__58 { - mT__56(); + mT__58(); } break; case 30 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__57 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__59 { - mT__57(); + mT__59(); } break; case 31 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__58 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__60 { - mT__58(); + mT__60(); } break; case 32 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__59 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__61 { - mT__59(); + mT__61(); } break; case 33 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__60 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__62 { - mT__60(); + mT__62(); } break; case 34 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__61 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__63 { - mT__61(); + mT__63(); } break; case 35 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__62 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__64 { - mT__62(); + mT__64(); } break; case 36 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__63 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__65 { - mT__63(); + mT__65(); } break; case 37 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__64 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__66 { - mT__64(); + mT__66(); } break; case 38 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__65 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__67 { - mT__65(); + mT__67(); } break; case 39 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__66 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__68 { - mT__66(); + mT__68(); } break; case 40 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__67 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__69 { - mT__67(); + mT__69(); } break; case 41 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__68 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__70 { - mT__68(); + mT__70(); } break; case 42 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__69 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__71 { - mT__69(); + mT__71(); } break; case 43 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__70 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__72 { - mT__70(); + mT__72(); } break; case 44 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__71 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__73 { - mT__71(); + mT__73(); } break; case 45 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__72 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__74 { - mT__72(); + mT__74(); } break; case 46 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__73 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__75 { - mT__73(); + mT__75(); } break; case 47 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__74 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__76 { - mT__74(); + mT__76(); } break; case 48 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__75 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__77 { - mT__75(); + mT__77(); } break; case 49 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__76 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__78 { - mT__76(); + mT__78(); } break; case 50 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__77 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__79 { - mT__77(); + mT__79(); } break; case 51 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__78 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__80 { - mT__78(); + mT__80(); } break; case 52 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__79 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__81 { - mT__79(); + mT__81(); } break; case 53 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__80 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__82 { - mT__80(); + mT__82(); } break; case 54 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__81 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__83 { - mT__81(); + mT__83(); } break; case 55 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__82 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__84 { - mT__82(); + mT__84(); } break; case 56 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__83 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__85 { - mT__83(); + mT__85(); } break; case 57 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__84 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__86 { - mT__84(); + mT__86(); } break; case 58 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__85 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__87 { - mT__85(); + mT__87(); } break; case 59 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__86 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__88 { - mT__86(); + mT__88(); } break; case 60 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__87 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__89 { - mT__87(); + mT__89(); } break; case 61 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__88 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__90 { - mT__88(); + mT__90(); } break; case 62 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__89 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__91 { - mT__89(); + mT__91(); } break; case 63 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__90 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__92 { - mT__90(); + mT__92(); } break; case 64 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__91 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__93 { - mT__91(); + mT__93(); } break; case 65 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__92 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__94 { - mT__92(); + mT__94(); } break; case 66 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__93 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__95 { - mT__93(); + mT__95(); } break; case 67 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__94 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__96 { - mT__94(); + mT__96(); } break; case 68 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__95 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__97 { - mT__95(); + mT__97(); } break; case 69 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__96 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__98 { - mT__96(); + mT__98(); } break; case 70 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__97 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__99 { - mT__97(); + mT__99(); } break; case 71 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__98 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__100 { - mT__98(); + mT__100(); } break; case 72 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:436: T__99 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:437: T__101 { - mT__99(); + mT__101(); } break; case 73 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:442: T__100 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:444: T__102 { - mT__100(); + mT__102(); } break; case 74 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:449: T__101 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:451: T__103 { - mT__101(); + mT__103(); } break; case 75 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:456: T__102 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:458: T__104 { - mT__102(); + mT__104(); } break; case 76 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:463: T__103 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:465: T__105 { - mT__103(); + mT__105(); } break; case 77 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:470: T__104 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:472: T__106 { - mT__104(); + mT__106(); } break; case 78 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:477: T__105 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:479: T__107 { - mT__105(); + mT__107(); } break; case 79 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:484: T__106 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:486: T__108 { - mT__106(); + mT__108(); } break; case 80 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:491: INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:493: T__109 { - mINIT(); + mT__109(); } break; case 81 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:496: INT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:500: INIT { - mINT(); + mINIT(); } break; case 82 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:500: VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:505: INT { - mVOID(); + mINT(); } break; case 83 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:505: NULL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:509: VOID { - mNULL(); + mVOID(); } break; case 84 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:510: INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:514: NULL { - mINTEIRO(); + mNULL(); } break; case 85 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:518: TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:519: INTEIRO { - mTIPO_REF(); + mINTEIRO(); } break; case 86 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:527: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:527: TIPO_REF { - mID(); + mTIPO_REF(); } break; case 87 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:530: NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:536: ID { - mNEWLINE(); + mID(); } break; case 88 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:538: WS + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:539: NEWLINE + { + mNEWLINE(); + + + } + break; + case 89 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:547: WS { mWS(); @@ -3034,12 +3068,13 @@ public void mTokens() throws RecognitionException { "\3\uffff\1\u00ac\1\u00ad\1\uffff\4\25\1\u00ac\1\uffff\1\25\1\u00b6"+ "\4\25\3\uffff\1\25\11\uffff\1\u00be\2\uffff\1\25\1\uffff\2\25\4"+ "\uffff\4\25\2\uffff\1\25\2\uffff\1\25\1\u00cd\3\25\3\uffff\2\25"+ - "\1\u00d9\2\25\1\u00dc\1\u00dd\5\uffff\1\u00de\2\uffff\2\25\6\uffff"+ - "\1\25\1\u00f2\2\uffff\2\25\7\uffff\1\u00f9\1\25\13\uffff\2\25\5"+ - "\uffff\1\u0101\1\25\1\uffff\1\u0103\4\uffff\2\25\1\uffff\1\u0106"+ - "\1\uffff\2\25\1\uffff\3\25\1\u010c\1\u010d\2\uffff"; + "\1\u00da\2\25\1\u00dd\1\u00de\5\uffff\1\u00df\2\uffff\2\25\6\uffff"+ + "\2\25\1\u00f4\2\uffff\2\25\7\uffff\1\u00fb\1\25\13\uffff\3\25\5"+ + "\uffff\1\u0104\1\25\1\uffff\1\u0106\4\uffff\3\25\1\uffff\1\u010a"+ + "\1\uffff\3\25\1\uffff\4\25\1\u0112\1\25\1\u0114\1\uffff\1\u0115"+ + "\2\uffff"; static final String DFA6_eofS = - "\u010e\uffff"; + "\u0116\uffff"; static final String DFA6_minS = "\1\11\1\51\1\uffff\1\143\2\uffff\1\143\1\165\1\145\1\141\1\144\1"+ "\145\1\157\1\145\1\164\1\uffff\2\56\1\125\1\uffff\1\101\6\uffff"+ @@ -3056,10 +3091,11 @@ public void mTokens() throws RecognitionException { "\1\162\1\145\4\uffff\1\145\1\141\1\156\1\143\2\uffff\1\137\1\60"+ "\1\uffff\1\156\1\56\1\154\1\164\1\137\1\160\1\60\1\uffff\1\163\1"+ "\156\1\56\1\154\1\164\2\56\5\uffff\1\56\1\60\1\uffff\1\144\1\151"+ - "\1\60\1\145\4\uffff\1\160\1\56\1\60\1\uffff\1\144\1\151\7\uffff"+ - "\1\56\1\143\10\uffff\2\145\1\uffff\1\145\1\141\5\uffff\1\56\1\143"+ - "\1\uffff\1\56\4\uffff\1\143\1\164\1\uffff\1\56\1\uffff\2\151\1\uffff"+ - "\1\141\1\143\1\154\2\56\2\uffff"; + "\1\60\1\145\4\uffff\1\160\1\151\1\56\1\60\1\uffff\1\144\1\151\7"+ + "\uffff\1\56\1\143\10\uffff\2\145\1\uffff\1\145\1\141\1\162\5\uffff"+ + "\1\56\1\143\1\uffff\1\56\4\uffff\1\143\2\164\1\uffff\1\56\1\uffff"+ + "\2\151\1\165\1\uffff\1\141\1\143\1\141\1\154\1\56\1\154\1\56\1\uffff"+ + "\1\56\2\uffff"; static final String DFA6_maxS = "\1\172\1\51\1\uffff\1\163\2\uffff\1\163\1\165\1\157\1\170\1\144"+ "\2\165\1\145\1\164\1\uffff\2\172\1\125\1\uffff\1\172\6\uffff\1\156"+ @@ -3075,26 +3111,27 @@ public void mTokens() throws RecognitionException { "\145\1\141\3\uffff\1\164\1\uffff\1\155\7\uffff\1\172\2\uffff\1\145"+ "\1\uffff\1\162\1\145\4\uffff\1\145\1\141\1\156\1\143\2\uffff\1\137"+ "\1\63\1\uffff\1\156\1\172\1\154\1\164\1\137\1\160\1\63\1\uffff\1"+ - "\163\1\156\1\172\1\154\1\164\2\172\5\uffff\1\172\1\63\1\uffff\1"+ - "\144\1\151\1\155\1\156\4\uffff\1\164\1\172\1\63\1\uffff\1\144\1"+ - "\151\7\uffff\1\172\1\143\10\uffff\2\164\1\uffff\1\145\1\141\5\uffff"+ - "\1\172\1\143\1\uffff\1\172\4\uffff\1\143\1\164\1\uffff\1\172\1\uffff"+ - "\2\151\1\uffff\1\141\1\143\1\154\2\172\2\uffff"; + "\166\1\156\1\172\1\154\1\164\2\172\5\uffff\1\172\1\63\1\uffff\1"+ + "\144\1\151\1\155\1\156\4\uffff\1\164\1\151\1\172\1\63\1\uffff\1"+ + "\144\1\151\7\uffff\1\172\1\143\10\uffff\2\164\1\uffff\1\145\1\141"+ + "\1\162\5\uffff\1\172\1\143\1\uffff\1\172\4\uffff\1\143\2\164\1\uffff"+ + "\1\172\1\uffff\2\151\1\165\1\uffff\1\141\1\143\1\141\1\154\1\172"+ + "\1\154\1\172\1\uffff\1\172\2\uffff"; static final String DFA6_acceptS = - "\2\uffff\1\3\1\uffff\1\13\1\14\11\uffff\1\120\3\uffff\1\124\1\uffff"+ - "\1\126\1\127\1\130\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\1\12\33\uffff"+ - "\1\121\1\122\47\uffff\1\125\5\uffff\1\31\23\uffff\1\75\5\uffff\1"+ - "\107\1\110\1\111\2\uffff\1\112\14\uffff\1\34\1\35\1\36\1\uffff\1"+ + "\2\uffff\1\3\1\uffff\1\13\1\14\11\uffff\1\121\3\uffff\1\125\1\uffff"+ + "\1\127\1\130\1\131\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\1\12\33\uffff"+ + "\1\122\1\123\47\uffff\1\126\5\uffff\1\31\23\uffff\1\76\5\uffff\1"+ + "\110\1\111\1\112\2\uffff\1\113\14\uffff\1\34\1\35\1\36\1\uffff\1"+ "\46\1\uffff\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\uffff\1\71\1\72"+ - "\1\uffff\1\76\2\uffff\1\105\1\106\1\123\1\113\4\uffff\1\5\1\6\2"+ + "\1\uffff\1\77\2\uffff\1\106\1\107\1\124\1\114\4\uffff\1\5\1\6\2"+ "\uffff\1\16\7\uffff\1\64\7\uffff\1\15\1\17\1\20\1\21\1\22\2\uffff"+ - "\1\24\4\uffff\1\65\1\66\1\67\1\70\3\uffff\1\100\2\uffff\1\116\1"+ - "\117\1\23\1\25\1\26\1\27\1\30\2\uffff\1\37\1\40\1\41\1\42\1\43\1"+ - "\44\1\45\1\47\2\uffff\1\54\2\uffff\1\77\1\101\1\102\1\103\1\104"+ - "\2\uffff\1\32\1\uffff\1\50\1\51\1\52\1\53\2\uffff\1\114\1\uffff"+ - "\1\33\2\uffff\1\115\5\uffff\1\74\1\73"; + "\1\24\4\uffff\1\65\1\66\1\67\1\70\4\uffff\1\101\2\uffff\1\117\1"+ + "\120\1\23\1\25\1\26\1\27\1\30\2\uffff\1\37\1\40\1\41\1\42\1\43\1"+ + "\44\1\45\1\47\2\uffff\1\54\3\uffff\1\100\1\102\1\103\1\104\1\105"+ + "\2\uffff\1\32\1\uffff\1\50\1\51\1\52\1\53\3\uffff\1\115\1\uffff"+ + "\1\33\3\uffff\1\116\7\uffff\1\74\1\uffff\1\73\1\75"; static final String DFA6_specialS = - "\u010e\uffff}>"; + "\u0116\uffff}>"; static final String[] DFA6_transitionS = { "\1\27\1\26\2\uffff\1\27\22\uffff\1\27\7\uffff\1\1\1\2\3\uffff"+ "\1\23\1\3\1\4\12\23\1\5\1\uffff\1\17\4\uffff\10\25\1\20\2\25"+ @@ -3295,12 +3332,12 @@ public void mTokens() throws RecognitionException { "\1\u00d1", "\1\u00d2\1\u00d3\1\u00d4\1\u00d5", "", - "\1\u00d6", - "\1\u00d7", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00d8\1\uffff\32"+ + "\1\u00d6\2\uffff\1\u00d7", + "\1\u00d8", + "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00d9\1\uffff\32"+ "\25", - "\1\u00da", "\1\u00db", + "\1\u00dc", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", @@ -3309,23 +3346,24 @@ public void mTokens() throws RecognitionException { "", "", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00df\1\u00e0\1\u00e1\1\u00e2", + "\1\u00e0\1\u00e1\1\u00e2\1\u00e3", "", - "\1\u00e3", "\1\u00e4", - "\1\u00e5\1\u00e6\1\u00e7\1\u00e8\1\u00e9\1\u00ea\67\uffff\1"+ - "\u00eb", - "\1\u00ec\1\uffff\1\u00ed\4\uffff\1\u00ee\1\uffff\1\u00ef", + "\1\u00e5", + "\1\u00e6\1\u00e7\1\u00e8\1\u00e9\1\u00ea\1\u00eb\67\uffff\1"+ + "\u00ec", + "\1\u00ed\1\uffff\1\u00ee\4\uffff\1\u00ef\1\uffff\1\u00f0", "", "", "", "", - "\1\u00f0\3\uffff\1\u00f1", + "\1\u00f1\3\uffff\1\u00f2", + "\1\u00f3", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00f3\1\u00f4\1\u00f5\1\u00f6", + "\1\u00f5\1\u00f6\1\u00f7\1\u00f8", "", - "\1\u00f7", - "\1\u00f8", + "\1\u00f9", + "\1\u00fa", "", "", "", @@ -3334,7 +3372,7 @@ public void mTokens() throws RecognitionException { "", "", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00fa", + "\1\u00fc", "", "", "", @@ -3343,36 +3381,43 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00fb\16\uffff\1\u00fc", "\1\u00fd\16\uffff\1\u00fe", + "\1\u00ff\16\uffff\1\u0100", "", - "\1\u00ff", - "\1\u0100", + "\1\u0101", + "\1\u0102", + "\1\u0103", "", "", "", "", "", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u0102", + "\1\u0105", "", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", "", "", "", - "\1\u0104", - "\1\u0105", - "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "", "\1\u0107", "\1\u0108", - "", "\1\u0109", - "\1\u010a", + "", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "", "\1\u010b", + "\1\u010c", + "\1\u010d", + "", + "\1\u010e", + "\1\u010f", + "\1\u0110", + "\1\u0111", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\u0113", + "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "", "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", "" @@ -3408,7 +3453,7 @@ public DFA6(BaseRecognizer recognizer) { this.transition = DFA6_transition; } public String getDescription() { - return "1:1: Tokens : ( T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; + return "1:1: Tokens : ( T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 17bf4be..24a8b2f 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 17:02:13 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 21:27:26 package br.ufpb.iged.interpretador.parser; @@ -18,12 +18,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__28=28; - public static final int T__29=29; public static final int T__30=30; public static final int T__31=31; public static final int T__32=32; @@ -101,30 +99,35 @@ public abstract class AssemblerParser extends Parser { public static final int T__104=104; public static final int T__105=105; public static final int T__106=106; - public static final int ARITMETICA=4; - public static final int BODY=5; - public static final int CONSTR_DECL=6; - public static final int DESVIO=7; - public static final int EXTENDS=8; - public static final int FIELD_DECL=9; - public static final int ID=10; - public static final int INIT=11; - public static final int INT=12; - public static final int INTEIRO=13; - public static final int LABEL=14; - public static final int LIMIT=15; - public static final int LOAD=16; - public static final int LOGICA=17; - public static final int MEMBRO_CLASSE=18; - public static final int METHOD_DECL=19; - public static final int NEWLINE=20; - public static final int NULL=21; - public static final int PARAMS=22; - public static final int PILHA=23; - public static final int STORE=24; - public static final int TIPO_REF=25; - public static final int VOID=26; - public static final int WS=27; + public static final int T__107=107; + public static final int T__108=108; + public static final int T__109=109; + public static final int ARGS=4; + public static final int ARITMETICA=5; + public static final int BODY=6; + public static final int CONSTR_DECL=7; + public static final int DESVIO=8; + public static final int EXTENDS=9; + public static final int FIELD_DECL=10; + public static final int ID=11; + public static final int INIT=12; + public static final int INT=13; + public static final int INTEIRO=14; + public static final int LABEL=15; + public static final int LIMIT=16; + public static final int LOAD=17; + public static final int LOGICA=18; + public static final int MEMBRO_CLASSE=19; + public static final int METHOD_CALL=20; + public static final int METHOD_DECL=21; + public static final int NEWLINE=22; + public static final int NULL=23; + public static final int PARAMS=24; + public static final int PILHA=25; + public static final int STORE=26; + public static final int TIPO_REF=27; + public static final int VOID=28; + public static final int WS=29; // delegates public Parser[] getDelegates() { @@ -169,7 +172,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:1: programa : ( instrucao )* ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: programa : ( instrucao )* ; public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -182,28 +185,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:10: ( ( instrucao )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( instrucao )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( instrucao )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==31||(LA1_0 >= 40 && LA1_0 <= 105)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==33||(LA1_0 >= 42 && LA1_0 <= 108)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:12: instrucao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: instrucao { - pushFollow(FOLLOW_instrucao_in_programa132); + pushFollow(FOLLOW_instrucao_in_programa142); instrucao1=instrucao(); state._fsp--; @@ -250,7 +253,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -267,14 +270,14 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST string_literal4_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:11: ( operacao | definicaoClasse ( '.end class' )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:11: ( operacao | definicaoClasse ( '.end class' )? ) int alt3=2; int LA3_0 = input.LA(1); - if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 40 && LA3_0 <= 105)) ) { + if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 42 && LA3_0 <= 108)) ) { alt3=1; } - else if ( (LA3_0==31) ) { + else if ( (LA3_0==33) ) { alt3=2; } else { @@ -286,12 +289,12 @@ else if ( (LA3_0==31) ) { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:13: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:13: operacao { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_operacao_in_instrucao160); + pushFollow(FOLLOW_operacao_in_instrucao170); operacao2=operacao(); state._fsp--; @@ -301,30 +304,30 @@ else if ( (LA3_0==31) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:13: definicaoClasse ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:13: definicaoClasse ( '.end class' )? { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_definicaoClasse_in_instrucao174); + pushFollow(FOLLOW_definicaoClasse_in_instrucao184); definicaoClasse3=definicaoClasse(); state._fsp--; adaptor.addChild(root_0, definicaoClasse3.getTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:29: ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:29: ( '.end class' )? int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==32) ) { + if ( (LA2_0==34) ) { alt2=1; } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:30: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:30: '.end class' { - string_literal4=(Token)match(input,32,FOLLOW_32_in_instrucao177); + string_literal4=(Token)match(input,34,FOLLOW_34_in_instrucao187); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -370,7 +373,7 @@ public static class operacao_return extends ParserRuleReturnScope { // $ANTLR start "operacao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:1: operacao : ( label comando | comando ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: operacao : ( label comando | comando ) ; public final AssemblerParser.operacao_return operacao() throws RecognitionException { AssemblerParser.operacao_return retval = new AssemblerParser.operacao_return(); retval.start = input.LT(1); @@ -387,20 +390,20 @@ public final AssemblerParser.operacao_return operacao() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:10: ( ( label comando | comando ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:10: ( ( label comando | comando ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:12: ( label comando | comando ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:12: ( label comando | comando ) int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==ID) ) { alt4=1; } - else if ( (LA4_0==NEWLINE||(LA4_0 >= 40 && LA4_0 <= 105)) ) { + else if ( (LA4_0==NEWLINE||(LA4_0 >= 42 && LA4_0 <= 108)) ) { alt4=2; } else { @@ -412,16 +415,16 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 40 && LA4_0 <= 105)) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:13: label comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:13: label comando { - pushFollow(FOLLOW_label_in_operacao199); + pushFollow(FOLLOW_label_in_operacao209); label5=label(); state._fsp--; adaptor.addChild(root_0, label5.getTree()); - pushFollow(FOLLOW_comando_in_operacao201); + pushFollow(FOLLOW_comando_in_operacao211); comando6=comando(); state._fsp--; @@ -431,9 +434,9 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 40 && LA4_0 <= 105)) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:29: comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:29: comando { - pushFollow(FOLLOW_comando_in_operacao205); + pushFollow(FOLLOW_comando_in_operacao215); comando7=comando(); state._fsp--; @@ -477,7 +480,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: label : a= ID ':' -> ^( LABEL $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:1: label : a= ID ':' -> ^( LABEL $a) ; public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -490,19 +493,19 @@ public final AssemblerParser.label_return label() throws RecognitionException { BytecodesAST a_tree=null; BytecodesAST char_literal8_tree=null; + RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: (a= ID ':' -> ^( LABEL $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: a= ID ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label227); + a=(Token)match(input,ID,FOLLOW_ID_in_label237); stream_ID.add(a); - char_literal8=(Token)match(input,39,FOLLOW_39_in_label229); - stream_39.add(char_literal8); + char_literal8=(Token)match(input,41,FOLLOW_41_in_label239); + stream_41.add(char_literal8); // AST REWRITE @@ -517,9 +520,9 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 57:20: -> ^( LABEL $a) + // 59:20: -> ^( LABEL $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:23: ^( LABEL $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:23: ^( LABEL $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -567,7 +570,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -602,85 +605,84 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio BytecodesAST NEWLINE20_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? int alt5=12; switch ( input.LA(1) ) { - case 53: - case 54: - case 86: - case 87: - case 99: - case 103: - case 104: + case 55: + case 56: + case 88: + case 89: + case 90: + case 102: + case 106: + case 107: { alt5=1; } break; - case 56: - case 65: - case 78: - case 84: - case 85: - case 89: - case 96: + case 58: + case 67: + case 80: + case 86: + case 87: + case 92: + case 99: { alt5=2; } break; - case 40: case 42: - case 43: case 44: case 45: - case 58: - case 59: + case 46: + case 47: case 60: case 61: case 62: case 63: case 64: - case 80: - case 81: + case 65: + case 66: case 82: case 83: + case 84: + case 85: { alt5=3; } break; - case 41: - case 79: - case 98: + case 43: + case 81: + case 101: { alt5=4; } break; - case 48: - case 49: case 50: case 51: - case 92: - case 93: - case 94: + case 52: + case 53: case 95: + case 96: + case 97: + case 98: { alt5=5; } break; - case 47: - case 91: + case 49: + case 94: { alt5=6; } break; - case 55: - case 66: - case 67: + case 57: case 68: case 69: case 70: @@ -691,32 +693,34 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio case 75: case 76: case 77: + case 78: + case 79: { alt5=7; } break; - case 57: - case 88: - case 97: + case 59: + case 91: + case 100: { alt5=8; } break; - case 52: - case 101: - case 102: + case 54: + case 104: + case 105: { alt5=9; } break; - case 46: - case 90: - case 105: + case 48: + case 93: + case 108: { alt5=10; } break; - case 100: + case 103: { alt5=11; } @@ -725,9 +729,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:12: manipulacaoObjetos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:12: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_comando247); + pushFollow(FOLLOW_manipulacaoObjetos_in_comando257); manipulacaoObjetos9=manipulacaoObjetos(); state._fsp--; @@ -737,9 +741,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:17: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: aritmetica { - pushFollow(FOLLOW_aritmetica_in_comando265); + pushFollow(FOLLOW_aritmetica_in_comando275); aritmetica10=aritmetica(); state._fsp--; @@ -749,9 +753,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:17: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: load { - pushFollow(FOLLOW_load_in_comando283); + pushFollow(FOLLOW_load_in_comando293); load11=load(); state._fsp--; @@ -761,9 +765,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: loadint { - pushFollow(FOLLOW_loadint_in_comando301); + pushFollow(FOLLOW_loadint_in_comando311); loadint12=loadint(); state._fsp--; @@ -773,9 +777,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: store { - pushFollow(FOLLOW_store_in_comando319); + pushFollow(FOLLOW_store_in_comando329); store13=store(); state._fsp--; @@ -785,9 +789,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: storeint { - pushFollow(FOLLOW_storeint_in_comando337); + pushFollow(FOLLOW_storeint_in_comando347); storeint14=storeint(); state._fsp--; @@ -797,9 +801,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: desvio { - pushFollow(FOLLOW_desvio_in_comando355); + pushFollow(FOLLOW_desvio_in_comando365); desvio15=desvio(); state._fsp--; @@ -809,9 +813,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:17: logica { - pushFollow(FOLLOW_logica_in_comando373); + pushFollow(FOLLOW_logica_in_comando383); logica16=logica(); state._fsp--; @@ -821,9 +825,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:17: pilha { - pushFollow(FOLLOW_pilha_in_comando391); + pushFollow(FOLLOW_pilha_in_comando401); pilha17=pilha(); state._fsp--; @@ -833,9 +837,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:17: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:17: retorno { - pushFollow(FOLLOW_retorno_in_comando409); + pushFollow(FOLLOW_retorno_in_comando419); retorno18=retorno(); state._fsp--; @@ -845,9 +849,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:17: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:17: 'nop' { - string_literal19=(Token)match(input,100,FOLLOW_100_in_comando427); + string_literal19=(Token)match(input,103,FOLLOW_103_in_comando437); string_literal19_tree = (BytecodesAST)adaptor.create(string_literal19) ; @@ -860,7 +864,7 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } - NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando443); + NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando453); NEWLINE20_tree = (BytecodesAST)adaptor.create(NEWLINE20) ; @@ -898,7 +902,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -922,45 +926,45 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST NEWLINE25_tree=null; BytecodesAST NEWLINE27_tree=null; RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); - RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal21=(Token)match(input,31,FOLLOW_31_in_definicaoClasse469); - stream_31.add(string_literal21); + string_literal21=(Token)match(input,33,FOLLOW_33_in_definicaoClasse479); + stream_33.add(string_literal21); - ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse471); + ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse481); stream_ID.add(ID22); - NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse473); + NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse483); stream_NEWLINE.add(NEWLINE23); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:27: ( superClasse NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:27: ( superClasse NEWLINE )? int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==37) ) { + if ( (LA6_0==39) ) { alt6=1; } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:28: superClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:28: superClasse NEWLINE { - pushFollow(FOLLOW_superClasse_in_definicaoClasse476); + pushFollow(FOLLOW_superClasse_in_definicaoClasse486); superClasse24=superClasse(); state._fsp--; stream_superClasse.add(superClasse24.getTree()); - NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse478); + NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse488); stream_NEWLINE.add(NEWLINE25); @@ -970,30 +974,30 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:50: ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:50: ( membroClasse NEWLINE )+ int cnt7=0; loop7: do { int alt7=2; int LA7_0 = input.LA(1); - if ( (LA7_0==34||LA7_0==36) ) { + if ( (LA7_0==36||LA7_0==38) ) { alt7=1; } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:51: membroClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:51: membroClasse NEWLINE { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse483); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse493); membroClasse26=membroClasse(); state._fsp--; stream_membroClasse.add(membroClasse26.getTree()); - NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse485); + NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse495); stream_NEWLINE.add(NEWLINE27); @@ -1011,7 +1015,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 31, membroClasse, superClasse, ID + // elements: ID, superClasse, 33, membroClasse // token labels: // rule labels: retval // token list labels: @@ -1021,27 +1025,27 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 74:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 76:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_31.nextNode() + stream_33.nextNode() , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:29: ( superClasse )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:29: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -1099,7 +1103,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1113,17 +1117,17 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal28_tree=null; BytecodesAST TIPO_REF29_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:15: '.super' TIPO_REF { - string_literal28=(Token)match(input,37,FOLLOW_37_in_superClasse546); - stream_37.add(string_literal28); + string_literal28=(Token)match(input,39,FOLLOW_39_in_superClasse556); + stream_39.add(string_literal28); - TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse548); + TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse558); stream_TIPO_REF.add(TIPO_REF29); @@ -1138,9 +1142,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 77:33: -> ^( EXTENDS TIPO_REF ) + // 79:33: -> ^( EXTENDS TIPO_REF ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:36: ^( EXTENDS TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:36: ^( EXTENDS TIPO_REF ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1190,7 +1194,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:1: membroClasse : ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:1: membroClasse : ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1259,33 +1263,33 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST string_literal57_tree=null; RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); + RewriteRuleTokenStream stream_109=new RewriteRuleTokenStream(adaptor,"token 109"); + RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_106=new RewriteRuleTokenStream(adaptor,"token 106"); RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); - RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); - RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); - RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28"); + RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); RewriteRuleSubtreeStream stream_limite=new RewriteRuleSubtreeStream(adaptor,"rule limite"); RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:5: ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:5: ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) int alt16=3; int LA16_0 = input.LA(1); - if ( (LA16_0==34) ) { + if ( (LA16_0==36) ) { alt16=1; } - else if ( (LA16_0==36) ) { + else if ( (LA16_0==38) ) { int LA16_2 = input.LA(2); if ( (LA16_2==INIT) ) { alt16=2; } - else if ( (LA16_2==ID||LA16_2==106) ) { + else if ( (LA16_2==ID||LA16_2==109) ) { alt16=3; } else { @@ -1305,25 +1309,25 @@ else if ( (LA16_2==ID||LA16_2==106) ) { } switch (alt16) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:7: '.field' ( 'static' )? ID tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:7: '.field' ( 'static' )? ID tipo { - string_literal30=(Token)match(input,34,FOLLOW_34_in_membroClasse569); - stream_34.add(string_literal30); + string_literal30=(Token)match(input,36,FOLLOW_36_in_membroClasse579); + stream_36.add(string_literal30); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:16: ( 'static' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:16: ( 'static' )? int alt8=2; int LA8_0 = input.LA(1); - if ( (LA8_0==106) ) { + if ( (LA8_0==109) ) { alt8=1; } switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:16: 'static' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:16: 'static' { - string_literal31=(Token)match(input,106,FOLLOW_106_in_membroClasse571); - stream_106.add(string_literal31); + string_literal31=(Token)match(input,109,FOLLOW_109_in_membroClasse581); + stream_109.add(string_literal31); } @@ -1332,11 +1336,11 @@ else if ( (LA16_2==ID||LA16_2==106) ) { } - ID32=(Token)match(input,ID,FOLLOW_ID_in_membroClasse574); + ID32=(Token)match(input,ID,FOLLOW_ID_in_membroClasse584); stream_ID.add(ID32); - pushFollow(FOLLOW_tipo_in_membroClasse576); + pushFollow(FOLLOW_tipo_in_membroClasse586); tipo33=tipo(); state._fsp--; @@ -1354,9 +1358,9 @@ else if ( (LA16_2==ID||LA16_2==106) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 80:34: -> ^( FIELD_DECL ID tipo ) + // 82:34: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:37: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:37: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1380,24 +1384,24 @@ else if ( (LA16_2==ID||LA16_2==106) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:7: '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal34=(Token)match(input,36,FOLLOW_36_in_membroClasse594); - stream_36.add(string_literal34); + string_literal34=(Token)match(input,38,FOLLOW_38_in_membroClasse604); + stream_38.add(string_literal34); - INIT35=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse596); + INIT35=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse606); stream_INIT.add(INIT35); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:22: ( parametros | '(' parametros ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:22: ( parametros | '(' parametros ')' ) int alt9=2; int LA9_0 = input.LA(1); - if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==29) ) { + if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==31) ) { alt9=1; } - else if ( (LA9_0==28) ) { + else if ( (LA9_0==30) ) { alt9=2; } else { @@ -1409,9 +1413,9 @@ else if ( (LA9_0==28) ) { } switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:23: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:23: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse599); + pushFollow(FOLLOW_parametros_in_membroClasse609); parametros36=parametros(); state._fsp--; @@ -1421,21 +1425,21 @@ else if ( (LA9_0==28) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:36: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:36: '(' parametros ')' { - char_literal37=(Token)match(input,28,FOLLOW_28_in_membroClasse603); - stream_28.add(char_literal37); + char_literal37=(Token)match(input,30,FOLLOW_30_in_membroClasse613); + stream_30.add(char_literal37); - pushFollow(FOLLOW_parametros_in_membroClasse605); + pushFollow(FOLLOW_parametros_in_membroClasse615); parametros38=parametros(); state._fsp--; stream_parametros.add(parametros38.getTree()); - char_literal39=(Token)match(input,30,FOLLOW_30_in_membroClasse607); - stream_30.add(char_literal39); + char_literal39=(Token)match(input,32,FOLLOW_32_in_membroClasse617); + stream_32.add(char_literal39); } @@ -1444,33 +1448,33 @@ else if ( (LA9_0==28) ) { } - VOID40=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse610); + VOID40=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse620); stream_VOID.add(VOID40); - NEWLINE41=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse612); + NEWLINE41=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse622); stream_NEWLINE.add(NEWLINE41); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:69: ( limite NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:69: ( limite NEWLINE )? int alt10=2; int LA10_0 = input.LA(1); - if ( (LA10_0==35) ) { + if ( (LA10_0==37) ) { alt10=1; } switch (alt10) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:70: limite NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:70: limite NEWLINE { - pushFollow(FOLLOW_limite_in_membroClasse615); + pushFollow(FOLLOW_limite_in_membroClasse625); limite42=limite(); state._fsp--; stream_limite.add(limite42.getTree()); - NEWLINE43=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse617); + NEWLINE43=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse627); stream_NEWLINE.add(NEWLINE43); @@ -1480,22 +1484,22 @@ else if ( (LA9_0==28) ) { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:87: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:87: ( operacao )* loop11: do { int alt11=2; int LA11_0 = input.LA(1); - if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 40 && LA11_0 <= 105)) ) { + if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 42 && LA11_0 <= 108)) ) { alt11=1; } switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:87: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:87: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse621); + pushFollow(FOLLOW_operacao_in_membroClasse631); operacao44=operacao(); state._fsp--; @@ -1511,12 +1515,12 @@ else if ( (LA9_0==28) ) { } while (true); - string_literal45=(Token)match(input,33,FOLLOW_33_in_membroClasse624); - stream_33.add(string_literal45); + string_literal45=(Token)match(input,35,FOLLOW_35_in_membroClasse634); + stream_35.add(string_literal45); // AST REWRITE - // elements: parametros, operacao, INIT, limite + // elements: operacao, limite, parametros, INIT // token labels: // rule labels: retval // token list labels: @@ -1526,9 +1530,9 @@ else if ( (LA9_0==28) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 82:2: -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) + // 84:2: -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:5: ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:5: ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1541,21 +1545,21 @@ else if ( (LA9_0==28) ) { adaptor.addChild(root_1, stream_parametros.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:35: ( limite )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:35: ( limite )? if ( stream_limite.hasNext() ) { adaptor.addChild(root_1, stream_limite.nextTree()); } stream_limite.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:43: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:43: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:50: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:50: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1576,25 +1580,25 @@ else if ( (LA9_0==28) ) { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:7: '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal46=(Token)match(input,36,FOLLOW_36_in_membroClasse653); - stream_36.add(string_literal46); + string_literal46=(Token)match(input,38,FOLLOW_38_in_membroClasse663); + stream_38.add(string_literal46); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:17: ( 'static' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:17: ( 'static' )? int alt12=2; int LA12_0 = input.LA(1); - if ( (LA12_0==106) ) { + if ( (LA12_0==109) ) { alt12=1; } switch (alt12) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:17: 'static' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:17: 'static' { - string_literal47=(Token)match(input,106,FOLLOW_106_in_membroClasse655); - stream_106.add(string_literal47); + string_literal47=(Token)match(input,109,FOLLOW_109_in_membroClasse665); + stream_109.add(string_literal47); } @@ -1603,18 +1607,18 @@ else if ( (LA9_0==28) ) { } - ID48=(Token)match(input,ID,FOLLOW_ID_in_membroClasse658); + ID48=(Token)match(input,ID,FOLLOW_ID_in_membroClasse668); stream_ID.add(ID48); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:30: ( parametros | '(' parametros ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:30: ( parametros | '(' parametros ')' ) int alt13=2; int LA13_0 = input.LA(1); - if ( (LA13_0==ID||LA13_0==TIPO_REF||LA13_0==29) ) { + if ( (LA13_0==ID||LA13_0==TIPO_REF||LA13_0==31) ) { alt13=1; } - else if ( (LA13_0==28) ) { + else if ( (LA13_0==30) ) { alt13=2; } else { @@ -1626,9 +1630,9 @@ else if ( (LA13_0==28) ) { } switch (alt13) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:31: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:31: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse661); + pushFollow(FOLLOW_parametros_in_membroClasse671); parametros49=parametros(); state._fsp--; @@ -1638,21 +1642,21 @@ else if ( (LA13_0==28) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:44: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:44: '(' parametros ')' { - char_literal50=(Token)match(input,28,FOLLOW_28_in_membroClasse665); - stream_28.add(char_literal50); + char_literal50=(Token)match(input,30,FOLLOW_30_in_membroClasse675); + stream_30.add(char_literal50); - pushFollow(FOLLOW_parametros_in_membroClasse667); + pushFollow(FOLLOW_parametros_in_membroClasse677); parametros51=parametros(); state._fsp--; stream_parametros.add(parametros51.getTree()); - char_literal52=(Token)match(input,30,FOLLOW_30_in_membroClasse669); - stream_30.add(char_literal52); + char_literal52=(Token)match(input,32,FOLLOW_32_in_membroClasse679); + stream_32.add(char_literal52); } @@ -1661,36 +1665,36 @@ else if ( (LA13_0==28) ) { } - pushFollow(FOLLOW_tipo_in_membroClasse676); + pushFollow(FOLLOW_tipo_in_membroClasse686); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse678); + NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse688); stream_NEWLINE.add(NEWLINE53); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:83: ( limite NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:83: ( limite NEWLINE )? int alt14=2; int LA14_0 = input.LA(1); - if ( (LA14_0==35) ) { + if ( (LA14_0==37) ) { alt14=1; } switch (alt14) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:84: limite NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:84: limite NEWLINE { - pushFollow(FOLLOW_limite_in_membroClasse681); + pushFollow(FOLLOW_limite_in_membroClasse691); limite54=limite(); state._fsp--; stream_limite.add(limite54.getTree()); - NEWLINE55=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse683); + NEWLINE55=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse693); stream_NEWLINE.add(NEWLINE55); @@ -1700,22 +1704,22 @@ else if ( (LA13_0==28) ) { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:101: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:101: ( operacao )* loop15: do { int alt15=2; int LA15_0 = input.LA(1); - if ( (LA15_0==ID||LA15_0==NEWLINE||(LA15_0 >= 40 && LA15_0 <= 105)) ) { + if ( (LA15_0==ID||LA15_0==NEWLINE||(LA15_0 >= 42 && LA15_0 <= 108)) ) { alt15=1; } switch (alt15) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:101: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:101: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse687); + pushFollow(FOLLOW_operacao_in_membroClasse697); operacao56=operacao(); state._fsp--; @@ -1731,12 +1735,12 @@ else if ( (LA13_0==28) ) { } while (true); - string_literal57=(Token)match(input,33,FOLLOW_33_in_membroClasse690); - stream_33.add(string_literal57); + string_literal57=(Token)match(input,35,FOLLOW_35_in_membroClasse700); + stream_35.add(string_literal57); // AST REWRITE - // elements: operacao, ret, limite, parametros, ID + // elements: limite, operacao, parametros, ret, ID // token labels: // rule labels: ret, retval // token list labels: @@ -1747,9 +1751,9 @@ else if ( (LA13_0==28) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 84:9: -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) + // 86:9: -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:12: ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:12: ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1764,21 +1768,21 @@ else if ( (LA13_0==28) ) { adaptor.addChild(root_1, stream_parametros.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:45: ( limite )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:45: ( limite )? if ( stream_limite.hasNext() ) { adaptor.addChild(root_1, stream_limite.nextTree()); } stream_limite.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:53: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:53: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:60: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:60: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1829,7 +1833,7 @@ public static class limite_return extends ParserRuleReturnScope { // $ANTLR start "limite" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:1: limite : '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:1: limite : '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ; public final AssemblerParser.limite_return limite() throws RecognitionException { AssemblerParser.limite_return retval = new AssemblerParser.limite_return(); retval.start = input.LT(1); @@ -1842,18 +1846,18 @@ public final AssemblerParser.limite_return limite() throws RecognitionException BytecodesAST string_literal58_tree=null; BytecodesAST INTEIRO59_tree=null; - RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:8: ( '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:11: '.limit locals' INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: ( '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:11: '.limit locals' INTEIRO { - string_literal58=(Token)match(input,35,FOLLOW_35_in_limite739); - stream_35.add(string_literal58); + string_literal58=(Token)match(input,37,FOLLOW_37_in_limite749); + stream_37.add(string_literal58); - INTEIRO59=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite741); + INTEIRO59=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite751); stream_INTEIRO.add(INTEIRO59); @@ -1868,9 +1872,9 @@ public final AssemblerParser.limite_return limite() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 87:35: -> ^( LIMIT INTEIRO ) + // 89:35: -> ^( LIMIT INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:38: ^( LIMIT INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:38: ^( LIMIT INTEIRO ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1920,7 +1924,7 @@ public static class parametros_return extends ParserRuleReturnScope { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); public final AssemblerParser.parametros_return parametros() throws RecognitionException { AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); @@ -1934,15 +1938,15 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx BytecodesAST a_tree=null; BytecodesAST string_literal60_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); + RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_29=new RewriteRuleTokenStream(adaptor,"token 29"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) int alt18=2; int LA18_0 = input.LA(1); - if ( (LA18_0==29) ) { + if ( (LA18_0==31) ) { alt18=1; } else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { @@ -1957,10 +1961,10 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { } switch (alt18) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:4: '()' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:4: '()' { - string_literal60=(Token)match(input,29,FOLLOW_29_in_parametros763); - stream_29.add(string_literal60); + string_literal60=(Token)match(input,31,FOLLOW_31_in_parametros773); + stream_31.add(string_literal60); // AST REWRITE @@ -1974,9 +1978,9 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 90:9: -> ^( PARAMS VOID ) + // 92:9: -> ^( PARAMS VOID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:12: ^( PARAMS VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:12: ^( PARAMS VOID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1998,9 +2002,9 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:4: (a= ID |a= TIPO_REF )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:4: (a= ID |a= TIPO_REF )+ int cnt17=0; loop17: do { @@ -2010,7 +2014,7 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { if ( (LA17_0==TIPO_REF) ) { int LA17_2 = input.LA(2); - if ( (LA17_2==ID||LA17_2==INT||(LA17_2 >= TIPO_REF && LA17_2 <= VOID)||LA17_2==30) ) { + if ( (LA17_2==ID||LA17_2==INT||(LA17_2 >= TIPO_REF && LA17_2 <= VOID)||LA17_2==32) ) { alt17=2; } @@ -2023,18 +2027,18 @@ else if ( (LA17_0==ID) ) { switch (alt17) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:9: a= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:9: a= ID { - a=(Token)match(input,ID,FOLLOW_ID_in_parametros790); + a=(Token)match(input,ID,FOLLOW_ID_in_parametros800); stream_ID.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:9: a= TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= TIPO_REF { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros805); + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros815); stream_TIPO_REF.add(a); @@ -2063,13 +2067,13 @@ else if ( (LA17_0==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 95:4: -> ( ^( PARAMS $a) )+ + // 97:4: -> ( ^( PARAMS $a) )+ { if ( !(stream_a.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:7: ^( PARAMS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:7: ^( PARAMS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2122,7 +2126,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -2135,7 +2139,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST set61_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: ( 'areturn' | 'ireturn' | 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: ( 'areturn' | 'ireturn' | 'return' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); @@ -2143,7 +2147,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio set61=(Token)input.LT(1); - if ( input.LA(1)==46||input.LA(1)==90||input.LA(1)==105 ) { + if ( input.LA(1)==48||input.LA(1)==93||input.LA(1)==108 ) { input.consume(); adaptor.addChild(root_0, (BytecodesAST)adaptor.create(set61) @@ -2187,7 +2191,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'invokevirtual' c= classe '/' d= chamadaMetodo -> ^( 'invokevirtual' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -2198,6 +2202,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro Token a=null; Token char_literal66=null; Token char_literal67=null; + Token char_literal68=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; @@ -2216,57 +2221,64 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST a_tree=null; BytecodesAST char_literal66_tree=null; BytecodesAST char_literal67_tree=null; - RewriteRuleTokenStream stream_104=new RewriteRuleTokenStream(adaptor,"token 104"); - RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); - RewriteRuleTokenStream stream_103=new RewriteRuleTokenStream(adaptor,"token 103"); - RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); - RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); - RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); - RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); - RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); + BytecodesAST char_literal68_tree=null; + RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); + RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); + RewriteRuleTokenStream stream_107=new RewriteRuleTokenStream(adaptor,"token 107"); + RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); + RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); + RewriteRuleTokenStream stream_106=new RewriteRuleTokenStream(adaptor,"token 106"); + RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102"); + RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); + RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) - int alt19=7; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'invokevirtual' c= classe '/' d= chamadaMetodo -> ^( 'invokevirtual' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) + int alt19=8; switch ( input.LA(1) ) { - case 53: + case 55: { alt19=1; } break; - case 54: + case 56: { alt19=2; } break; - case 103: + case 106: { alt19=3; } break; - case 104: + case 107: { alt19=4; } break; - case 86: + case 88: { alt19=5; } break; - case 87: + case 89: { alt19=6; } break; - case 99: + case 90: { alt19=7; } break; + case 102: + { + alt19=8; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 19, 0, input); @@ -2277,20 +2289,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt19) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,53,FOLLOW_53_in_manipulacaoObjetos867); - stream_53.add(a); + a=(Token)match(input,55,FOLLOW_55_in_manipulacaoObjetos877); + stream_55.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos873); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos883); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos875); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos885); tipo62=tipo(); state._fsp--; @@ -2298,7 +2310,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: b, 53, tipo + // elements: b, tipo, 55 // token labels: // rule labels: retval, b // token list labels: @@ -2309,13 +2321,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 100:52: -> ^( 'getfield' $b tipo ) + // 102:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_53.nextNode() + stream_55.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2333,20 +2345,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:8: a= 'getstatic' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:8: a= 'getstatic' b= campo tipo { - a=(Token)match(input,54,FOLLOW_54_in_manipulacaoObjetos899); - stream_54.add(a); + a=(Token)match(input,56,FOLLOW_56_in_manipulacaoObjetos909); + stream_56.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos905); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos915); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos907); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos917); tipo63=tipo(); state._fsp--; @@ -2354,7 +2366,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo63.getTree()); // AST REWRITE - // elements: b, 54, tipo + // elements: b, tipo, 56 // token labels: // rule labels: retval, b // token list labels: @@ -2365,13 +2377,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 101:39: -> ^( 'getstatic' $b tipo ) + // 103:39: -> ^( 'getstatic' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:42: ^( 'getstatic' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:42: ^( 'getstatic' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_54.nextNode() + stream_56.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2389,20 +2401,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,103,FOLLOW_103_in_manipulacaoObjetos945); - stream_103.add(a); + a=(Token)match(input,106,FOLLOW_106_in_manipulacaoObjetos955); + stream_106.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos951); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos961); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos953); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos963); tipo64=tipo(); state._fsp--; @@ -2410,7 +2422,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo64.getTree()); // AST REWRITE - // elements: b, tipo, 103 + // elements: 106, b, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2421,13 +2433,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 102:52: -> ^( 'putfield' $b tipo ) + // 104:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_103.nextNode() + stream_106.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2445,20 +2457,20 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:22: a= 'putstatic' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:22: a= 'putstatic' b= campo tipo { - a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos991); - stream_104.add(a); + a=(Token)match(input,107,FOLLOW_107_in_manipulacaoObjetos1001); + stream_107.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos997); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos1007); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos999); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1009); tipo65=tipo(); state._fsp--; @@ -2466,7 +2478,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo65.getTree()); // AST REWRITE - // elements: 104, tipo, b + // elements: tipo, 107, b // token labels: // rule labels: retval, b // token list labels: @@ -2477,13 +2489,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 103:53: -> ^( 'putstatic' $b tipo ) + // 105:53: -> ^( 'putstatic' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:56: ^( 'putstatic' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:56: ^( 'putstatic' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_104.nextNode() + stream_107.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2501,24 +2513,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,86,FOLLOW_86_in_manipulacaoObjetos1037); - stream_86.add(a); + a=(Token)match(input,88,FOLLOW_88_in_manipulacaoObjetos1047); + stream_88.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1043); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1053); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal66=(Token)match(input,38,FOLLOW_38_in_manipulacaoObjetos1045); - stream_38.add(char_literal66); + char_literal66=(Token)match(input,40,FOLLOW_40_in_manipulacaoObjetos1055); + stream_40.add(char_literal66); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1051); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1061); d=chamadaMetodo(); state._fsp--; @@ -2526,7 +2538,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: d, c, 86 + // elements: c, 88, d // token labels: // rule labels: retval, d, c // token list labels: @@ -2538,13 +2550,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 105:23: -> ^( 'invokespecial' $c $d) + // 107:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_86.nextNode() + stream_88.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2562,24 +2574,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:22: a= 'invokestatic' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'invokestatic' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,87,FOLLOW_87_in_manipulacaoObjetos1112); - stream_87.add(a); + a=(Token)match(input,89,FOLLOW_89_in_manipulacaoObjetos1122); + stream_89.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1118); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1128); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal67=(Token)match(input,38,FOLLOW_38_in_manipulacaoObjetos1120); - stream_38.add(char_literal67); + char_literal67=(Token)match(input,40,FOLLOW_40_in_manipulacaoObjetos1130); + stream_40.add(char_literal67); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1126); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1136); d=chamadaMetodo(); state._fsp--; @@ -2587,7 +2599,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, d, 87 + // elements: 89, d, c // token labels: // rule labels: retval, d, c // token list labels: @@ -2599,13 +2611,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 107:23: -> ^( 'invokestatic' $c $d) + // 109:23: -> ^( 'invokestatic' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:26: ^( 'invokestatic' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:26: ^( 'invokestatic' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_87.nextNode() + stream_89.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2623,13 +2635,74 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'new' c= classe + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:23: a= 'invokevirtual' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,99,FOLLOW_99_in_manipulacaoObjetos1187); - stream_99.add(a); + a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1198); + stream_90.add(a); + + + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1204); + c=classe(); + + state._fsp--; + + stream_classe.add(c.getTree()); + + char_literal68=(Token)match(input,40,FOLLOW_40_in_manipulacaoObjetos1206); + stream_40.add(char_literal68); + + + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1212); + d=chamadaMetodo(); + + state._fsp--; + + stream_chamadaMetodo.add(d.getTree()); + + // AST REWRITE + // elements: d, 90, c + // token labels: + // rule labels: retval, d, c + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); + RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 111:23: -> ^( 'invokevirtual' $c $d) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:26: ^( 'invokevirtual' $c $d) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + stream_90.nextNode() + , root_1); + + adaptor.addChild(root_1, stream_c.nextTree()); + + adaptor.addChild(root_1, stream_d.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 8 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'new' c= classe + { + a=(Token)match(input,102,FOLLOW_102_in_manipulacaoObjetos1273); + stream_102.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1192); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1278); c=classe(); state._fsp--; @@ -2637,7 +2710,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: c, 99 + // elements: 102, c // token labels: // rule labels: retval, c // token list labels: @@ -2648,13 +2721,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 108:42: -> ^( 'new' $c) + // 112:42: -> ^( 'new' $c) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:45: ^( 'new' $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:45: ^( 'new' $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_99.nextNode() + stream_102.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2700,7 +2773,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2708,23 +2781,23 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set68=null; + Token set69=null; - BytecodesAST set68_tree=null; + BytecodesAST set69_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set68=(Token)input.LT(1); + set69=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set68) + (BytecodesAST)adaptor.create(set69) ); state.errorRecovery=false; } @@ -2765,7 +2838,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2776,52 +2849,52 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); - RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); - RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); - RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); - RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); - RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); - RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); + RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); + RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); + RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); + RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); + RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); + RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); + RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt20=7; switch ( input.LA(1) ) { - case 56: + case 58: { alt20=1; } break; - case 96: + case 99: { alt20=2; } break; - case 84: + case 86: { alt20=3; } break; - case 65: + case 67: { alt20=4; } break; - case 89: + case 92: { alt20=5; } break; - case 78: + case 80: { alt20=6; } break; - case 85: + case 87: { alt20=7; } @@ -2836,64 +2909,64 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:16: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:16: a= 'iadd' { - a=(Token)match(input,56,FOLLOW_56_in_aritmetica1270); - stream_56.add(a); + a=(Token)match(input,58,FOLLOW_58_in_aritmetica1356); + stream_58.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:19: a= 'isub' { - a=(Token)match(input,96,FOLLOW_96_in_aritmetica1294); - stream_96.add(a); + a=(Token)match(input,99,FOLLOW_99_in_aritmetica1380); + stream_99.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:19: a= 'imul' { - a=(Token)match(input,84,FOLLOW_84_in_aritmetica1318); - stream_84.add(a); + a=(Token)match(input,86,FOLLOW_86_in_aritmetica1404); + stream_86.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:19: a= 'idiv' { - a=(Token)match(input,65,FOLLOW_65_in_aritmetica1342); - stream_65.add(a); + a=(Token)match(input,67,FOLLOW_67_in_aritmetica1428); + stream_67.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:19: a= 'irem' { - a=(Token)match(input,89,FOLLOW_89_in_aritmetica1366); - stream_89.add(a); + a=(Token)match(input,92,FOLLOW_92_in_aritmetica1452); + stream_92.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:19: a= 'iinc' { - a=(Token)match(input,78,FOLLOW_78_in_aritmetica1390); - stream_78.add(a); + a=(Token)match(input,80,FOLLOW_80_in_aritmetica1476); + stream_80.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:19: a= 'ineg' { - a=(Token)match(input,85,FOLLOW_85_in_aritmetica1414); - stream_85.add(a); + a=(Token)match(input,87,FOLLOW_87_in_aritmetica1500); + stream_87.add(a); } @@ -2914,9 +2987,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 122:14: -> ^( ARITMETICA $a) + // 126:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2964,7 +3037,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -2975,106 +3048,106 @@ public final AssemblerParser.load_return load() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); - RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); + RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); - RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); - RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); + RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); + RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); + RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); - RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); - RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); + RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); + RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt21=16; switch ( input.LA(1) ) { - case 64: + case 66: { alt21=1; } break; - case 58: + case 60: { alt21=2; } break; - case 59: + case 61: { alt21=3; } break; - case 60: + case 62: { alt21=4; } break; - case 61: + case 63: { alt21=5; } break; - case 62: + case 64: { alt21=6; } break; - case 63: + case 65: { alt21=7; } break; - case 40: + case 42: { alt21=8; } break; - case 80: + case 82: { alt21=9; } break; - case 81: + case 83: { alt21=10; } break; - case 82: + case 84: { alt21=11; } break; - case 83: + case 85: { alt21=12; } break; - case 42: + case 44: { alt21=13; } break; - case 43: + case 45: { alt21=14; } break; - case 44: + case 46: { alt21=15; } break; - case 45: + case 47: { alt21=16; } @@ -3089,145 +3162,145 @@ public final AssemblerParser.load_return load() throws RecognitionException { switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:10: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:10: a= 'iconst_m1' { - a=(Token)match(input,64,FOLLOW_64_in_load1488); - stream_64.add(a); + a=(Token)match(input,66,FOLLOW_66_in_load1574); + stream_66.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'iconst_0' { - a=(Token)match(input,58,FOLLOW_58_in_load1506); - stream_58.add(a); + a=(Token)match(input,60,FOLLOW_60_in_load1592); + stream_60.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'iconst_1' { - a=(Token)match(input,59,FOLLOW_59_in_load1524); - stream_59.add(a); + a=(Token)match(input,61,FOLLOW_61_in_load1610); + stream_61.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'iconst_2' { - a=(Token)match(input,60,FOLLOW_60_in_load1542); - stream_60.add(a); + a=(Token)match(input,62,FOLLOW_62_in_load1628); + stream_62.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'iconst_3' { - a=(Token)match(input,61,FOLLOW_61_in_load1560); - stream_61.add(a); + a=(Token)match(input,63,FOLLOW_63_in_load1646); + stream_63.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'iconst_4' { - a=(Token)match(input,62,FOLLOW_62_in_load1578); - stream_62.add(a); + a=(Token)match(input,64,FOLLOW_64_in_load1664); + stream_64.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'iconst_5' { - a=(Token)match(input,63,FOLLOW_63_in_load1596); - stream_63.add(a); + a=(Token)match(input,65,FOLLOW_65_in_load1682); + stream_65.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'aconst_null' { - a=(Token)match(input,40,FOLLOW_40_in_load1614); - stream_40.add(a); + a=(Token)match(input,42,FOLLOW_42_in_load1700); + stream_42.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iload_0' { - a=(Token)match(input,80,FOLLOW_80_in_load1632); - stream_80.add(a); + a=(Token)match(input,82,FOLLOW_82_in_load1718); + stream_82.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iload_1' { - a=(Token)match(input,81,FOLLOW_81_in_load1650); - stream_81.add(a); + a=(Token)match(input,83,FOLLOW_83_in_load1736); + stream_83.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iload_2' { - a=(Token)match(input,82,FOLLOW_82_in_load1668); - stream_82.add(a); + a=(Token)match(input,84,FOLLOW_84_in_load1754); + stream_84.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'iload_3' { - a=(Token)match(input,83,FOLLOW_83_in_load1686); - stream_83.add(a); + a=(Token)match(input,85,FOLLOW_85_in_load1772); + stream_85.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'aload_0' { - a=(Token)match(input,42,FOLLOW_42_in_load1704); - stream_42.add(a); + a=(Token)match(input,44,FOLLOW_44_in_load1790); + stream_44.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'aload_1' { - a=(Token)match(input,43,FOLLOW_43_in_load1722); - stream_43.add(a); + a=(Token)match(input,45,FOLLOW_45_in_load1808); + stream_45.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'aload_2' { - a=(Token)match(input,44,FOLLOW_44_in_load1740); - stream_44.add(a); + a=(Token)match(input,46,FOLLOW_46_in_load1826); + stream_46.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'aload_3' { - a=(Token)match(input,45,FOLLOW_45_in_load1758); - stream_45.add(a); + a=(Token)match(input,47,FOLLOW_47_in_load1844); + stream_47.add(a); } @@ -3248,9 +3321,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 142:8: -> ^( LOAD $a) + // 146:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3298,7 +3371,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -3311,29 +3384,29 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); - RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); - RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); + RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); + RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); + RewriteRuleTokenStream stream_101=new RewriteRuleTokenStream(adaptor,"token 101"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) int alt22=3; switch ( input.LA(1) ) { - case 79: + case 81: { alt22=1; } break; - case 98: + case 101: { alt22=2; } break; - case 41: + case 43: { alt22=3; } @@ -3348,39 +3421,39 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,79,FOLLOW_79_in_loadint1808); - stream_79.add(a); + a=(Token)match(input,81,FOLLOW_81_in_loadint1894); + stream_81.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1814); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1900); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,98,FOLLOW_98_in_loadint1834); - stream_98.add(a); + a=(Token)match(input,101,FOLLOW_101_in_loadint1920); + stream_101.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1840); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1926); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,41,FOLLOW_41_in_loadint1860); - stream_41.add(a); + a=(Token)match(input,43,FOLLOW_43_in_loadint1946); + stream_43.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1866); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1952); stream_INTEIRO.add(b); @@ -3391,7 +3464,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3403,9 +3476,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 149:11: -> ^( LOAD $a $b) + // 153:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3455,7 +3528,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -3466,58 +3539,58 @@ public final AssemblerParser.store_return store() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); - RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); + RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); + RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); + RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); - RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); - RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); - RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); + RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); + RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt23=8; switch ( input.LA(1) ) { - case 92: + case 95: { alt23=1; } break; - case 93: + case 96: { alt23=2; } break; - case 94: + case 97: { alt23=3; } break; - case 95: + case 98: { alt23=4; } break; - case 48: + case 50: { alt23=5; } break; - case 49: + case 51: { alt23=6; } break; - case 50: + case 52: { alt23=7; } break; - case 51: + case 53: { alt23=8; } @@ -3532,73 +3605,73 @@ public final AssemblerParser.store_return store() throws RecognitionException { switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:11: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: a= 'istore_0' { - a=(Token)match(input,92,FOLLOW_92_in_store1928); - stream_92.add(a); + a=(Token)match(input,95,FOLLOW_95_in_store2014); + stream_95.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:13: a= 'istore_1' { - a=(Token)match(input,93,FOLLOW_93_in_store1946); - stream_93.add(a); + a=(Token)match(input,96,FOLLOW_96_in_store2032); + stream_96.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:13: a= 'istore_2' { - a=(Token)match(input,94,FOLLOW_94_in_store1964); - stream_94.add(a); + a=(Token)match(input,97,FOLLOW_97_in_store2050); + stream_97.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:13: a= 'istore_3' { - a=(Token)match(input,95,FOLLOW_95_in_store1982); - stream_95.add(a); + a=(Token)match(input,98,FOLLOW_98_in_store2068); + stream_98.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:13: a= 'astore_0' { - a=(Token)match(input,48,FOLLOW_48_in_store2000); - stream_48.add(a); + a=(Token)match(input,50,FOLLOW_50_in_store2086); + stream_50.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:13: a= 'astore_1' { - a=(Token)match(input,49,FOLLOW_49_in_store2018); - stream_49.add(a); + a=(Token)match(input,51,FOLLOW_51_in_store2104); + stream_51.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:13: a= 'astore_2' { - a=(Token)match(input,50,FOLLOW_50_in_store2036); - stream_50.add(a); + a=(Token)match(input,52,FOLLOW_52_in_store2122); + stream_52.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:13: a= 'astore_3' { - a=(Token)match(input,51,FOLLOW_51_in_store2054); - stream_51.add(a); + a=(Token)match(input,53,FOLLOW_53_in_store2140); + stream_53.add(a); } @@ -3619,9 +3692,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 161:9: -> ^( STORE $a) + // 165:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3669,7 +3742,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3682,22 +3755,22 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); - RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); + RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); + RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) int alt24=2; int LA24_0 = input.LA(1); - if ( (LA24_0==91) ) { + if ( (LA24_0==94) ) { alt24=1; } - else if ( (LA24_0==47) ) { + else if ( (LA24_0==49) ) { alt24=2; } else { @@ -3709,26 +3782,26 @@ else if ( (LA24_0==47) ) { } switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:14: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,91,FOLLOW_91_in_storeint2108); - stream_91.add(a); + a=(Token)match(input,94,FOLLOW_94_in_storeint2194); + stream_94.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2114); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2200); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,47,FOLLOW_47_in_storeint2135); - stream_47.add(a); + a=(Token)match(input,49,FOLLOW_49_in_storeint2221); + stream_49.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2141); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2227); stream_INTEIRO.add(b); @@ -3739,7 +3812,7 @@ else if ( (LA24_0==47) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3751,9 +3824,9 @@ else if ( (LA24_0==47) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 167:12: -> ^( STORE $a $b) + // 171:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3803,7 +3876,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -3814,28 +3887,28 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); - RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); - RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); + RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); + RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); + RewriteRuleTokenStream stream_100=new RewriteRuleTokenStream(adaptor,"token 100"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt25=3; switch ( input.LA(1) ) { - case 57: + case 59: { alt25=1; } break; - case 88: + case 91: { alt25=2; } break; - case 97: + case 100: { alt25=3; } @@ -3850,28 +3923,28 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt25) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:12: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:12: a= 'iand' { - a=(Token)match(input,57,FOLLOW_57_in_logica2201); - stream_57.add(a); + a=(Token)match(input,59,FOLLOW_59_in_logica2287); + stream_59.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'ior' { - a=(Token)match(input,88,FOLLOW_88_in_logica2220); - stream_88.add(a); + a=(Token)match(input,91,FOLLOW_91_in_logica2306); + stream_91.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'ixor' { - a=(Token)match(input,97,FOLLOW_97_in_logica2239); - stream_97.add(a); + a=(Token)match(input,100,FOLLOW_100_in_logica2325); + stream_100.add(a); } @@ -3892,9 +3965,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 174:10: -> ^( LOGICA $a) + // 178:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3942,7 +4015,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -3955,12 +4028,12 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); - RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); + RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); + RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); - RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); - RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); + RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); + RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); @@ -3971,73 +4044,73 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt26=13; switch ( input.LA(1) ) { - case 72: + case 74: { alt26=1; } break; - case 77: + case 79: { alt26=2; } break; - case 76: + case 78: { alt26=3; } break; - case 73: + case 75: { alt26=4; } break; - case 74: + case 76: { alt26=5; } break; - case 75: + case 77: { alt26=6; } break; - case 66: + case 68: { alt26=7; } break; - case 71: + case 73: { alt26=8; } break; - case 70: + case 72: { alt26=9; } break; - case 67: + case 69: { alt26=10; } break; - case 68: + case 70: { alt26=11; } break; - case 69: + case 71: { alt26=12; } break; - case 55: + case 57: { alt26=13; } @@ -4052,169 +4125,169 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException switch (alt26) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:12: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:12: a= 'ifeq' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2290); - stream_72.add(a); + a=(Token)match(input,74,FOLLOW_74_in_desvio2376); + stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2296); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2382); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ifne' b= ID { - a=(Token)match(input,77,FOLLOW_77_in_desvio2315); - stream_77.add(a); + a=(Token)match(input,79,FOLLOW_79_in_desvio2401); + stream_79.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2321); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2407); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'iflt' b= ID { - a=(Token)match(input,76,FOLLOW_76_in_desvio2340); - stream_76.add(a); + a=(Token)match(input,78,FOLLOW_78_in_desvio2426); + stream_78.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2346); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2432); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:14: a= 'ifge' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2365); - stream_73.add(a); + a=(Token)match(input,75,FOLLOW_75_in_desvio2451); + stream_75.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2371); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2457); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:14: a= 'ifgt' b= ID { - a=(Token)match(input,74,FOLLOW_74_in_desvio2390); - stream_74.add(a); + a=(Token)match(input,76,FOLLOW_76_in_desvio2476); + stream_76.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2396); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2482); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:14: a= 'ifle' b= ID { - a=(Token)match(input,75,FOLLOW_75_in_desvio2415); - stream_75.add(a); + a=(Token)match(input,77,FOLLOW_77_in_desvio2501); + stream_77.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2421); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2507); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,66,FOLLOW_66_in_desvio2440); - stream_66.add(a); + a=(Token)match(input,68,FOLLOW_68_in_desvio2526); + stream_68.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2446); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2532); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2465); - stream_71.add(a); + a=(Token)match(input,73,FOLLOW_73_in_desvio2551); + stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2471); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2557); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2490); - stream_70.add(a); + a=(Token)match(input,72,FOLLOW_72_in_desvio2576); + stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2496); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2582); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,67,FOLLOW_67_in_desvio2515); - stream_67.add(a); + a=(Token)match(input,69,FOLLOW_69_in_desvio2601); + stream_69.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2521); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2607); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2540); - stream_68.add(a); + a=(Token)match(input,70,FOLLOW_70_in_desvio2626); + stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2546); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2632); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'if_icmple' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2565); - stream_69.add(a); + a=(Token)match(input,71,FOLLOW_71_in_desvio2651); + stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2571); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2657); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'goto' b= ID { - a=(Token)match(input,55,FOLLOW_55_in_desvio2590); - stream_55.add(a); + a=(Token)match(input,57,FOLLOW_57_in_desvio2676); + stream_57.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2596); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2682); stream_ID.add(b); @@ -4225,7 +4298,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -4237,9 +4310,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 191:10: -> ^( DESVIO $a $b) + // 195:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4289,7 +4362,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -4300,28 +4373,28 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); - RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102"); - RewriteRuleTokenStream stream_101=new RewriteRuleTokenStream(adaptor,"token 101"); + RewriteRuleTokenStream stream_105=new RewriteRuleTokenStream(adaptor,"token 105"); + RewriteRuleTokenStream stream_104=new RewriteRuleTokenStream(adaptor,"token 104"); + RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) int alt27=3; switch ( input.LA(1) ) { - case 101: + case 104: { alt27=1; } break; - case 102: + case 105: { alt27=2; } break; - case 52: + case 54: { alt27=3; } @@ -4336,28 +4409,28 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { switch (alt27) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:11: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: a= 'pop' { - a=(Token)match(input,101,FOLLOW_101_in_pilha2657); - stream_101.add(a); + a=(Token)match(input,104,FOLLOW_104_in_pilha2743); + stream_104.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:13: a= 'pop2' { - a=(Token)match(input,102,FOLLOW_102_in_pilha2675); - stream_102.add(a); + a=(Token)match(input,105,FOLLOW_105_in_pilha2761); + stream_105.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:13: a= 'dup' { - a=(Token)match(input,52,FOLLOW_52_in_pilha2693); - stream_52.add(a); + a=(Token)match(input,54,FOLLOW_54_in_pilha2779); + stream_54.add(a); } @@ -4378,9 +4451,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 198:9: -> ^( PILHA $a) + // 202:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4429,7 +4502,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -4437,24 +4510,24 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal69=null; + Token char_literal70=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal69_tree=null; + BytecodesAST char_literal70_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:8: (cls+= ID '/' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:8: (cls+= ID '/' )* loop28: do { int alt28=2; @@ -4463,11 +4536,17 @@ public final AssemblerParser.classe_return classe() throws RecognitionException if ( (LA28_0==ID) ) { int LA28_1 = input.LA(2); - if ( (LA28_1==38) ) { + if ( (LA28_1==40) ) { int LA28_2 = input.LA(3); if ( (LA28_2==ID) ) { - alt28=1; + int LA28_4 = input.LA(4); + + if ( (LA28_4==NEWLINE||LA28_4==40) ) { + alt28=1; + } + + } @@ -4479,9 +4558,9 @@ public final AssemblerParser.classe_return classe() throws RecognitionException switch (alt28) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2759); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2845); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4491,11 +4570,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal69=(Token)match(input,38,FOLLOW_38_in_classe2761); - char_literal69_tree = - (BytecodesAST)adaptor.create(char_literal69) + char_literal70=(Token)match(input,40,FOLLOW_40_in_classe2847); + char_literal70_tree = + (BytecodesAST)adaptor.create(char_literal70) ; - adaptor.addChild(root_0, char_literal69_tree); + adaptor.addChild(root_0, char_literal70_tree); } @@ -4507,10 +4586,10 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:25: (cls+= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:26: cls+= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:25: (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2770); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2856); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4550,16 +4629,13 @@ public final AssemblerParser.classe_return classe() throws RecognitionException public static class chamadaMetodo_return extends ParserRuleReturnScope { - public String nome; - public String params; - public String tipoRetorno; BytecodesAST tree; public Object getTree() { return tree; } }; // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:1: chamadaMetodo returns [String nome, String params, String tipoRetorno] : n= INIT par= '()' tip= VOID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:1: chamadaMetodo : (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo -> ^( METHOD_CALL $n argumentos $tip) ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -4568,78 +4644,540 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni BytecodesAST root_0 = null; Token n=null; - Token par=null; - Token tip=null; + Token char_literal72=null; + Token char_literal74=null; + AssemblerParser.tipo_return tip =null; - BytecodesAST n_tree=null; - BytecodesAST par_tree=null; - BytecodesAST tip_tree=null; + AssemblerParser.argumentos_return argumentos71 =null; + AssemblerParser.argumentos_return argumentos73 =null; - retval.nome = ""; - retval.params = ""; - retval.tipoRetorno = ""; - + + BytecodesAST n_tree=null; + BytecodesAST char_literal72_tree=null; + BytecodesAST char_literal74_tree=null; + RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); + RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); + RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); + RewriteRuleSubtreeStream stream_argumentos=new RewriteRuleSubtreeStream(adaptor,"rule argumentos"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:6: (n= INIT par= '()' tip= VOID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: n= INIT par= '()' tip= VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo -> ^( METHOD_CALL $n argumentos $tip) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:10: (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo { - root_0 = (BytecodesAST)adaptor.nil(); - - - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2810); - n_tree = - (BytecodesAST)adaptor.create(n) - ; - adaptor.addChild(root_0, n_tree); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:10: (n= INIT |n= ID ) + int alt29=2; + int LA29_0 = input.LA(1); + if ( (LA29_0==INIT) ) { + alt29=1; + } + else if ( (LA29_0==ID) ) { + alt29=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 29, 0, input); - par=(Token)match(input,29,FOLLOW_29_in_chamadaMetodo2816); - par_tree = - (BytecodesAST)adaptor.create(par) - ; - adaptor.addChild(root_0, par_tree); + throw nvae; + } + switch (alt29) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: n= INIT + { + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2893); + stream_INIT.add(n); - tip=(Token)match(input,VOID,FOLLOW_VOID_in_chamadaMetodo2822); - tip_tree = - (BytecodesAST)adaptor.create(tip) - ; - adaptor.addChild(root_0, tip_tree); + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:22: n= ID + { + n=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo2901); + stream_ID.add(n); - retval.nome = (n!=null?n.getText():null); - retval.params = (par!=null?par.getText():null); - retval.tipoRetorno = (tip!=null?tip.getText():null); - + } + break; } - retval.stop = input.LT(-1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:30: ( argumentos | '(' argumentos ')' ) + int alt30=2; + int LA30_0 = input.LA(1); - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + if ( (LA30_0==ID||LA30_0==TIPO_REF||LA30_0==31) ) { + alt30=1; + } + else if ( (LA30_0==30) ) { + alt30=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 30, 0, input); - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + throw nvae; - } + } + switch (alt30) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:31: argumentos + { + pushFollow(FOLLOW_argumentos_in_chamadaMetodo2905); + argumentos71=argumentos(); - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "chamadaMetodo" + state._fsp--; + stream_argumentos.add(argumentos71.getTree()); - public static class campo_return extends ParserRuleReturnScope { - public List classe; + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:44: '(' argumentos ')' + { + char_literal72=(Token)match(input,30,FOLLOW_30_in_chamadaMetodo2909); + stream_30.add(char_literal72); + + + pushFollow(FOLLOW_argumentos_in_chamadaMetodo2911); + argumentos73=argumentos(); + + state._fsp--; + + stream_argumentos.add(argumentos73.getTree()); + + char_literal74=(Token)match(input,32,FOLLOW_32_in_chamadaMetodo2913); + stream_32.add(char_literal74); + + + } + break; + + } + + + pushFollow(FOLLOW_tipo_in_chamadaMetodo2921); + tip=tipo(); + + state._fsp--; + + stream_tipo.add(tip.getTree()); + + // AST REWRITE + // elements: n, tip, argumentos + // token labels: n + // rule labels: retval, tip + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_n=new RewriteRuleTokenStream(adaptor,"token n",n); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + RewriteRuleSubtreeStream stream_tip=new RewriteRuleSubtreeStream(adaptor,"rule tip",tip!=null?tip.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 227:12: -> ^( METHOD_CALL $n argumentos $tip) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:15: ^( METHOD_CALL $n argumentos $tip) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(METHOD_CALL, "METHOD_CALL") + , root_1); + + adaptor.addChild(root_1, stream_n.nextNode()); + + adaptor.addChild(root_1, stream_argumentos.nextTree()); + + adaptor.addChild(root_1, stream_tip.nextTree()); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "chamadaMetodo" + + + public static class argumentos_return extends ParserRuleReturnScope { + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "argumentos" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:1: argumentos : ( '()' -> ^( ARGS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( ARGS $a) )+ ); + public final AssemblerParser.argumentos_return argumentos() throws RecognitionException { + AssemblerParser.argumentos_return retval = new AssemblerParser.argumentos_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token a=null; + Token string_literal75=null; + + BytecodesAST a_tree=null; + BytecodesAST string_literal75_tree=null; + RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); + RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:2: ( '()' -> ^( ARGS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( ARGS $a) )+ ) + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==31) ) { + alt32=1; + } + else if ( (LA32_0==ID||LA32_0==TIPO_REF) ) { + alt32=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 32, 0, input); + + throw nvae; + + } + switch (alt32) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:4: '()' + { + string_literal75=(Token)match(input,31,FOLLOW_31_in_argumentos2966); + stream_31.add(string_literal75); + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 231:9: -> ^( ARGS VOID ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:12: ^( ARGS VOID ) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(ARGS, "ARGS") + , root_1); + + adaptor.addChild(root_1, + (BytecodesAST)adaptor.create(VOID, "VOID") + ); + + adaptor.addChild(root_0, root_1); + } + + } + + + retval.tree = root_0; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:4: (a= ID |a= TIPO_REF )+ + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:4: (a= ID |a= TIPO_REF )+ + int cnt31=0; + loop31: + do { + int alt31=3; + int LA31_0 = input.LA(1); + + if ( (LA31_0==TIPO_REF) ) { + int LA31_1 = input.LA(2); + + if ( (LA31_1==ID||LA31_1==INT||(LA31_1 >= TIPO_REF && LA31_1 <= VOID)||LA31_1==32) ) { + alt31=2; + } + + + } + else if ( (LA31_0==ID) ) { + alt31=1; + } + + + switch (alt31) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:9: a= ID + { + a=(Token)match(input,ID,FOLLOW_ID_in_argumentos2993); + stream_ID.add(a); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:9: a= TIPO_REF + { + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_argumentos3008); + stream_TIPO_REF.add(a); + + + } + break; + + default : + if ( cnt31 >= 1 ) break loop31; + EarlyExitException eee = + new EarlyExitException(31, input); + throw eee; + } + cnt31++; + } while (true); + + + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 236:4: -> ( ^( ARGS $a) )+ + { + if ( !(stream_a.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_a.hasNext() ) { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:7: ^( ARGS $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(ARGS, "ARGS") + , root_1); + + adaptor.addChild(root_1, stream_a.nextNode()); + + adaptor.addChild(root_0, root_1); + } + + } + stream_a.reset(); + + } + + + retval.tree = root_0; + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "argumentos" + + + public static class contagemParametros_return extends ParserRuleReturnScope { + public int qtdParams; + BytecodesAST tree; + public Object getTree() { return tree; } + }; + + + // $ANTLR start "contagemParametros" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:1: contagemParametros returns [int qtdParams] : ( '()' | ( ID | TIPO_REF )+ ); + public final AssemblerParser.contagemParametros_return contagemParametros() throws RecognitionException { + AssemblerParser.contagemParametros_return retval = new AssemblerParser.contagemParametros_return(); + retval.start = input.LT(1); + + + BytecodesAST root_0 = null; + + Token string_literal76=null; + Token ID77=null; + Token TIPO_REF78=null; + + BytecodesAST string_literal76_tree=null; + BytecodesAST ID77_tree=null; + BytecodesAST TIPO_REF78_tree=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:240:2: ( '()' | ( ID | TIPO_REF )+ ) + int alt34=2; + int LA34_0 = input.LA(1); + + if ( (LA34_0==31) ) { + alt34=1; + } + else if ( (LA34_0==ID||LA34_0==TIPO_REF) ) { + alt34=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 34, 0, input); + + throw nvae; + + } + switch (alt34) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:240:4: '()' + { + root_0 = (BytecodesAST)adaptor.nil(); + + + string_literal76=(Token)match(input,31,FOLLOW_31_in_contagemParametros3047); + string_literal76_tree = + (BytecodesAST)adaptor.create(string_literal76) + ; + adaptor.addChild(root_0, string_literal76_tree); + + + retval.qtdParams = 0; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:4: ( ID | TIPO_REF )+ + { + root_0 = (BytecodesAST)adaptor.nil(); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:4: ( ID | TIPO_REF )+ + int cnt33=0; + loop33: + do { + int alt33=3; + int LA33_0 = input.LA(1); + + if ( (LA33_0==ID) ) { + alt33=1; + } + else if ( (LA33_0==TIPO_REF) ) { + alt33=2; + } + + + switch (alt33) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:242:9: ID + { + ID77=(Token)match(input,ID,FOLLOW_ID_in_contagemParametros3064); + ID77_tree = + (BytecodesAST)adaptor.create(ID77) + ; + adaptor.addChild(root_0, ID77_tree); + + + retval.qtdParams++; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:9: TIPO_REF + { + TIPO_REF78=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_contagemParametros3076); + TIPO_REF78_tree = + (BytecodesAST)adaptor.create(TIPO_REF78) + ; + adaptor.addChild(root_0, TIPO_REF78_tree); + + + retval.qtdParams++; + + } + break; + + default : + if ( cnt33 >= 1 ) break loop33; + EarlyExitException eee = + new EarlyExitException(33, input); + throw eee; + } + cnt33++; + } while (true); + + + } + break; + + } + retval.stop = input.LT(-1); + + + retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + + finally { + // do for sure before leaving + } + return retval; + } + // $ANTLR end "contagemParametros" + + + public static class campo_return extends ParserRuleReturnScope { + public List classe; public String campo; BytecodesAST tree; public Object getTree() { return tree; } @@ -4647,7 +5185,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -4656,12 +5194,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal70=null; + Token char_literal79=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal70_tree=null; + BytecodesAST char_literal79_tree=null; BytecodesAST cls_tree=null; @@ -4669,35 +5207,35 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:252:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:252:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:8: (cls+= ID '/' )+ - int cnt29=0; - loop29: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:252:8: (cls+= ID '/' )+ + int cnt35=0; + loop35: do { - int alt29=2; - int LA29_0 = input.LA(1); + int alt35=2; + int LA35_0 = input.LA(1); - if ( (LA29_0==ID) ) { - int LA29_1 = input.LA(2); + if ( (LA35_0==ID) ) { + int LA35_1 = input.LA(2); - if ( (LA29_1==38) ) { - alt29=1; + if ( (LA35_1==40) ) { + alt35=1; } } - switch (alt29) { + switch (alt35) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:252:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo2862); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo3118); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4707,27 +5245,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal70=(Token)match(input,38,FOLLOW_38_in_campo2864); - char_literal70_tree = - (BytecodesAST)adaptor.create(char_literal70) + char_literal79=(Token)match(input,40,FOLLOW_40_in_campo3120); + char_literal79_tree = + (BytecodesAST)adaptor.create(char_literal79) ; - adaptor.addChild(root_0, char_literal70_tree); + adaptor.addChild(root_0, char_literal79_tree); } break; default : - if ( cnt29 >= 1 ) break loop29; + if ( cnt35 >= 1 ) break loop35; EarlyExitException eee = - new EarlyExitException(29, input); + new EarlyExitException(35, input); throw eee; } - cnt29++; + cnt35++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo2872); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo3128); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -4764,173 +5302,187 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { - public static final BitSet FOLLOW_instrucao_in_programa132 = new BitSet(new long[]{0xFFFFFF0080100402L,0x000003FFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_instrucao160 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao174 = new BitSet(new long[]{0x0000000100000002L}); - public static final BitSet FOLLOW_32_in_instrucao177 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_operacao199 = new BitSet(new long[]{0xFFFFFF0000100000L,0x000003FFFFFFFFFFL}); - public static final BitSet FOLLOW_comando_in_operacao201 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_comando_in_operacao205 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label227 = new BitSet(new long[]{0x0000008000000000L}); - public static final BitSet FOLLOW_39_in_label229 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_comando247 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_aritmetica_in_comando265 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_load_in_comando283 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_loadint_in_comando301 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_store_in_comando319 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_storeint_in_comando337 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_desvio_in_comando355 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_logica_in_comando373 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_pilha_in_comando391 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_retorno_in_comando409 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_100_in_comando427 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_NEWLINE_in_comando443 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_definicaoClasse469 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse471 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse473 = new BitSet(new long[]{0x0000003400000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse476 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse478 = new BitSet(new long[]{0x0000001400000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse483 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse485 = new BitSet(new long[]{0x0000001400000002L}); - public static final BitSet FOLLOW_37_in_superClasse546 = new BitSet(new long[]{0x0000000002000000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse548 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_membroClasse569 = new BitSet(new long[]{0x0000000000000400L,0x0000040000000000L}); - public static final BitSet FOLLOW_106_in_membroClasse571 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_membroClasse574 = new BitSet(new long[]{0x0000000006001000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse576 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_membroClasse594 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_INIT_in_membroClasse596 = new BitSet(new long[]{0x0000000032000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse599 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_28_in_membroClasse603 = new BitSet(new long[]{0x0000000022000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse605 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_30_in_membroClasse607 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse610 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse612 = new BitSet(new long[]{0xFFFFFF0A00100400L,0x000003FFFFFFFFFFL}); - public static final BitSet FOLLOW_limite_in_membroClasse615 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse617 = new BitSet(new long[]{0xFFFFFF0200100400L,0x000003FFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse621 = new BitSet(new long[]{0xFFFFFF0200100400L,0x000003FFFFFFFFFFL}); - public static final BitSet FOLLOW_33_in_membroClasse624 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_membroClasse653 = new BitSet(new long[]{0x0000000000000400L,0x0000040000000000L}); - public static final BitSet FOLLOW_106_in_membroClasse655 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_membroClasse658 = new BitSet(new long[]{0x0000000032000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse661 = new BitSet(new long[]{0x0000000006001000L}); - public static final BitSet FOLLOW_28_in_membroClasse665 = new BitSet(new long[]{0x0000000022000400L}); - public static final BitSet FOLLOW_parametros_in_membroClasse667 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_30_in_membroClasse669 = new BitSet(new long[]{0x0000000006001000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse676 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse678 = new BitSet(new long[]{0xFFFFFF0A00100400L,0x000003FFFFFFFFFFL}); - public static final BitSet FOLLOW_limite_in_membroClasse681 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse683 = new BitSet(new long[]{0xFFFFFF0200100400L,0x000003FFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse687 = new BitSet(new long[]{0xFFFFFF0200100400L,0x000003FFFFFFFFFFL}); - public static final BitSet FOLLOW_33_in_membroClasse690 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_limite739 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_limite741 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_29_in_parametros763 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_parametros790 = new BitSet(new long[]{0x0000000002000402L}); - public static final BitSet FOLLOW_TIPO_REF_in_parametros805 = new BitSet(new long[]{0x0000000002000402L}); - public static final BitSet FOLLOW_53_in_manipulacaoObjetos867 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos873 = new BitSet(new long[]{0x0000000006001000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos875 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_manipulacaoObjetos899 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos905 = new BitSet(new long[]{0x0000000006001000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos907 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_103_in_manipulacaoObjetos945 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos951 = new BitSet(new long[]{0x0000000006001000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos953 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_104_in_manipulacaoObjetos991 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos997 = new BitSet(new long[]{0x0000000006001000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos999 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_manipulacaoObjetos1037 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1043 = new BitSet(new long[]{0x0000004000000000L}); - public static final BitSet FOLLOW_38_in_manipulacaoObjetos1045 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1051 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_manipulacaoObjetos1112 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1118 = new BitSet(new long[]{0x0000004000000000L}); - public static final BitSet FOLLOW_38_in_manipulacaoObjetos1120 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1126 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_99_in_manipulacaoObjetos1187 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1192 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_aritmetica1270 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_aritmetica1294 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_aritmetica1318 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_aritmetica1342 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_aritmetica1366 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_aritmetica1390 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_aritmetica1414 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_load1488 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_load1506 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_load1524 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load1542 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load1560 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load1578 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load1596 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_load1614 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_load1632 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_load1650 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_load1668 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_load1686 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load1704 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_load1722 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load1740 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_load1758 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_loadint1808 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1814 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_loadint1834 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1840 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_loadint1860 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1866 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_store1928 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_store1946 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_store1964 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_store1982 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_store2000 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_store2018 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_store2036 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_store2054 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_storeint2108 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2114 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_storeint2135 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2141 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_logica2201 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_logica2220 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_logica2239 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2290 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2296 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_desvio2315 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2321 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_desvio2340 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2346 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2365 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2371 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_desvio2390 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2396 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_desvio2415 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2421 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_desvio2440 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2446 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2465 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2471 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2490 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2496 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_desvio2515 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2521 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2540 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2546 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2565 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2571 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_desvio2590 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_desvio2596 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_101_in_pilha2657 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_102_in_pilha2675 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_pilha2693 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2759 = new BitSet(new long[]{0x0000004000000000L}); - public static final BitSet FOLLOW_38_in_classe2761 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_classe2770 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2810 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_29_in_chamadaMetodo2816 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_VOID_in_chamadaMetodo2822 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_campo2862 = new BitSet(new long[]{0x0000004000000000L}); - public static final BitSet FOLLOW_38_in_campo2864 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_ID_in_campo2872 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_programa142 = new BitSet(new long[]{0xFFFFFC0200400802L,0x00001FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_instrucao170 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao184 = new BitSet(new long[]{0x0000000400000002L}); + public static final BitSet FOLLOW_34_in_instrucao187 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_operacao209 = new BitSet(new long[]{0xFFFFFC0000400000L,0x00001FFFFFFFFFFFL}); + public static final BitSet FOLLOW_comando_in_operacao211 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_operacao215 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label237 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_41_in_label239 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_comando257 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_aritmetica_in_comando275 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_load_in_comando293 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_loadint_in_comando311 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_store_in_comando329 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_storeint_in_comando347 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_desvio_in_comando365 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_logica_in_comando383 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_pilha_in_comando401 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_retorno_in_comando419 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_103_in_comando437 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando453 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_definicaoClasse479 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse481 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse483 = new BitSet(new long[]{0x000000D000000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse486 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse488 = new BitSet(new long[]{0x0000005000000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse493 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse495 = new BitSet(new long[]{0x0000005000000002L}); + public static final BitSet FOLLOW_39_in_superClasse556 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse558 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_membroClasse579 = new BitSet(new long[]{0x0000000000000800L,0x0000200000000000L}); + public static final BitSet FOLLOW_109_in_membroClasse581 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse584 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse586 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_membroClasse604 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INIT_in_membroClasse606 = new BitSet(new long[]{0x00000000C8000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse609 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_30_in_membroClasse613 = new BitSet(new long[]{0x0000000088000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse615 = new BitSet(new long[]{0x0000000100000000L}); + public static final BitSet FOLLOW_32_in_membroClasse617 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse620 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse622 = new BitSet(new long[]{0xFFFFFC2800400800L,0x00001FFFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse625 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse627 = new BitSet(new long[]{0xFFFFFC0800400800L,0x00001FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse631 = new BitSet(new long[]{0xFFFFFC0800400800L,0x00001FFFFFFFFFFFL}); + public static final BitSet FOLLOW_35_in_membroClasse634 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_membroClasse663 = new BitSet(new long[]{0x0000000000000800L,0x0000200000000000L}); + public static final BitSet FOLLOW_109_in_membroClasse665 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse668 = new BitSet(new long[]{0x00000000C8000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse671 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_30_in_membroClasse675 = new BitSet(new long[]{0x0000000088000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse677 = new BitSet(new long[]{0x0000000100000000L}); + public static final BitSet FOLLOW_32_in_membroClasse679 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse686 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse688 = new BitSet(new long[]{0xFFFFFC2800400800L,0x00001FFFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse691 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse693 = new BitSet(new long[]{0xFFFFFC0800400800L,0x00001FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse697 = new BitSet(new long[]{0xFFFFFC0800400800L,0x00001FFFFFFFFFFFL}); + public static final BitSet FOLLOW_35_in_membroClasse700 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_37_in_limite749 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_limite751 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_parametros773 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_parametros800 = new BitSet(new long[]{0x0000000008000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros815 = new BitSet(new long[]{0x0000000008000802L}); + public static final BitSet FOLLOW_55_in_manipulacaoObjetos877 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos883 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos885 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_manipulacaoObjetos909 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos915 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos917 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_106_in_manipulacaoObjetos955 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos961 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos963 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_107_in_manipulacaoObjetos1001 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos1007 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1009 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_manipulacaoObjetos1047 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1053 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_40_in_manipulacaoObjetos1055 = new BitSet(new long[]{0x0000000000001800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1061 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_manipulacaoObjetos1122 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1128 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_40_in_manipulacaoObjetos1130 = new BitSet(new long[]{0x0000000000001800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1136 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_manipulacaoObjetos1198 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1204 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_40_in_manipulacaoObjetos1206 = new BitSet(new long[]{0x0000000000001800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1212 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_102_in_manipulacaoObjetos1273 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1278 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_aritmetica1356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_aritmetica1380 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_aritmetica1404 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_aritmetica1428 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_aritmetica1452 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_aritmetica1476 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_aritmetica1500 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_load1574 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_load1592 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_load1610 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load1628 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load1646 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_load1664 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_load1682 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_load1700 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_load1718 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_load1736 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_load1754 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_load1772 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load1790 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_load1808 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load1826 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1844 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_loadint1894 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1900 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_101_in_loadint1920 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1926 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_loadint1946 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1952 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_store2014 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_store2032 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_store2050 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_store2068 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_store2086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_store2104 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_store2122 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_store2140 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_storeint2194 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2200 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_storeint2221 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2227 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_logica2287 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_logica2306 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_100_in_logica2325 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2376 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2382 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_desvio2401 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2407 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_desvio2426 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2432 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_desvio2451 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2457 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_desvio2476 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2482 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_desvio2501 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2507 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_desvio2526 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2532 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2551 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2557 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2576 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2582 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_desvio2601 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2607 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2626 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2632 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2651 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2657 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_desvio2676 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2682 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_104_in_pilha2743 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_105_in_pilha2761 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_pilha2779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2845 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_40_in_classe2847 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_classe2856 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2893 = new BitSet(new long[]{0x00000000C8000800L}); + public static final BitSet FOLLOW_ID_in_chamadaMetodo2901 = new BitSet(new long[]{0x00000000C8000800L}); + public static final BitSet FOLLOW_argumentos_in_chamadaMetodo2905 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_30_in_chamadaMetodo2909 = new BitSet(new long[]{0x0000000088000800L}); + public static final BitSet FOLLOW_argumentos_in_chamadaMetodo2911 = new BitSet(new long[]{0x0000000100000000L}); + public static final BitSet FOLLOW_32_in_chamadaMetodo2913 = new BitSet(new long[]{0x0000000018002000L}); + public static final BitSet FOLLOW_tipo_in_chamadaMetodo2921 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_argumentos2966 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_argumentos2993 = new BitSet(new long[]{0x0000000008000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_argumentos3008 = new BitSet(new long[]{0x0000000008000802L}); + public static final BitSet FOLLOW_31_in_contagemParametros3047 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_contagemParametros3064 = new BitSet(new long[]{0x0000000008000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_contagemParametros3076 = new BitSet(new long[]{0x0000000008000802L}); + public static final BitSet FOLLOW_ID_in_campo3118 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_40_in_campo3120 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_campo3128 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index f5fbb63..efbe003 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-08 17:02:15 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-08 21:27:27 package br.ufpb.iged.interpretador.parser; @@ -22,12 +22,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__28=28; - public static final int T__29=29; public static final int T__30=30; public static final int T__31=31; public static final int T__32=32; @@ -105,30 +103,35 @@ public class Def extends TreeFilter { public static final int T__104=104; public static final int T__105=105; public static final int T__106=106; - public static final int ARITMETICA=4; - public static final int BODY=5; - public static final int CONSTR_DECL=6; - public static final int DESVIO=7; - public static final int EXTENDS=8; - public static final int FIELD_DECL=9; - public static final int ID=10; - public static final int INIT=11; - public static final int INT=12; - public static final int INTEIRO=13; - public static final int LABEL=14; - public static final int LIMIT=15; - public static final int LOAD=16; - public static final int LOGICA=17; - public static final int MEMBRO_CLASSE=18; - public static final int METHOD_DECL=19; - public static final int NEWLINE=20; - public static final int NULL=21; - public static final int PARAMS=22; - public static final int PILHA=23; - public static final int STORE=24; - public static final int TIPO_REF=25; - public static final int VOID=26; - public static final int WS=27; + public static final int T__107=107; + public static final int T__108=108; + public static final int T__109=109; + public static final int ARGS=4; + public static final int ARITMETICA=5; + public static final int BODY=6; + public static final int CONSTR_DECL=7; + public static final int DESVIO=8; + public static final int EXTENDS=9; + public static final int FIELD_DECL=10; + public static final int ID=11; + public static final int INIT=12; + public static final int INT=13; + public static final int INTEIRO=14; + public static final int LABEL=15; + public static final int LIMIT=16; + public static final int LOAD=17; + public static final int LOGICA=18; + public static final int MEMBRO_CLASSE=19; + public static final int METHOD_CALL=20; + public static final int METHOD_DECL=21; + public static final int NEWLINE=22; + public static final int NULL=23; + public static final int PARAMS=24; + public static final int PILHA=25; + public static final int STORE=26; + public static final int TIPO_REF=27; + public static final int VOID=28; + public static final int WS=29; // delegates public TreeFilter[] getDelegates() { @@ -181,7 +184,7 @@ public final void topdown() throws RecognitionException { alt1=3; } break; - case 31: + case 33: { alt1=4; } @@ -311,7 +314,7 @@ public final void bottomup() throws RecognitionException { alt2=3; } break; - case 31: + case 33: { alt2=4; } @@ -397,7 +400,7 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,31,FOLLOW_31_in_entraNaClasse197); if (state.failed) return ; + match(input,33,FOLLOW_33_in_entraNaClasse197); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse201); if (state.failed) return ; @@ -418,7 +421,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 106)) ) { + if ( ((LA3_5 >= ARGS && LA3_5 <= 109)) ) { alt3=1; } } @@ -561,6 +564,7 @@ else if ( (true) ) { } break; + case ARGS: case ARITMETICA: case BODY: case CONSTR_DECL: @@ -575,6 +579,7 @@ else if ( (true) ) { case LOAD: case LOGICA: case MEMBRO_CLASSE: + case METHOD_CALL: case METHOD_DECL: case NEWLINE: case NULL: @@ -584,8 +589,6 @@ else if ( (true) ) { case TIPO_REF: case VOID: case WS: - case 28: - case 29: case 30: case 31: case 32: @@ -663,6 +666,9 @@ else if ( (true) ) { case 104: case 105: case 106: + case 107: + case 108: + case 109: { alt4=1; } @@ -792,6 +798,7 @@ else if ( (true) ) { } break; + case ARGS: case ARITMETICA: case BODY: case CONSTR_DECL: @@ -806,6 +813,7 @@ else if ( (true) ) { case LOAD: case LOGICA: case MEMBRO_CLASSE: + case METHOD_CALL: case METHOD_DECL: case NEWLINE: case NULL: @@ -815,8 +823,6 @@ else if ( (true) ) { case TIPO_REF: case VOID: case WS: - case 28: - case 29: case 30: case 31: case 32: @@ -894,6 +900,9 @@ else if ( (true) ) { case 104: case 105: case 106: + case 107: + case 108: + case 109: { alt6=1; } @@ -1095,7 +1104,7 @@ public final void saiDaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:13: ( '.class' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:15: '.class' { - match(input,31,FOLLOW_31_in_saiDaClasse432); if (state.failed) return ; + match(input,33,FOLLOW_33_in_saiDaClasse432); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -1195,24 +1204,24 @@ public final void saiDoConstrutor() throws RecognitionException { public static final BitSet FOLLOW_saiDoMetodo_in_bottomup139 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup152 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDaClasse_in_bottomup165 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_entraNaClasse197 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse201 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_33_in_entraNaClasse197 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse201 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse205 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse209 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel243 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel245 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel245 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor280 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor282 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor282 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor289 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor293 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo313 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo315 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo315 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo327 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo331 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_PARAMS_in_parametros351 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo379 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo405 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_saiDaClasse432 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_saiDaClasse432 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo482 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor498 = new BitSet(new long[]{0x0000000000000002L}); diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index 1aaf0ab..e17e231 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,5 +1,3 @@ -T__28=28 -T__29=29 T__30=30 T__31=31 T__32=32 @@ -77,106 +75,112 @@ T__103=103 T__104=104 T__105=105 T__106=106 -ARITMETICA=4 -BODY=5 -CONSTR_DECL=6 -DESVIO=7 -EXTENDS=8 -FIELD_DECL=9 -ID=10 -INIT=11 -INT=12 -INTEIRO=13 -LABEL=14 -LIMIT=15 -LOAD=16 -LOGICA=17 -MEMBRO_CLASSE=18 -METHOD_DECL=19 -NEWLINE=20 -NULL=21 -PARAMS=22 -PILHA=23 -STORE=24 -TIPO_REF=25 -VOID=26 -WS=27 -'('=28 -'()'=29 -')'=30 -'.class'=31 -'.end class'=32 -'.end method'=33 -'.field'=34 -'.limit locals'=35 -'.method'=36 -'.super'=37 -'/'=38 -':'=39 -'aconst_null'=40 -'aload'=41 -'aload_0'=42 -'aload_1'=43 -'aload_2'=44 -'aload_3'=45 -'areturn'=46 -'astore'=47 -'astore_0'=48 -'astore_1'=49 -'astore_2'=50 -'astore_3'=51 -'dup'=52 -'getfield'=53 -'getstatic'=54 -'goto'=55 -'iadd'=56 -'iand'=57 -'iconst_0'=58 -'iconst_1'=59 -'iconst_2'=60 -'iconst_3'=61 -'iconst_4'=62 -'iconst_5'=63 -'iconst_m1'=64 -'idiv'=65 -'if_icmpeq'=66 -'if_icmpge'=67 -'if_icmpgt'=68 -'if_icmple'=69 -'if_icmplt'=70 -'if_icmpne'=71 -'ifeq'=72 -'ifge'=73 -'ifgt'=74 -'ifle'=75 -'iflt'=76 -'ifne'=77 -'iinc'=78 -'iload'=79 -'iload_0'=80 -'iload_1'=81 -'iload_2'=82 -'iload_3'=83 -'imul'=84 -'ineg'=85 -'invokespecial'=86 -'invokestatic'=87 -'ior'=88 -'irem'=89 -'ireturn'=90 -'istore'=91 -'istore_0'=92 -'istore_1'=93 -'istore_2'=94 -'istore_3'=95 -'isub'=96 -'ixor'=97 -'ldc'=98 -'new'=99 -'nop'=100 -'pop'=101 -'pop2'=102 -'putfield'=103 -'putstatic'=104 -'return'=105 -'static'=106 +T__107=107 +T__108=108 +T__109=109 +ARGS=4 +ARITMETICA=5 +BODY=6 +CONSTR_DECL=7 +DESVIO=8 +EXTENDS=9 +FIELD_DECL=10 +ID=11 +INIT=12 +INT=13 +INTEIRO=14 +LABEL=15 +LIMIT=16 +LOAD=17 +LOGICA=18 +MEMBRO_CLASSE=19 +METHOD_CALL=20 +METHOD_DECL=21 +NEWLINE=22 +NULL=23 +PARAMS=24 +PILHA=25 +STORE=26 +TIPO_REF=27 +VOID=28 +WS=29 +'('=30 +'()'=31 +')'=32 +'.class'=33 +'.end class'=34 +'.end method'=35 +'.field'=36 +'.limit locals'=37 +'.method'=38 +'.super'=39 +'/'=40 +':'=41 +'aconst_null'=42 +'aload'=43 +'aload_0'=44 +'aload_1'=45 +'aload_2'=46 +'aload_3'=47 +'areturn'=48 +'astore'=49 +'astore_0'=50 +'astore_1'=51 +'astore_2'=52 +'astore_3'=53 +'dup'=54 +'getfield'=55 +'getstatic'=56 +'goto'=57 +'iadd'=58 +'iand'=59 +'iconst_0'=60 +'iconst_1'=61 +'iconst_2'=62 +'iconst_3'=63 +'iconst_4'=64 +'iconst_5'=65 +'iconst_m1'=66 +'idiv'=67 +'if_icmpeq'=68 +'if_icmpge'=69 +'if_icmpgt'=70 +'if_icmple'=71 +'if_icmplt'=72 +'if_icmpne'=73 +'ifeq'=74 +'ifge'=75 +'ifgt'=76 +'ifle'=77 +'iflt'=78 +'ifne'=79 +'iinc'=80 +'iload'=81 +'iload_0'=82 +'iload_1'=83 +'iload_2'=84 +'iload_3'=85 +'imul'=86 +'ineg'=87 +'invokespecial'=88 +'invokestatic'=89 +'invokevirtual'=90 +'ior'=91 +'irem'=92 +'ireturn'=93 +'istore'=94 +'istore_0'=95 +'istore_1'=96 +'istore_2'=97 +'istore_3'=98 +'isub'=99 +'ixor'=100 +'ldc'=101 +'new'=102 +'nop'=103 +'pop'=104 +'pop2'=105 +'putfield'=106 +'putstatic'=107 +'return'=108 +'static'=109 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 2ec54a6..7bbc642 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-08 17:02:15 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-08 21:27:27 package br.ufpb.iged.interpretador.parser; @@ -24,12 +24,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__28=28; - public static final int T__29=29; public static final int T__30=30; public static final int T__31=31; public static final int T__32=32; @@ -107,30 +105,35 @@ public class Ref extends TreeFilter { public static final int T__104=104; public static final int T__105=105; public static final int T__106=106; - public static final int ARITMETICA=4; - public static final int BODY=5; - public static final int CONSTR_DECL=6; - public static final int DESVIO=7; - public static final int EXTENDS=8; - public static final int FIELD_DECL=9; - public static final int ID=10; - public static final int INIT=11; - public static final int INT=12; - public static final int INTEIRO=13; - public static final int LABEL=14; - public static final int LIMIT=15; - public static final int LOAD=16; - public static final int LOGICA=17; - public static final int MEMBRO_CLASSE=18; - public static final int METHOD_DECL=19; - public static final int NEWLINE=20; - public static final int NULL=21; - public static final int PARAMS=22; - public static final int PILHA=23; - public static final int STORE=24; - public static final int TIPO_REF=25; - public static final int VOID=26; - public static final int WS=27; + public static final int T__107=107; + public static final int T__108=108; + public static final int T__109=109; + public static final int ARGS=4; + public static final int ARITMETICA=5; + public static final int BODY=6; + public static final int CONSTR_DECL=7; + public static final int DESVIO=8; + public static final int EXTENDS=9; + public static final int FIELD_DECL=10; + public static final int ID=11; + public static final int INIT=12; + public static final int INT=13; + public static final int INTEIRO=14; + public static final int LABEL=15; + public static final int LIMIT=16; + public static final int LOAD=17; + public static final int LOGICA=18; + public static final int MEMBRO_CLASSE=19; + public static final int METHOD_CALL=20; + public static final int METHOD_DECL=21; + public static final int NEWLINE=22; + public static final int NULL=23; + public static final int PARAMS=24; + public static final int PILHA=25; + public static final int STORE=26; + public static final int TIPO_REF=27; + public static final int VOID=28; + public static final int WS=29; // delegates public TreeFilter[] getDelegates() { @@ -240,11 +243,11 @@ private void newClass(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) - int alt1=21; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) + int alt1=22; alt1 = dfa1.predict(input); switch (alt1) { case 1 : @@ -358,10 +361,10 @@ public final void topdown() throws RecognitionException { } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:9: novaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:9: invokevirtual { - pushFollow(FOLLOW_novaClasse_in_topdown161); - novaClasse(); + pushFollow(FOLLOW_invokevirtual_in_topdown161); + invokevirtual(); state._fsp--; if (state.failed) return ; @@ -369,10 +372,10 @@ public final void topdown() throws RecognitionException { } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: novaClasse { - pushFollow(FOLLOW_aritmetica_in_topdown171); - aritmetica(); + pushFollow(FOLLOW_novaClasse_in_topdown171); + novaClasse(); state._fsp--; if (state.failed) return ; @@ -380,10 +383,10 @@ public final void topdown() throws RecognitionException { } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: aritmetica { - pushFollow(FOLLOW_load_in_topdown181); - load(); + pushFollow(FOLLOW_aritmetica_in_topdown181); + aritmetica(); state._fsp--; if (state.failed) return ; @@ -391,10 +394,10 @@ public final void topdown() throws RecognitionException { } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: load { - pushFollow(FOLLOW_loadint_in_topdown191); - loadint(); + pushFollow(FOLLOW_load_in_topdown191); + load(); state._fsp--; if (state.failed) return ; @@ -402,10 +405,10 @@ public final void topdown() throws RecognitionException { } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: loadint { - pushFollow(FOLLOW_store_in_topdown201); - store(); + pushFollow(FOLLOW_loadint_in_topdown201); + loadint(); state._fsp--; if (state.failed) return ; @@ -413,10 +416,10 @@ public final void topdown() throws RecognitionException { } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: store { - pushFollow(FOLLOW_storeint_in_topdown211); - storeint(); + pushFollow(FOLLOW_store_in_topdown211); + store(); state._fsp--; if (state.failed) return ; @@ -424,10 +427,10 @@ public final void topdown() throws RecognitionException { } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: storeint { - pushFollow(FOLLOW_desvio_in_topdown221); - desvio(); + pushFollow(FOLLOW_storeint_in_topdown221); + storeint(); state._fsp--; if (state.failed) return ; @@ -435,10 +438,10 @@ public final void topdown() throws RecognitionException { } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: desvio { - pushFollow(FOLLOW_logica_in_topdown231); - logica(); + pushFollow(FOLLOW_desvio_in_topdown231); + desvio(); state._fsp--; if (state.failed) return ; @@ -446,10 +449,10 @@ public final void topdown() throws RecognitionException { } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: logica { - pushFollow(FOLLOW_pilha_in_topdown241); - pilha(); + pushFollow(FOLLOW_logica_in_topdown241); + logica(); state._fsp--; if (state.failed) return ; @@ -457,10 +460,10 @@ public final void topdown() throws RecognitionException { } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: label + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: pilha { - pushFollow(FOLLOW_label_in_topdown251); - label(); + pushFollow(FOLLOW_pilha_in_topdown251); + pilha(); state._fsp--; if (state.failed) return ; @@ -468,9 +471,20 @@ public final void topdown() throws RecognitionException { } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:9: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:9: label + { + pushFollow(FOLLOW_label_in_topdown261); + label(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 22 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:9: retorno { - pushFollow(FOLLOW_retorno_in_topdown261); + pushFollow(FOLLOW_retorno_in_topdown271); retorno(); state._fsp--; @@ -499,10 +513,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:3: ( saiDoMetodo | saiDoConstrutor ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:3: ( saiDoMetodo | saiDoConstrutor ) int alt2=2; int LA2_0 = input.LA(1); @@ -522,9 +536,9 @@ else if ( (LA2_0==CONSTR_DECL) ) { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:7: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:7: saiDoMetodo { - pushFollow(FOLLOW_saiDoMetodo_in_bottomup282); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup292); saiDoMetodo(); state._fsp--; @@ -533,9 +547,9 @@ else if ( (LA2_0==CONSTR_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:7: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:7: saiDoConstrutor { - pushFollow(FOLLOW_saiDoConstrutor_in_bottomup290); + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup300); saiDoConstrutor(); state._fsp--; @@ -561,21 +575,21 @@ else if ( (LA2_0==CONSTR_DECL) ) { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,31,FOLLOW_31_in_entraNaClasse313); if (state.failed) return ; + match(input,33,FOLLOW_33_in_entraNaClasse323); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse317); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse327); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -591,7 +605,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARITMETICA && LA3_5 <= 106)) ) { + if ( ((LA3_5 >= ARGS && LA3_5 <= 109)) ) { alt3=1; } } @@ -600,12 +614,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse321); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse331); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse325); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse335); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -656,19 +670,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:160:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:162:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:162:7: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel363); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel373); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel365); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel375); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -700,21 +714,21 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor400); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor410); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor402); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor412); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:23: ( . )+ int cnt4=0; loop4: do { @@ -734,6 +748,7 @@ else if ( (true) ) { } break; + case ARGS: case ARITMETICA: case BODY: case CONSTR_DECL: @@ -748,6 +763,7 @@ else if ( (true) ) { case LOAD: case LOGICA: case MEMBRO_CLASSE: + case METHOD_CALL: case METHOD_DECL: case NEWLINE: case NULL: @@ -757,8 +773,6 @@ else if ( (true) ) { case TIPO_REF: case VOID: case WS: - case 28: - case 29: case 30: case 31: case 32: @@ -836,6 +850,9 @@ else if ( (true) ) { case 104: case 105: case 106: + case 107: + case 108: + case 109: { alt4=1; } @@ -850,7 +867,7 @@ else if ( (true) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:23: . { matchAny(input); if (state.failed) return ; @@ -868,7 +885,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:26: ( ^( LIMIT lim= INTEIRO ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -877,12 +894,12 @@ else if ( (true) ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor409); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor419); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor413); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor423); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -921,23 +938,23 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo436); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo446); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo438); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo448); if (state.failed) return ; matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:23: ( . )+ int cnt6=0; loop6: do { @@ -957,6 +974,7 @@ else if ( (true) ) { } break; + case ARGS: case ARITMETICA: case BODY: case CONSTR_DECL: @@ -971,6 +989,7 @@ else if ( (true) ) { case LOAD: case LOGICA: case MEMBRO_CLASSE: + case METHOD_CALL: case METHOD_DECL: case NEWLINE: case NULL: @@ -980,8 +999,6 @@ else if ( (true) ) { case TIPO_REF: case VOID: case WS: - case 28: - case 29: case 30: case 31: case 32: @@ -1059,6 +1076,9 @@ else if ( (true) ) { case 104: case 105: case 106: + case 107: + case 108: + case 109: { alt6=1; } @@ -1073,7 +1093,7 @@ else if ( (true) ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:23: . { matchAny(input); if (state.failed) return ; @@ -1091,7 +1111,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:26: ( ^( LIMIT lim= INTEIRO ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -1100,12 +1120,12 @@ else if ( (true) ) { } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo447); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo457); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo451); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo461); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1144,13 +1164,13 @@ else if ( (true) ) { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:188:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo471); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo481); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do metodo... "); @@ -1176,13 +1196,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:197:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor487); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor497); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do construtor... "); @@ -1208,17 +1228,17 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:206:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:208:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:208:7: ^( 'getfield' classe= . . campo= . tipo= . ) { - match(input,53,FOLLOW_53_in_getfield509); if (state.failed) return ; + match(input,55,FOLLOW_55_in_getfield519); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1260,17 +1280,17 @@ public final void getfield() throws RecognitionException { // $ANTLR start "getstatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:1: getstatic : ^( 'getstatic' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:1: getstatic : ^( 'getstatic' classe= . . campo= . tipo= . ) ; public final void getstatic() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:5: ( ^( 'getstatic' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:7: ^( 'getstatic' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:215:5: ( ^( 'getstatic' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:215:7: ^( 'getstatic' classe= . . campo= . tipo= . ) { - match(input,54,FOLLOW_54_in_getstatic558); if (state.failed) return ; + match(input,56,FOLLOW_56_in_getstatic568); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1312,17 +1332,17 @@ public final void getstatic() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:222:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:222:7: ^( 'putfield' classe= . . campo= . tipo= . ) { - match(input,103,FOLLOW_103_in_putfield607); if (state.failed) return ; + match(input,106,FOLLOW_106_in_putfield617); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1364,17 +1384,17 @@ public final void putfield() throws RecognitionException { // $ANTLR start "putstatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:1: putstatic : ^( 'putstatic' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:1: putstatic : ^( 'putstatic' classe= . . campo= . tipo= . ) ; public final void putstatic() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:5: ( ^( 'putstatic' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:7: ^( 'putstatic' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:229:5: ( ^( 'putstatic' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:229:7: ^( 'putstatic' classe= . . campo= . tipo= . ) { - match(input,104,FOLLOW_104_in_putstatic656); if (state.failed) return ; + match(input,107,FOLLOW_107_in_putstatic666); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1416,41 +1436,54 @@ public final void putstatic() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:234:1: invokespecial : ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:1: invokespecial : ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; - BytecodesAST metodo=null; - BytecodesAST args=null; - BytecodesAST tipo=null; + BytecodesAST nome=null; + BytecodesAST a=null; + BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:5: ( ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:7: ^( 'invokespecial' classe= . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:236:5: ( ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:236:7: ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) { - match(input,86,FOLLOW_86_in_invokespecial705); if (state.failed) return ; + match(input,88,FOLLOW_88_in_invokespecial715); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - metodo=(BytecodesAST)input.LT(1); + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokespecial724); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + nome=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - args=(BytecodesAST)input.LT(1); + match(input,ARGS,FOLLOW_ARGS_in_invokespecial733); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + a=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - tipo=(BytecodesAST)input.LT(1); + match(input, Token.UP, null); if (state.failed) return ; + + + tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; + + if ( state.backtracking==1 ) { - chamarMetodo("invokespecial", classe.getText(), metodo.getText()); + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokespecial", classe.getText(), $metodo.getText()); } } @@ -1471,41 +1504,54 @@ public final void invokespecial() throws RecognitionException { // $ANTLR start "invokestatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:241:1: invokestatic : ^( 'invokestatic' classe= . metodo= . args= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:243:1: invokestatic : ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; public final void invokestatic() throws RecognitionException { BytecodesAST classe=null; - BytecodesAST metodo=null; - BytecodesAST args=null; - BytecodesAST tipo=null; + BytecodesAST nome=null; + BytecodesAST a=null; + BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:5: ( ^( 'invokestatic' classe= . metodo= . args= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:7: ^( 'invokestatic' classe= . metodo= . args= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:244:5: ( ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:244:7: ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) { - match(input,87,FOLLOW_87_in_invokestatic758); if (state.failed) return ; + match(input,89,FOLLOW_89_in_invokestatic776); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - metodo=(BytecodesAST)input.LT(1); + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokestatic785); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + nome=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - args=(BytecodesAST)input.LT(1); + match(input,ARGS,FOLLOW_ARGS_in_invokestatic794); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + a=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - tipo=(BytecodesAST)input.LT(1); + match(input, Token.UP, null); if (state.failed) return ; + + + tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; + + if ( state.backtracking==1 ) { - chamarMetodo("invokestatic", classe.getText(), metodo.getText()); + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokestatic", classe.getText(), $metodo.getText()); } } @@ -1525,16 +1571,84 @@ public final void invokestatic() throws RecognitionException { + // $ANTLR start "invokevirtual" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:251:1: invokevirtual : ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; + public final void invokevirtual() throws RecognitionException { + BytecodesAST classe=null; + BytecodesAST nome=null; + BytecodesAST a=null; + BytecodesAST tipoRet=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:5: ( ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:7: ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) + { + match(input,90,FOLLOW_90_in_invokevirtual837); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokevirtual846); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + nome=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input,ARGS,FOLLOW_ARGS_in_invokevirtual855); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + a=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + tipoRet=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); + //chamarMetodo("invokevirtual", classe.getText(), $metodo.getText()); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "invokevirtual" + + + // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:1: novaClasse : ^( 'new' classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:1: novaClasse : ^( 'new' classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:3: ( ^( 'new' classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:5: ^( 'new' classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:260:3: ( ^( 'new' classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:260:5: ^( 'new' classe= . ) { - match(input,99,FOLLOW_99_in_novaClasse809); if (state.failed) return ; + match(input,102,FOLLOW_102_in_novaClasse896); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1566,15 +1680,15 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:255:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:266:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:267:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:267:7: ^( ARITMETICA operacao= . ) { - match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica840); if (state.failed) return ; + match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica927); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1606,15 +1720,15 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:263:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:263:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:274:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:274:5: ^( LOAD operacao= . ) { - match(input,LOAD,FOLLOW_LOAD_in_load874); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_load961); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1646,16 +1760,16 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:269:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:281:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:281:7: ^( LOAD operacao= . operando= . ) { - match(input,LOAD,FOLLOW_LOAD_in_loadint903); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_loadint990); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1691,15 +1805,15 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:276:1: store : ^( STORE operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:1: store : ^( STORE operacao= . ) ; public final void store() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:288:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:288:6: ^( STORE operacao= . ) { - match(input,STORE,FOLLOW_STORE_in_store945); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_store1032); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1731,16 +1845,16 @@ public final void store() throws RecognitionException { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:283:1: storeint : ^( STORE operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:294:1: storeint : ^( STORE operacao= . operando= . ) ; public final void storeint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:295:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:295:7: ^( STORE operacao= . operando= . ) { - match(input,STORE,FOLLOW_STORE_in_storeint974); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_storeint1061); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1776,16 +1890,16 @@ public final void storeint() throws RecognitionException, LabelException { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:290:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:301:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:291:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:291:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:302:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:302:7: ^( DESVIO operacao= . operando= . ) { - match(input,DESVIO,FOLLOW_DESVIO_in_desvio1015); if (state.failed) return ; + match(input,DESVIO,FOLLOW_DESVIO_in_desvio1102); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1821,15 +1935,15 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:297:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:308:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:298:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:298:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:309:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:309:7: ^( LOGICA operacao= . ) { - match(input,LOGICA,FOLLOW_LOGICA_in_logica1056); if (state.failed) return ; + match(input,LOGICA,FOLLOW_LOGICA_in_logica1143); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1861,15 +1975,15 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:304:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:315:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:305:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:305:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:316:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:316:6: ^( PILHA operacao= . ) { - match(input,PILHA,FOLLOW_PILHA_in_pilha1090); if (state.failed) return ; + match(input,PILHA,FOLLOW_PILHA_in_pilha1177); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1901,15 +2015,15 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:311:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:322:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:312:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:312:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:323:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:323:6: ^( LABEL operacao= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label1118); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label1205); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1941,28 +2055,28 @@ public final void label() throws RecognitionException, LabelException { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:318:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:329:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; public final void retorno() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:330:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:330:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:330:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) int alt8=3; switch ( input.LA(1) ) { - case 90: + case 93: { alt8=1; } break; - case 46: + case 48: { alt8=2; } break; - case 105: + case 108: { alt8=3; } @@ -1978,23 +2092,23 @@ public final void retorno() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:8: operacao= 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:330:8: operacao= 'ireturn' { - operacao=(BytecodesAST)match(input,90,FOLLOW_90_in_retorno1154); if (state.failed) return ; + operacao=(BytecodesAST)match(input,93,FOLLOW_93_in_retorno1241); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:320:8: operacao= 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:331:8: operacao= 'areturn' { - operacao=(BytecodesAST)match(input,46,FOLLOW_46_in_retorno1168); if (state.failed) return ; + operacao=(BytecodesAST)match(input,48,FOLLOW_48_in_retorno1255); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:321:8: operacao= 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:332:8: operacao= 'return' { - operacao=(BytecodesAST)match(input,105,FOLLOW_105_in_retorno1182); if (state.failed) return ; + operacao=(BytecodesAST)match(input,108,FOLLOW_108_in_retorno1269); if (state.failed) return ; } break; @@ -2026,24 +2140,25 @@ public final void retorno() throws RecognitionException { protected DFA1 dfa1 = new DFA1(this); static final String DFA1_eotS = - "\42\uffff"; + "\43\uffff"; static final String DFA1_eofS = - "\42\uffff"; + "\43\uffff"; static final String DFA1_minS = - "\1\4\14\uffff\2\2\5\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; + "\1\5\15\uffff\2\2\5\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; static final String DFA1_maxS = - "\1\151\14\uffff\2\2\5\uffff\5\152\2\uffff\1\152\2\uffff\4\152"; + "\1\154\15\uffff\2\2\5\uffff\5\155\2\uffff\1\155\2\uffff\4\155"; static final String DFA1_acceptS = - "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\2"+ - "\uffff\1\21\1\22\1\23\1\24\1\25\5\uffff\1\15\1\16\1\uffff\1\17\1"+ - "\20\4\uffff"; + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"+ + "\15\2\uffff\1\22\1\23\1\24\1\25\1\26\5\uffff\1\16\1\17\1\uffff\1"+ + "\20\1\21\4\uffff"; static final String DFA1_specialS = - "\42\uffff}>"; + "\43\uffff}>"; static final String[] DFA1_transitionS = { - "\1\14\1\uffff\1\3\1\17\1\uffff\1\4\4\uffff\1\22\1\uffff\1\15"+ - "\1\20\1\uffff\1\2\3\uffff\1\21\1\16\6\uffff\1\1\16\uffff\1\23"+ - "\6\uffff\1\5\1\6\37\uffff\1\11\1\12\2\uffff\1\23\10\uffff\1"+ - "\13\3\uffff\1\7\1\10\1\23", + "\1\15\1\uffff\1\3\1\20\1\uffff\1\4\4\uffff\1\23\1\uffff\1\16"+ + "\1\21\2\uffff\1\2\3\uffff\1\22\1\17\6\uffff\1\1\16\uffff\1\24"+ + "\6\uffff\1\5\1\6\37\uffff\1\11\1\12\1\13\2\uffff\1\24\10\uffff"+ + "\1\14\3\uffff\1\7\1\10\1\24", + "", "", "", "", @@ -2056,27 +2171,27 @@ public final void retorno() throws RecognitionException { "", "", "", - "\1\24", "\1\25", + "\1\26", "", "", "", "", "", - "\147\26", - "\147\27", - "\1\30\1\31\147\32", - "\1\33\1\34\147\35", - "\147\36", + "\152\27", + "\152\30", + "\1\31\1\32\152\33", + "\1\34\1\35\152\36", + "\152\37", "", "", - "\147\37", + "\152\40", "", "", - "\1\40\147\36", - "\1\41\147\37", - "\1\31\147\32", - "\1\34\147\35" + "\1\41\152\37", + "\1\42\152\40", + "\1\32\152\33", + "\1\35\152\36" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -2109,7 +2224,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "110:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; + return "110:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; } } @@ -2124,53 +2239,61 @@ public String getDescription() { public static final BitSet FOLLOW_putstatic_in_topdown131 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_invokespecial_in_topdown141 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_invokestatic_in_topdown151 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_novaClasse_in_topdown161 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_aritmetica_in_topdown171 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_load_in_topdown181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_loadint_in_topdown191 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_store_in_topdown201 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_storeint_in_topdown211 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_desvio_in_topdown221 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_logica_in_topdown231 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_pilha_in_topdown241 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_topdown251 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_retorno_in_topdown261 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoMetodo_in_bottomup282 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup290 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_entraNaClasse313 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse317 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse321 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse325 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel363 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel365 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); - public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor400 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor402 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor409 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor413 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo436 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo438 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000007FFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo447 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo451 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo471 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor487 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_getfield509 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_54_in_getstatic558 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_103_in_putfield607 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_104_in_putstatic656 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_86_in_invokespecial705 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_87_in_invokestatic758 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_99_in_novaClasse809 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARITMETICA_in_aritmetica840 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_load874 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_loadint903 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_store945 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_storeint974 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_DESVIO_in_desvio1015 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOGICA_in_logica1056 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PILHA_in_pilha1090 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label1118 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_90_in_retorno1154 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_retorno1168 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_105_in_retorno1182 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invokevirtual_in_topdown161 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_novaClasse_in_topdown171 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_aritmetica_in_topdown181 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_load_in_topdown191 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_loadint_in_topdown201 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_store_in_topdown211 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_storeint_in_topdown221 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_desvio_in_topdown231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_logica_in_topdown241 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_pilha_in_topdown251 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_topdown261 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_retorno_in_topdown271 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoMetodo_in_bottomup292 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup300 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_entraNaClasse323 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse327 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse331 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse335 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel373 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel375 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor410 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor412 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor419 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor423 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo446 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo448 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo457 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo461 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo481 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor497 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_getfield519 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_56_in_getstatic568 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_106_in_putfield617 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_107_in_putstatic666 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_88_in_invokespecial715 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invokespecial724 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARGS_in_invokespecial733 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_89_in_invokestatic776 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invokestatic785 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARGS_in_invokestatic794 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_90_in_invokevirtual837 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invokevirtual846 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARGS_in_invokevirtual855 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_102_in_novaClasse896 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARITMETICA_in_aritmetica927 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_load961 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_loadint990 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_store1032 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_storeint1061 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_DESVIO_in_desvio1102 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOGICA_in_logica1143 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PILHA_in_pilha1177 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label1205 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_93_in_retorno1241 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_retorno1255 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_108_in_retorno1269 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index 1aaf0ab..e17e231 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,5 +1,3 @@ -T__28=28 -T__29=29 T__30=30 T__31=31 T__32=32 @@ -77,106 +75,112 @@ T__103=103 T__104=104 T__105=105 T__106=106 -ARITMETICA=4 -BODY=5 -CONSTR_DECL=6 -DESVIO=7 -EXTENDS=8 -FIELD_DECL=9 -ID=10 -INIT=11 -INT=12 -INTEIRO=13 -LABEL=14 -LIMIT=15 -LOAD=16 -LOGICA=17 -MEMBRO_CLASSE=18 -METHOD_DECL=19 -NEWLINE=20 -NULL=21 -PARAMS=22 -PILHA=23 -STORE=24 -TIPO_REF=25 -VOID=26 -WS=27 -'('=28 -'()'=29 -')'=30 -'.class'=31 -'.end class'=32 -'.end method'=33 -'.field'=34 -'.limit locals'=35 -'.method'=36 -'.super'=37 -'/'=38 -':'=39 -'aconst_null'=40 -'aload'=41 -'aload_0'=42 -'aload_1'=43 -'aload_2'=44 -'aload_3'=45 -'areturn'=46 -'astore'=47 -'astore_0'=48 -'astore_1'=49 -'astore_2'=50 -'astore_3'=51 -'dup'=52 -'getfield'=53 -'getstatic'=54 -'goto'=55 -'iadd'=56 -'iand'=57 -'iconst_0'=58 -'iconst_1'=59 -'iconst_2'=60 -'iconst_3'=61 -'iconst_4'=62 -'iconst_5'=63 -'iconst_m1'=64 -'idiv'=65 -'if_icmpeq'=66 -'if_icmpge'=67 -'if_icmpgt'=68 -'if_icmple'=69 -'if_icmplt'=70 -'if_icmpne'=71 -'ifeq'=72 -'ifge'=73 -'ifgt'=74 -'ifle'=75 -'iflt'=76 -'ifne'=77 -'iinc'=78 -'iload'=79 -'iload_0'=80 -'iload_1'=81 -'iload_2'=82 -'iload_3'=83 -'imul'=84 -'ineg'=85 -'invokespecial'=86 -'invokestatic'=87 -'ior'=88 -'irem'=89 -'ireturn'=90 -'istore'=91 -'istore_0'=92 -'istore_1'=93 -'istore_2'=94 -'istore_3'=95 -'isub'=96 -'ixor'=97 -'ldc'=98 -'new'=99 -'nop'=100 -'pop'=101 -'pop2'=102 -'putfield'=103 -'putstatic'=104 -'return'=105 -'static'=106 +T__107=107 +T__108=108 +T__109=109 +ARGS=4 +ARITMETICA=5 +BODY=6 +CONSTR_DECL=7 +DESVIO=8 +EXTENDS=9 +FIELD_DECL=10 +ID=11 +INIT=12 +INT=13 +INTEIRO=14 +LABEL=15 +LIMIT=16 +LOAD=17 +LOGICA=18 +MEMBRO_CLASSE=19 +METHOD_CALL=20 +METHOD_DECL=21 +NEWLINE=22 +NULL=23 +PARAMS=24 +PILHA=25 +STORE=26 +TIPO_REF=27 +VOID=28 +WS=29 +'('=30 +'()'=31 +')'=32 +'.class'=33 +'.end class'=34 +'.end method'=35 +'.field'=36 +'.limit locals'=37 +'.method'=38 +'.super'=39 +'/'=40 +':'=41 +'aconst_null'=42 +'aload'=43 +'aload_0'=44 +'aload_1'=45 +'aload_2'=46 +'aload_3'=47 +'areturn'=48 +'astore'=49 +'astore_0'=50 +'astore_1'=51 +'astore_2'=52 +'astore_3'=53 +'dup'=54 +'getfield'=55 +'getstatic'=56 +'goto'=57 +'iadd'=58 +'iand'=59 +'iconst_0'=60 +'iconst_1'=61 +'iconst_2'=62 +'iconst_3'=63 +'iconst_4'=64 +'iconst_5'=65 +'iconst_m1'=66 +'idiv'=67 +'if_icmpeq'=68 +'if_icmpge'=69 +'if_icmpgt'=70 +'if_icmple'=71 +'if_icmplt'=72 +'if_icmpne'=73 +'ifeq'=74 +'ifge'=75 +'ifgt'=76 +'ifle'=77 +'iflt'=78 +'ifne'=79 +'iinc'=80 +'iload'=81 +'iload_0'=82 +'iload_1'=83 +'iload_2'=84 +'iload_3'=85 +'imul'=86 +'ineg'=87 +'invokespecial'=88 +'invokestatic'=89 +'invokevirtual'=90 +'ior'=91 +'irem'=92 +'ireturn'=93 +'istore'=94 +'istore_0'=95 +'istore_1'=96 +'istore_2'=97 +'istore_3'=98 +'isub'=99 +'ixor'=100 +'ldc'=101 +'new'=102 +'nop'=103 +'pop'=104 +'pop2'=105 +'putfield'=106 +'putstatic'=107 +'return'=108 +'static'=109 From 7eea573d7dd5606a89c431894475100f20f19531 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Sun, 9 Sep 2012 00:44:40 -0300 Subject: [PATCH 64/79] commit --- .../ufpb/iged/interpretador/gramaticas/Ref.g | 28 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1450 -> 1450 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 35626 -> 36231 bytes .../principal/Interpretador$1.class | Bin 1637 -> 1637 bytes .../principal/Interpretador.class | Bin 15402 -> 15724 bytes .../ufpb/iged/interpretador/gramaticas/Ref.g | 28 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 26 +- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 337 +++++++++--------- .../principal/Interpretador.java | 105 +++--- .../principal/ProgramCounter.java | 70 ++++ .../interpretador/principal/StackFrame.java | 2 +- .../symboltable/classes/SimboloMetodo.java | 6 + 14 files changed, 355 insertions(+), 251 deletions(-) create mode 100644 src/br/ufpb/iged/interpretador/principal/ProgramCounter.java diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index 42334e4..7f6fb49 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -58,6 +58,12 @@ options { if (!simboloClasse.getConstantPool().contains(simboloVariavel)) simboloClasse.getConstantPool().add(simboloVariavel); + + if (operacao.equals("getstatic") || operacao.equals("putstatic")) + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + assembler.getConstantPool().indexOf(simboloClasse)); BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, @@ -65,7 +71,7 @@ options { } - private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo) { + private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo, String args, String tipoRetorno) { assembler.escreverOpcode(instrucao); @@ -77,11 +83,15 @@ options { assembler.getConstantPool().add(simboloClasse); SimboloMetodo simboloMetodo = - (SimboloMetodo) simboloClasse.resolver(nomeMetodo); + (SimboloMetodo) simboloClasse.resolverMetodo(nomeMetodo+"("+args+")"+tipoRetorno, nomeMetodo); if (!simboloClasse.getConstantPool().contains(simboloMetodo)) simboloClasse.getConstantPool().add(simboloMetodo); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + assembler.getConstantPool().indexOf(simboloClasse)); BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, @@ -233,26 +243,26 @@ putstatic ; invokespecial - : ^('invokespecial' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) + : ^('invokespecial' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) .)) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokespecial", $classe.getText(), $metodo.getText()); + System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); + chamarMetodo("invokespecial", $classe.getText(), $nome.getText(), $a.getText(), ""); } ; invokestatic : ^('invokestatic' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokestatic", $classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); + chamarMetodo("invokestatic", $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); } ; invokevirtual : ^('invokevirtual' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokevirtual", $classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); + chamarMetodo("invokevirtual", $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); } ; diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 05db75405c35008c5bf0934443206c49c207ed85..86045fe944e4e3effda66d9455dc0fc250dfda2f 100644 GIT binary patch delta 66 zcmV-I0KNaJ3#tpSLIVLZvqJ;T0V%Ek2?(zM4hXOS69};Y8VIrgAqcYoC<{9 delta 66 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 B55)ig literal 35626 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 delta 43 zcmaFL^OR@9Zx%+o$$wZ}7#$}&vIcXyGO#eXF|aXsOrFac&FaU%$KXHtFKY$>EGP^) diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 6fb28b7bf5473be3ec7234b8a608b16c81275753..814a1be04b755e8957a5969c793a9456044d87e0 100644 GIT binary patch literal 15724 zcmds8d0WZx_0wQW~L)j7}DkxeN*VeY~TC1(rR;&GRsc89r_q|y%VKS!LzZ#f1_q}uP@1A?^ zx#ymHZgTA3haM-QA^eI)f+=rtIJag=XmPHu(p!=13q-u(P}m#sR0PAhp|CGd?hASR zxl@|H*GOe*yUbJT$@O~zmANI0mwC%0Ozzp^rjIM0T(WS+l%mPwn0N}_jSmK@Bc4EH zj>li)RnTz-Q=17>W=))3GHXi7!bv5?vnMjOFG|3bM$m0#frAVt=UKVseou9^x0>m+ zh-b0a?SMdt(r}vy%V{m^5!7682Phm`*=MfWn$3OT1xJ zQkQx?Aq?26Q4{g`bBlb{5pbNPzRG|nQWN${VayT4*`v}4mr$(KT_jjAMxx1aRzcn{ z(}Z-b7q5(X%Yzl(c>P>YbyaR*^zFD93LtGEpMNPvmp4BhUP7AEh^PF*NnuZwSIQF! zhJrIJ0J}fvsgQ!@wGL>!oU|gd4UpQ#B(5G;;R!{8!0A&I3|HpDF8tx#a7`fMtMcYX z!d`FgY^ck#Ef66gvAoXCfk1|D+uxA>SNoT;qi+llZaZS}?Zx}}Bhkdj!3YL5P zb39?6d^TU|q)?7Vc}yJ=wlgjq_NokvkE|D%^8kg2O(x}&x9tP}$T#F3y&|)SLD#xlxr_7dQDv;|SM}Bz? zS|S&NQXZ;t(o$NckuPb}D_vO~@m3jhA^A}&ScCnqlQpHjVD1d;U=i$NUQZPu0~FFI z$dsQ(OWqab@af*_T+{Z7gON$lQpH5P4MlvxfI-U%R-R0{J=pPoAkK-mPCuzYbDM$7bWbR{+3N8buhwWI zTw3#WVg+|P-DYjETMTMLZ8h4;WSCX4Y$o~qUY%~I?b1iBkfj|4-AOwkyC2)LTss3& zSdoM7MnrH{xeS1Gs-t@~+Li1$%<$Hr`{;h`2;M+N^;}>fnhAcgy5hO-v{Ib!8{$F@bVg8tvs_Z zb`hH|5R&^v?-Wa|*}P(Fze=N5P`3pWu#|2YfmArO{xWUX=yyL5xp~6X-f(XGtWe}# zA$R0g=?~J{UxUe|@&n_Sdcsy$*l{&_Bc)j5gH=_*!0h0K-at&O*Xb<@`!-XrRIpav zU`@E(YvR6}-q*KsKAiMN`jbZQr{8x|gH7-*K}cWj2^#bPeTc>5!yz_YBR6P-vS|-f zKLFTgiiP9}V)?v7f026mh{@NoUaTnMztpFU^xvVs8uSVM4Tf5cNH1~TV(Ont3@bT=IIwwsF~5tFrWLx+Al=fp(Y%FUcR9J)99Zm{obq^zju~d zue3ZELX>u#zC=JHLsp2{JSeg<6IeuFrvx)c7PVKj*63eM15aIO&8ijS1RAsKZ|H=a z!S9$xwn}wPd}&lRsmyQa-v*t8bFgM4v2@Zd7>I@N5(|-$#_5~JT}Jf|qt=;Og}`iU z!Q{-L&W0`$gDm(@1EFM33;|`Yn!yfsVymeLUKFT7IwdLcY^n=(8EnYV+lJGUH=^-r zts31dIXXADm7{CN^kCZQ`0tG_opMsUg2GesG*Uxu)}S0~rkJ{?*cqBQU+Bg!9rh2U zW16iu)5&8yvPYza!ISk()lGBvjRuUKQf*ev79(n^(tuJ|HcczB*icys$Q|*_6hbts z+hn@Xs=~Vjo+_Q<69zAP3AeUBObE_r9``Z0FZV;x2Cov$2v|Wm5*z6~T&ln%2?6*s zIosd?@}S*5xEKL`^r(%zmah`$@OeDY;6Z#Qlgnh6gk-7@!^j>`iZF(A4L+L(gInwI z2g4Jqq&Y$F*`)(YaR%lg1`j1WV)N>dd>m%*a2^4_VkQDhLf)_^P$9LRbO4IENzQL= zS`Di5hP_A*do&)!)GiTu%Dhu0VhJwbF$Ry7<8@>10R|;2N6FR<~GTZS`y4MxK#Qpcc{ki3CDCSW&4@Ib7Z2# zzO1GyG#isUn$I`5jOSrOlA}Rg62?1EuNFo;Y{`&d#W-hF`t4;mce80idIKed6*=Zg$p!7D96l9Of4PKU8RU=^1be5te-7cN)A-YQ%{co2FsuQK>@ zX_C5kg>SJhJR5f%(ul4wc#Sl010uzPM~oyGf)~Jd9_%X^brM{P2h*Y(N>bMlMksVJOo&-5?(c;A0*s}{yNT--J zkuU?r#8P{FcQEUBL|t6`n0#EcnH1M-CdHKvs8imLnbbkusRvqS;b}bjl0RMARy;;M z_fc=LkNP%J|FQ-eu#X1q0ZY(X_-;=szK24vVPsG~y6Q){CRd7r+qfuTA%??v-!`X# z&dzD1!9W^vfQBZJPBRDG4|r!I_h+FPRvTasM_VV2pph0H?}A!n&)W`Cej|-8+e>2` zXxu)Uu$Ly()1;z-?Wfk$v?DZg`d;e2m-?!U%FGe;EE`l$r42N<)Ow%SNb|}DHPC_s zw6KvFQk55u9w}Z=tmqz0_y1IdQY`v$~r7Q4uEzqvSzpLpMx|TN3dfG}inRBrKnuDgmy9%@mCiiN(272rX z)DfsFfU41T(6Its9W8$Wt`DW_=?0W8Lg_|eF%WdR8Tbr*9iLlK`Xw;ClJ+$rH5$+h zHM)4ZMwj8U8lSZ~`o<+D`uG*<>6o*NA@yoVn}z4kqqDfQk#2+PH|?X%jdXiidshQ( zo0d~gcN8h3>uA`(%)It@)zdwjD7%p!C~KtMW$hnspuKosPy6brp@9w+@1@O{xW;;V zbnZIAnFAl+aq?Ir9R}Do^wd5YE3M7aa~`afAd^lTsUvO1GTR38zk>$QPAWuJ zc|6^Xx!8uedw@Jht5(v(rY>_Zf{rwso~7r|J_FZ?$DmclQkqWBV_^xjbkPg+BKnb< zfmQ#Tx@&a1MlW%$fHsixjB3MyI&od_IOsyo(|VrPNH4>nH`mi|8tAu0jr3~Szy|vL z^hSDJn(CXyjr300nS1HI2Kw`~oV^5#{us*od%l{X*3;)l=&O8NBYgviK^e9N`ZnL5 zVTWqIZ)7gZu=7pwj*^j4s zln!Fxk5Df<1e0x~bLdejpvPz;QoN;fgv#g%sOw1>?@<`-Q?!PjhLJrJH$_3$atG5V zwWUkw1?~v-WniD^#GQfP3)gyG_;jeI05`N5+!YF+NRzl5XF@@xG=k6I?of0k_2C|z z1;brKPVULQ;DS_nMF28Bt8xbH>N%W3J?64rmVOcF=*K zhd~E{z6W|H=t)r2wLc4*k1m&kqHp_T&{3dEK`{pVHK1cacY#g={Q|TI_1l3?2OSKG z@oFSTeajsdLTCaF*@oJhkEg z=heB2tS6iGGzMnE=g6X3Lw)q;8+Ju2}==~i)&&n>Of zKTW(-D^9H!eKWd=NQnmBG8b7OyAtny1V~hp@}C5<)RLt8PXh6qAkH^_5=h7bxitZD zs#@1EceAQhrJO*;V$Mj(R4wL^luVn&?3|KmH<^xqrDSRr^X-&Ohs8Xck|`|aohg}( zJhBWYh6$y0jw_NYNDp{k6PvU&;+UUYD{Adhn^ToMpcJ&sS0%q&%X}O7+KHC=cFBJ$ zncrMWQ;=@5;@;$n%>~tNX_+qt)xs_FO+jb1%r^ziOXjyMsN8O#ye0-&8f|Ji75iUJ zzTAOgt|giOoXNMf$iLU*+gs#c3r<41shFS^I$C4`wJhklCckAtvrK-=f|AK^QBd0- z!EcSAwgw4gx#4sUuUqCS*muI2+b(ZyyVc3<&TDPEHOcMTB-+KCP`Az0CMUyL&(qam zYMt7||C>$+4WtHU)~TroPfKuG zjlDey+nGQ}#uooba9WLhXH#tPU;?2T_J#zf)z~|duxBO^nqd!5a9WLhS5s{MGJ%kc z&G7%NS=&i-xiblSQv#tGwp{;l2SW?H)$?q*3b``=9@zuDottlONB3+-#7foK;q>u76Kz*vB4GiAeJE{p)w>XGNmur;BFs3T=;Ix)p( z==EGHH(8pVcxle`$owBfG}}g-Nj=RoBk8=-PU>cIMLWLObb*&epH_Er?D*#@nWU*e zjs{fh{O6oKh{(;Ox_TA&MEM;Yj^D$n@qL_^KET=N&(xPb!g2ktI9L8n^r0_Ae>yJm z=u2@9eIw4Le~Iz*y(p!V;sR!IA=^ZNU1Bx6#m(GS+{zurF77N2@#*4e?kfJk-NhT+ zOMJ?G#7XX_=$x%|<3UPyK3mD-JY@n8RZ4i6vWWAQavq~x#OEs4a-ni7Pf+gW$;vJ+ zQXb`Eyuq`SPk4^U;cv z`U&q=zvsO+;(D8l5868NAzN>L+}4kuvJK{6+s5-T+a!L;Hj`hmmGkdxOZau$a(>gc zmfy8q#ecHh%pclz^2fG&`0uto{F&_#e{Oq$kK116Z)|V!x3<6Yzis~z!uG9D?S^pJ z+X%znRh(uYB--0^MQ3}yINe?(GVLWI%RW!^vX_fK_8O6GUmN;GST^_GR66sG7W#UFkN>kC3;(Brrud8)iag3`aq>jAEGSOhbiUyRK=?=P%8CG z#i#p~3-z#4rLRzy>sKq)`i;s;{TAgi{T}6V{h)G%epFejKdW4+zocBP|4v!2f1q5i z|4rGTf2Q2#63Ql5M`eqvhqBexN7?SmQFge_R_=CSK|#e(|BL)X?&>mHIA$O-MTu!-9a7b?xCLP z9<1iMhpNNelhhIJ1!}(AtB!K7QYX3Bs*~O8)oJdV>3#P$wb*@+I>Y^-I!orSkoQ2w zz`Yx}79^y_YU;>qk>_Etiv~wapTd}w0RW$%odK$@ltWTw2pG3+#~VQcd?RlM7$JfE?Z!38Pgs^Z{+JSHU~M~ zTlogQk(}6#PDiHlI?|2d_;bIT_-4}G_`9WOX#w@JN-}XQu16~VByMbUO(q=8AJ&kv z$IDL9mn<39%M*NDxZOE@Ptb&>|NCWHKUsZy;3vD;*YM%PPXbZ)fSbt#Sm%?-ZCd>{ zdHX+Gb)2OEZZg)EH1I!JwaW>bb%GXkIzc5TXo_(X3G7ph4w-HIb`C5t3nsS|OG92x zb{~j<5uZFWB{t9sDMw41iO5<8a82$A)j7zzo==_Bd31)lz`P8|vQR8%D)IOhEE8Ni zBcZ=Rx&`!#U#*JvIu^ABYPs6cYW(lEXwilT;$6T8BYW;KVdX6Xs>NYld@EKnuA${` zb68;fA_j>ZFlXV8PhKZ=;9tu7By$M2;X(;_cX7^Ulf!xSe0!YJfw$N54tY5>Fj~)Q ziz|h@GKU=GU1-yR@3(HJP}97TGSOuXTur@zW*zuJu*||kQ8YxqraTS22a27F`z^lh zR2-fPgx8Z1_NGKQrzM1Q;t2a=GSs8c$Op^z@}UNP9JiqS#N2okj!VbR(C{+qs`_cD z8lcf?hziv(Rf4WmBeX`XrS<9xx=Fp59s+GtFQuo{RrI2|ntrRUp)WwcSJ$x}@w`*L zn%k(?a#wXd_fT&zXH8zLVLoEB##vEg7>kJCyja6ckR899@D$7d{t@$Q|Bec|f8U-x mdg9NfpT;Y}zvgE^yOP4s(jWO4?C5!ZkzdBqp+DZ^=l=oVr7ZgZ literal 15402 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 bIxaLM@1~FWaa_u@@ss>CjsZjQ9zXvNaUa0a diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 42334e4..7f6fb49 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -58,6 +58,12 @@ options { if (!simboloClasse.getConstantPool().contains(simboloVariavel)) simboloClasse.getConstantPool().add(simboloVariavel); + + if (operacao.equals("getstatic") || operacao.equals("putstatic")) + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + assembler.getConstantPool().indexOf(simboloClasse)); BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, @@ -65,7 +71,7 @@ options { } - private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo) { + private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo, String args, String tipoRetorno) { assembler.escreverOpcode(instrucao); @@ -77,11 +83,15 @@ options { assembler.getConstantPool().add(simboloClasse); SimboloMetodo simboloMetodo = - (SimboloMetodo) simboloClasse.resolver(nomeMetodo); + (SimboloMetodo) simboloClasse.resolverMetodo(nomeMetodo+"("+args+")"+tipoRetorno, nomeMetodo); if (!simboloClasse.getConstantPool().contains(simboloMetodo)) simboloClasse.getConstantPool().add(simboloMetodo); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + assembler.getConstantPool().indexOf(simboloClasse)); BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, @@ -233,26 +243,26 @@ putstatic ; invokespecial - : ^('invokespecial' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) + : ^('invokespecial' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) .)) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokespecial", $classe.getText(), $metodo.getText()); + System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); + chamarMetodo("invokespecial", $classe.getText(), $nome.getText(), $a.getText(), ""); } ; invokestatic : ^('invokestatic' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokestatic", $classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); + chamarMetodo("invokestatic", $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); } ; invokevirtual : ^('invokevirtual' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokevirtual", $classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); + chamarMetodo("invokevirtual", $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); } ; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index f2a1232..52166f9 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 21:27:27 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 23:48:37 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 24a8b2f..850b98a 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 21:27:26 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-08 23:48:36 package br.ufpb.iged.interpretador.parser; @@ -1015,7 +1015,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: ID, superClasse, 33, membroClasse + // elements: 33, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1520,7 +1520,7 @@ else if ( (LA9_0==30) ) { // AST REWRITE - // elements: operacao, limite, parametros, INIT + // elements: parametros, operacao, INIT, limite // token labels: // rule labels: retval // token list labels: @@ -1740,7 +1740,7 @@ else if ( (LA13_0==30) ) { // AST REWRITE - // elements: limite, operacao, parametros, ret, ID + // elements: operacao, ret, limite, parametros, ID // token labels: // rule labels: ret, retval // token list labels: @@ -2310,7 +2310,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: b, tipo, 55 + // elements: b, 55, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2366,7 +2366,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo63.getTree()); // AST REWRITE - // elements: b, tipo, 56 + // elements: b, 56, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2422,7 +2422,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo64.getTree()); // AST REWRITE - // elements: 106, b, tipo + // elements: b, tipo, 106 // token labels: // rule labels: retval, b // token list labels: @@ -2478,7 +2478,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo65.getTree()); // AST REWRITE - // elements: tipo, 107, b + // elements: 107, tipo, b // token labels: // rule labels: retval, b // token list labels: @@ -2538,7 +2538,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, 88, d + // elements: d, c, 88 // token labels: // rule labels: retval, d, c // token list labels: @@ -2599,7 +2599,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: 89, d, c + // elements: c, d, 89 // token labels: // rule labels: retval, d, c // token list labels: @@ -2710,7 +2710,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: 102, c + // elements: c, 102 // token labels: // rule labels: retval, c // token list labels: @@ -4298,7 +4298,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -4768,7 +4768,7 @@ else if ( (LA30_0==30) ) { stream_tipo.add(tip.getTree()); // AST REWRITE - // elements: n, tip, argumentos + // elements: argumentos, tip, n // token labels: n // rule labels: retval, tip // token list labels: diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index efbe003..3093eb3 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-08 21:27:27 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-08 23:48:38 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 7bbc642..2924699 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-08 21:27:27 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-08 23:48:38 package br.ufpb.iged.interpretador.parser; @@ -192,6 +192,12 @@ private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) if (!simboloClasse.getConstantPool().contains(simboloVariavel)) simboloClasse.getConstantPool().add(simboloVariavel); + + if (operacao.equals("getstatic") || operacao.equals("putstatic")) + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + assembler.getConstantPool().indexOf(simboloClasse)); BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, @@ -199,7 +205,7 @@ private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) } - private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo) { + private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo, String args, String tipoRetorno) { assembler.escreverOpcode(instrucao); @@ -211,11 +217,15 @@ private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo assembler.getConstantPool().add(simboloClasse); SimboloMetodo simboloMetodo = - (SimboloMetodo) simboloClasse.resolver(nomeMetodo); + (SimboloMetodo) simboloClasse.resolverMetodo(nomeMetodo+"("+args+")"+tipoRetorno, nomeMetodo); if (!simboloClasse.getConstantPool().contains(simboloMetodo)) simboloClasse.getConstantPool().add(simboloMetodo); + + BytecodeAssembler.escreverInteiro( + BytecodeAssembler.codigo, BytecodeAssembler.ip, + assembler.getConstantPool().indexOf(simboloClasse)); BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, @@ -243,15 +253,15 @@ private void newClass(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:110:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:120:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) int alt1=22; alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:111:9: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:9: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown61); entraNaClasse(); @@ -262,7 +272,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:112:9: entraNoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: entraNoMetodo { pushFollow(FOLLOW_entraNoMetodo_in_topdown71); entraNoMetodo(); @@ -273,7 +283,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:113:9: entraNoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: entraNoConstrutor { pushFollow(FOLLOW_entraNoConstrutor_in_topdown81); entraNoConstrutor(); @@ -284,7 +294,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:114:9: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown91); declaracaoVariavel(); @@ -295,7 +305,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:115:9: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: getfield { pushFollow(FOLLOW_getfield_in_topdown101); getfield(); @@ -306,7 +316,7 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:116:9: getstatic + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: getstatic { pushFollow(FOLLOW_getstatic_in_topdown111); getstatic(); @@ -317,7 +327,7 @@ public final void topdown() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:117:9: putfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: putfield { pushFollow(FOLLOW_putfield_in_topdown121); putfield(); @@ -328,7 +338,7 @@ public final void topdown() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:9: putstatic + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: putstatic { pushFollow(FOLLOW_putstatic_in_topdown131); putstatic(); @@ -339,7 +349,7 @@ public final void topdown() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:9: invokespecial + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: invokespecial { pushFollow(FOLLOW_invokespecial_in_topdown141); invokespecial(); @@ -350,7 +360,7 @@ public final void topdown() throws RecognitionException { } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:120:9: invokestatic + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: invokestatic { pushFollow(FOLLOW_invokestatic_in_topdown151); invokestatic(); @@ -361,7 +371,7 @@ public final void topdown() throws RecognitionException { } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:9: invokevirtual + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:9: invokevirtual { pushFollow(FOLLOW_invokevirtual_in_topdown161); invokevirtual(); @@ -372,7 +382,7 @@ public final void topdown() throws RecognitionException { } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: novaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:9: novaClasse { pushFollow(FOLLOW_novaClasse_in_topdown171); novaClasse(); @@ -383,7 +393,7 @@ public final void topdown() throws RecognitionException { } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:9: aritmetica { pushFollow(FOLLOW_aritmetica_in_topdown181); aritmetica(); @@ -394,7 +404,7 @@ public final void topdown() throws RecognitionException { } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:9: load { pushFollow(FOLLOW_load_in_topdown191); load(); @@ -405,7 +415,7 @@ public final void topdown() throws RecognitionException { } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:9: loadint { pushFollow(FOLLOW_loadint_in_topdown201); loadint(); @@ -416,7 +426,7 @@ public final void topdown() throws RecognitionException { } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:9: store { pushFollow(FOLLOW_store_in_topdown211); store(); @@ -427,7 +437,7 @@ public final void topdown() throws RecognitionException { } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:9: storeint { pushFollow(FOLLOW_storeint_in_topdown221); storeint(); @@ -438,7 +448,7 @@ public final void topdown() throws RecognitionException { } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:138:9: desvio { pushFollow(FOLLOW_desvio_in_topdown231); desvio(); @@ -449,7 +459,7 @@ public final void topdown() throws RecognitionException { } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:139:9: logica { pushFollow(FOLLOW_logica_in_topdown241); logica(); @@ -460,7 +470,7 @@ public final void topdown() throws RecognitionException { } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:9: pilha { pushFollow(FOLLOW_pilha_in_topdown251); pilha(); @@ -471,7 +481,7 @@ public final void topdown() throws RecognitionException { } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:9: label + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:9: label { pushFollow(FOLLOW_label_in_topdown261); label(); @@ -482,7 +492,7 @@ public final void topdown() throws RecognitionException { } break; case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:9: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:9: retorno { pushFollow(FOLLOW_retorno_in_topdown271); retorno(); @@ -513,10 +523,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:145:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:3: ( saiDoMetodo | saiDoConstrutor ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:3: ( saiDoMetodo | saiDoConstrutor ) int alt2=2; int LA2_0 = input.LA(1); @@ -536,7 +546,7 @@ else if ( (LA2_0==CONSTR_DECL) ) { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:7: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:7: saiDoMetodo { pushFollow(FOLLOW_saiDoMetodo_in_bottomup292); saiDoMetodo(); @@ -547,7 +557,7 @@ else if ( (LA2_0==CONSTR_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:7: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:7: saiDoConstrutor { pushFollow(FOLLOW_saiDoConstrutor_in_bottomup300); saiDoConstrutor(); @@ -575,21 +585,21 @@ else if ( (LA2_0==CONSTR_DECL) ) { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:151:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { match(input,33,FOLLOW_33_in_entraNaClasse323); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse327); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -614,7 +624,7 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:27: ^( EXTENDS sup= TIPO_REF ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse331); if (state.failed) return ; @@ -670,14 +680,14 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:161:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:162:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:162:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:172:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:172:7: ^( FIELD_DECL ID tip= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel373); if (state.failed) return ; @@ -714,21 +724,21 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:169:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor410); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor412); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:23: ( . )+ int cnt4=0; loop4: do { @@ -867,7 +877,7 @@ else if ( (true) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:23: . { matchAny(input); if (state.failed) return ; @@ -885,7 +895,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:26: ( ^( LIMIT lim= INTEIRO ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -894,7 +904,7 @@ else if ( (true) ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:170:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:27: ^( LIMIT lim= INTEIRO ) { match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor419); if (state.failed) return ; @@ -938,14 +948,14 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo446); if (state.failed) return ; @@ -954,7 +964,7 @@ public final void entraNoMetodo() throws RecognitionException { matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:23: ( . )+ int cnt6=0; loop6: do { @@ -1093,7 +1103,7 @@ else if ( (true) ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:23: . { matchAny(input); if (state.failed) return ; @@ -1111,7 +1121,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:26: ( ^( LIMIT lim= INTEIRO ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -1120,7 +1130,7 @@ else if ( (true) ) { } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:27: ^( LIMIT lim= INTEIRO ) { match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo457); if (state.failed) return ; @@ -1164,11 +1174,11 @@ else if ( (true) ) { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:200:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:200:5: METHOD_DECL { match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo481); if (state.failed) return ; @@ -1196,11 +1206,11 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:208:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:209:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:209:5: CONSTR_DECL { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor497); if (state.failed) return ; @@ -1228,15 +1238,15 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:217:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:208:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:208:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:218:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:218:7: ^( 'getfield' classe= . . campo= . tipo= . ) { match(input,55,FOLLOW_55_in_getfield519); if (state.failed) return ; @@ -1280,15 +1290,15 @@ public final void getfield() throws RecognitionException { // $ANTLR start "getstatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:214:1: getstatic : ^( 'getstatic' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:224:1: getstatic : ^( 'getstatic' classe= . . campo= . tipo= . ) ; public final void getstatic() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:215:5: ( ^( 'getstatic' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:215:7: ^( 'getstatic' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:225:5: ( ^( 'getstatic' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:225:7: ^( 'getstatic' classe= . . campo= . tipo= . ) { match(input,56,FOLLOW_56_in_getstatic568); if (state.failed) return ; @@ -1332,15 +1342,15 @@ public final void getstatic() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:231:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:222:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:222:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:232:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:232:7: ^( 'putfield' classe= . . campo= . tipo= . ) { match(input,106,FOLLOW_106_in_putfield617); if (state.failed) return ; @@ -1384,15 +1394,15 @@ public final void putfield() throws RecognitionException { // $ANTLR start "putstatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:1: putstatic : ^( 'putstatic' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:238:1: putstatic : ^( 'putstatic' classe= . . campo= . tipo= . ) ; public final void putstatic() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:229:5: ( ^( 'putstatic' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:229:7: ^( 'putstatic' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:239:5: ( ^( 'putstatic' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:239:7: ^( 'putstatic' classe= . . campo= . tipo= . ) { match(input,107,FOLLOW_107_in_putstatic666); if (state.failed) return ; @@ -1436,16 +1446,15 @@ public final void putstatic() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:1: invokespecial : ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:1: invokespecial : ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST nome=null; BytecodesAST a=null; - BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:236:5: ( ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:236:7: ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:246:5: ( ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:246:7: ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) { match(input,88,FOLLOW_88_in_invokespecial715); if (state.failed) return ; @@ -1471,8 +1480,6 @@ public final void invokespecial() throws RecognitionException { match(input, Token.UP, null); if (state.failed) return ; - tipoRet=(BytecodesAST)input.LT(1); - matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1482,8 +1489,8 @@ public final void invokespecial() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokespecial", classe.getText(), $metodo.getText()); + System.out.println("chamando construtor "+nome.getText()+"("+a.getText()+")"); + chamarMetodo("invokespecial", classe.getText(), nome.getText(), a.getText(), ""); } } @@ -1504,7 +1511,7 @@ public final void invokespecial() throws RecognitionException { // $ANTLR start "invokestatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:243:1: invokestatic : ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:253:1: invokestatic : ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; public final void invokestatic() throws RecognitionException { BytecodesAST classe=null; BytecodesAST nome=null; @@ -1512,24 +1519,24 @@ public final void invokestatic() throws RecognitionException { BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:244:5: ( ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:244:7: ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:254:5: ( ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:254:7: ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) { - match(input,89,FOLLOW_89_in_invokestatic776); if (state.failed) return ; + match(input,89,FOLLOW_89_in_invokestatic772); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokestatic785); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokestatic781); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - match(input,ARGS,FOLLOW_ARGS_in_invokestatic794); if (state.failed) return ; + match(input,ARGS,FOLLOW_ARGS_in_invokestatic790); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; a=(BytecodesAST)input.LT(1); @@ -1550,8 +1557,8 @@ public final void invokestatic() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokestatic", classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+nome.getText()+"("+a.getText()+")"+tipoRet.getText()); + chamarMetodo("invokestatic", classe.getText(), nome.getText(), a.getText(), tipoRet.getText()); } } @@ -1572,7 +1579,7 @@ public final void invokestatic() throws RecognitionException { // $ANTLR start "invokevirtual" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:251:1: invokevirtual : ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:261:1: invokevirtual : ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; public final void invokevirtual() throws RecognitionException { BytecodesAST classe=null; BytecodesAST nome=null; @@ -1580,24 +1587,24 @@ public final void invokevirtual() throws RecognitionException { BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:5: ( ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:7: ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:5: ( ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:7: ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) { - match(input,90,FOLLOW_90_in_invokevirtual837); if (state.failed) return ; + match(input,90,FOLLOW_90_in_invokevirtual833); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokevirtual846); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokevirtual842); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - match(input,ARGS,FOLLOW_ARGS_in_invokevirtual855); if (state.failed) return ; + match(input,ARGS,FOLLOW_ARGS_in_invokevirtual851); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; a=(BytecodesAST)input.LT(1); @@ -1618,8 +1625,8 @@ public final void invokevirtual() throws RecognitionException { if ( state.backtracking==1 ) { - System.out.println("chamando metodo "+nome.getText()+a.getText()+tipoRet.getText()); - //chamarMetodo("invokevirtual", classe.getText(), $metodo.getText()); + System.out.println("chamando metodo "+nome.getText()+"("+a.getText()+")"+tipoRet.getText()); + chamarMetodo("invokevirtual", classe.getText(), nome.getText(), a.getText(), tipoRet.getText()); } } @@ -1640,15 +1647,15 @@ public final void invokevirtual() throws RecognitionException { // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:1: novaClasse : ^( 'new' classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:269:1: novaClasse : ^( 'new' classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:260:3: ( ^( 'new' classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:260:5: ^( 'new' classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:3: ( ^( 'new' classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:5: ^( 'new' classe= . ) { - match(input,102,FOLLOW_102_in_novaClasse896); if (state.failed) return ; + match(input,102,FOLLOW_102_in_novaClasse892); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1680,15 +1687,15 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:266:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:276:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:267:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:267:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:7: ^( ARITMETICA operacao= . ) { - match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica927); if (state.failed) return ; + match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica923); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1720,15 +1727,15 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:283:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:274:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:274:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:5: ^( LOAD operacao= . ) { - match(input,LOAD,FOLLOW_LOAD_in_load961); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_load957); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1760,16 +1767,16 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:290:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:281:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:281:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:291:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:291:7: ^( LOAD operacao= . operando= . ) { - match(input,LOAD,FOLLOW_LOAD_in_loadint990); if (state.failed) return ; + match(input,LOAD,FOLLOW_LOAD_in_loadint986); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1805,15 +1812,15 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:1: store : ^( STORE operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:297:1: store : ^( STORE operacao= . ) ; public final void store() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:288:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:288:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:298:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:298:6: ^( STORE operacao= . ) { - match(input,STORE,FOLLOW_STORE_in_store1032); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_store1028); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1845,16 +1852,16 @@ public final void store() throws RecognitionException { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:294:1: storeint : ^( STORE operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:304:1: storeint : ^( STORE operacao= . operando= . ) ; public final void storeint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:295:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:295:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:305:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:305:7: ^( STORE operacao= . operando= . ) { - match(input,STORE,FOLLOW_STORE_in_storeint1061); if (state.failed) return ; + match(input,STORE,FOLLOW_STORE_in_storeint1057); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1890,16 +1897,16 @@ public final void storeint() throws RecognitionException, LabelException { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:301:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:311:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:302:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:302:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:312:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:312:7: ^( DESVIO operacao= . operando= . ) { - match(input,DESVIO,FOLLOW_DESVIO_in_desvio1102); if (state.failed) return ; + match(input,DESVIO,FOLLOW_DESVIO_in_desvio1098); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1935,15 +1942,15 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:308:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:318:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:309:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:309:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:7: ^( LOGICA operacao= . ) { - match(input,LOGICA,FOLLOW_LOGICA_in_logica1143); if (state.failed) return ; + match(input,LOGICA,FOLLOW_LOGICA_in_logica1139); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -1975,15 +1982,15 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:315:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:325:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:316:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:316:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:326:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:326:6: ^( PILHA operacao= . ) { - match(input,PILHA,FOLLOW_PILHA_in_pilha1177); if (state.failed) return ; + match(input,PILHA,FOLLOW_PILHA_in_pilha1173); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -2015,15 +2022,15 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:322:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:332:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:323:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:323:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:333:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:333:6: ^( LABEL operacao= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label1205); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label1201); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; operacao=(BytecodesAST)input.LT(1); @@ -2055,15 +2062,15 @@ public final void label() throws RecognitionException, LabelException { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:329:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:339:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; public final void retorno() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:330:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:330:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:340:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:340:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:330:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:340:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) int alt8=3; switch ( input.LA(1) ) { case 93: @@ -2092,23 +2099,23 @@ public final void retorno() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:330:8: operacao= 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:340:8: operacao= 'ireturn' { - operacao=(BytecodesAST)match(input,93,FOLLOW_93_in_retorno1241); if (state.failed) return ; + operacao=(BytecodesAST)match(input,93,FOLLOW_93_in_retorno1237); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:331:8: operacao= 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:341:8: operacao= 'areturn' { - operacao=(BytecodesAST)match(input,48,FOLLOW_48_in_retorno1255); if (state.failed) return ; + operacao=(BytecodesAST)match(input,48,FOLLOW_48_in_retorno1251); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:332:8: operacao= 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:342:8: operacao= 'return' { - operacao=(BytecodesAST)match(input,108,FOLLOW_108_in_retorno1269); if (state.failed) return ; + operacao=(BytecodesAST)match(input,108,FOLLOW_108_in_retorno1265); if (state.failed) return ; } break; @@ -2224,7 +2231,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "110:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; + return "120:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; } } @@ -2276,24 +2283,24 @@ public String getDescription() { public static final BitSet FOLLOW_88_in_invokespecial715 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_METHOD_CALL_in_invokespecial724 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ARGS_in_invokespecial733 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_89_in_invokestatic776 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invokestatic785 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARGS_in_invokestatic794 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_90_in_invokevirtual837 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invokevirtual846 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARGS_in_invokevirtual855 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_102_in_novaClasse896 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARITMETICA_in_aritmetica927 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_load961 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_loadint990 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_store1032 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_storeint1061 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_DESVIO_in_desvio1102 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOGICA_in_logica1143 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PILHA_in_pilha1177 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label1205 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_93_in_retorno1241 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_retorno1255 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_108_in_retorno1269 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_invokestatic772 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invokestatic781 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARGS_in_invokestatic790 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_90_in_invokevirtual833 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invokevirtual842 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARGS_in_invokevirtual851 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_102_in_novaClasse892 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARITMETICA_in_aritmetica923 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_load957 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOAD_in_loadint986 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_store1028 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_STORE_in_storeint1057 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_DESVIO_in_desvio1098 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LOGICA_in_logica1139 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PILHA_in_pilha1173 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label1201 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_93_in_retorno1237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_retorno1251 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_108_in_retorno1265 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 6bb27c6..c77f5a4 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -40,13 +40,9 @@ public class Interpretador { public static final int TAMANHO_PILHA = 100; private static final String DIRETORIO_FONTE = "./classes"; - - public static int tamanhoCodigo = 0; - + public static TabelaSimbolos tabelaSimbolos; - - static EscopoGlobal global; - + private static StringBuffer entrada; public List heap = new ArrayList(); @@ -116,8 +112,7 @@ public static void main(String[] args) { pilha[++topoPilha] = new StackFrame(main.getTamanhoMemoriaLocal()); - global.codigo = main.getCodigo(); - tamanhoCodigo = main.getCodigo().length; + pilha[topoPilha].pc = new ProgramCounter(main); Interpretador interpretador = new Interpretador(); @@ -177,9 +172,6 @@ public static void carregar() tabelaSimbolos = new TabelaSimbolos(); assembler = carregarClasses(); - - global = tabelaSimbolos.global; - } @@ -218,15 +210,23 @@ protected void cpu() throws ClassNotFoundException { Referencia referencia; + SimboloClasse simboloClasse; + + SimboloMetodo simboloMetodo; + + int tamanhoCodigo; + do{ StackFrame frameAtual = pilha[topoPilha]; + + tamanhoCodigo = frameAtual.pc.getSimboloMetodo().obterTamanhoCodigo(); - while (frameAtual.pc < tamanhoCodigo) { + while (frameAtual.pc.getInstrucao() < tamanhoCodigo) { desvio = false; - opcode = global.codigo[frameAtual.pc]; + opcode = frameAtual.pc.obterOpcode(); if (opcode < 0) @@ -437,7 +437,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.sp++; - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); frameAtual.pilhaOperandos[frameAtual.sp] = op1; @@ -491,7 +491,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.sp++; - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[op1]; @@ -543,7 +543,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.sp++; - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[op1]; @@ -596,7 +596,7 @@ protected void cpu() throws ClassNotFoundException { case Definicao.ISTORE: { - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); frameAtual.variaveis[op1] = frameAtual.pilhaOperandos[frameAtual.sp]; @@ -648,7 +648,7 @@ protected void cpu() throws ClassNotFoundException { case Definicao.ASTORE: { - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); frameAtual.variaveis[op1] = frameAtual.pilhaOperandos[frameAtual.sp]; @@ -718,7 +718,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -740,7 +740,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -762,7 +762,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -784,7 +784,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -806,7 +806,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -828,7 +828,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -854,7 +854,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -880,7 +880,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -906,7 +906,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -932,7 +932,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -958,7 +958,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -984,7 +984,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.pilhaOperandos[frameAtual.sp] = 0; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -995,9 +995,9 @@ protected void cpu() throws ClassNotFoundException { // desvio incondicional case Definicao.GOTO: { - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); - frameAtual.pc = op1; + frameAtual.pc.jumpTo(op1); desvio = true; @@ -1009,9 +1009,9 @@ protected void cpu() throws ClassNotFoundException { case Definicao.NEW: { - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); - SimboloClasse simboloClasse = loader.carregarClasse(op1); + simboloClasse = loader.carregarClasse(op1); Objeto objeto = new Objeto(simboloClasse); @@ -1026,9 +1026,19 @@ protected void cpu() throws ClassNotFoundException { case Definicao.INVOKEVIRTUAL: { - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); + + op2 = frameAtual.pc.obterOperandoInteiro(); + + simboloClasse = loader.carregarClasse(op1); + + simboloMetodo = (SimboloMetodo) simboloClasse.getConstantPool().get(op2); + + pilha[++topoPilha] = new StackFrame(simboloMetodo.getTamanhoMemoriaLocal()); + pilha[topoPilha].pc = new ProgramCounter(simboloMetodo); + tamanhoCodigo = simboloMetodo.obterTamanhoCodigo(); } @@ -1039,7 +1049,7 @@ protected void cpu() throws ClassNotFoundException { frameAtual.sp--; - frameAtual.pc += 4; + frameAtual.pc.pularOperando(); } @@ -1052,7 +1062,7 @@ protected void cpu() throws ClassNotFoundException { Objeto objeto = heap.get(referencia.getEndereco()); - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); frameAtual.pilhaOperandos[frameAtual.sp] = null; @@ -1069,7 +1079,7 @@ protected void cpu() throws ClassNotFoundException { Objeto objeto = heap.get(referencia.getEndereco()); - op1 = obterOperandoInteiro(frameAtual); + op1 = frameAtual.pc.obterOperandoInteiro(); objeto.getMemoriaLocal()[op1] = frameAtual.pilhaOperandos[frameAtual.sp--]; @@ -1083,7 +1093,7 @@ protected void cpu() throws ClassNotFoundException { if (!desvio) - frameAtual.pc++; + frameAtual.pc.incrementar(); // Para testes exibirTela(frameAtual); @@ -1099,21 +1109,12 @@ protected void desviar(StackFrame frame) { frame.pilhaOperandos[frame.sp] = 1; - int op = obterOperandoInteiro(frame); + int op = frame.pc.obterOperandoInteiro(); - frame.pc = op; + frame.pc.jumpTo(op); } - protected int obterOperandoInteiro(StackFrame frame) { - - int op = BytecodeAssembler.obterInteiro(global.codigo, frame.pc + 1); - - frame.pc += 4; - - return op; - - } protected short valorEmByte(short a) { @@ -1132,9 +1133,9 @@ protected void exibirTela(StackFrame frame) { System.out.print("Memória do código: "); - for (i = 0; i < global.codigo.length; i++) + for (i = 0; i < frame.pc.getSimboloMetodo().getCodigo().length; i++) - System.out.print(global.codigo[i] + " "); + System.out.print(frame.pc.getSimboloMetodo().getCodigo()[i] + " "); System.out.print("\n"); diff --git a/src/br/ufpb/iged/interpretador/principal/ProgramCounter.java b/src/br/ufpb/iged/interpretador/principal/ProgramCounter.java new file mode 100644 index 0000000..4d5a29a --- /dev/null +++ b/src/br/ufpb/iged/interpretador/principal/ProgramCounter.java @@ -0,0 +1,70 @@ +package br.ufpb.iged.interpretador.principal; + +import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; + +public class ProgramCounter { + + private SimboloMetodo simboloMetodo; + + private int instrucao; + + public ProgramCounter(SimboloMetodo metodo) { + + this.simboloMetodo = metodo; + + instrucao = 0; + + } + + public void incrementar() { + + instrucao++; + + } + + public void pularOperando() { + + instrucao += 4; + + } + + public void jumpTo(int to) { + + instrucao = to; + + } + + public short obterOpcode() { + + return simboloMetodo.getCodigo()[instrucao]; + + } + + public int obterOperandoInteiro() { + + int op = BytecodeAssembler.obterInteiro(simboloMetodo.getCodigo(), instrucao + 1); + + pularOperando(); + + return op; + + } + + public SimboloMetodo getSimboloMetodo() { + return simboloMetodo; + } + + public void setSimboloMetodo(SimboloMetodo simboloMetodo) { + this.simboloMetodo = simboloMetodo; + } + + public int getInstrucao() { + return instrucao; + } + + public void setInstrucao(int instrucao) { + this.instrucao = instrucao; + } + +} diff --git a/src/br/ufpb/iged/interpretador/principal/StackFrame.java b/src/br/ufpb/iged/interpretador/principal/StackFrame.java index 7344555..4e615d2 100644 --- a/src/br/ufpb/iged/interpretador/principal/StackFrame.java +++ b/src/br/ufpb/iged/interpretador/principal/StackFrame.java @@ -10,7 +10,7 @@ public class StackFrame { public int sp = -1; - public int pc = 0; + public ProgramCounter pc; public StackFrame(int tamanhoMemoriaLocal) { diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index fdbbc05..3b6a0e7 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -26,6 +26,12 @@ public Map obterMembros() { public String obterNome() { return nome+"("+stripBrackets(parametros.keySet().toString())+")"; + } + + public int obterTamanhoCodigo() { + + return codigo.length; + } public String getRetorno() { From 05ed1cb9ffc027347df98ccaad9833f2fbcd03bb Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 10 Sep 2012 19:04:08 -0300 Subject: [PATCH 65/79] commit --- .../ufpb/iged/interpretador/gramaticas/Ref.g | 6 +- .../ufpb/iged/interpretador/parser/Ref.class | Bin 36231 -> 36257 bytes .../principal/Interpretador.class | Bin 15724 -> 16908 bytes .../iged/interpretador/principal/Objeto.class | Bin 2602 -> 1145 bytes .../symboltable/classes/SimboloClasse.class | Bin 4150 -> 5987 bytes .../ufpb/iged/interpretador/gramaticas/Ref.g | 6 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 32 ++--- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 8 +- .../interpretador/principal/ClassLoader.java | 13 +- .../principal/Interpretador.java | 117 ++++++++++++++++-- .../iged/interpretador/principal/Objeto.java | 52 +------- .../interpretador/principal/StackFrame.java | 21 +++- .../symboltable/classes/SimboloClasse.java | 80 +++++++++++- .../symboltable/classes/SimboloMetodo.java | 41 +++++- .../ufpb/iged/interpretador/testes/Test.java | 2 +- 17 files changed, 288 insertions(+), 94 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index 7f6fb49..8b9f321 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -85,9 +85,9 @@ options { SimboloMetodo simboloMetodo = (SimboloMetodo) simboloClasse.resolverMetodo(nomeMetodo+"("+args+")"+tipoRetorno, nomeMetodo); - if (!simboloClasse.getConstantPool().contains(simboloMetodo)) + if (!simboloClasse.getMethodArea().contains(simboloMetodo)) - simboloClasse.getConstantPool().add(simboloMetodo); + simboloClasse.getMethodArea().add(simboloMetodo); BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, @@ -95,7 +95,7 @@ options { BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, - simboloClasse.getConstantPool().indexOf(simboloMetodo)); + simboloClasse.getMethodArea().indexOf(simboloMetodo)); } diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index f06a68d2624e6c7df4ae8728f12563b82fa73393..5e356d627706c8d4fd1c32e7ddd7805a3468af0d 100644 GIT binary patch delta 12635 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 bp-hL%J20Q&@=kddB3>KjU*Xl^Z2MV delta 12779 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 delta 4641 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 literal 2602 zcmbtV-*XdH6#j1WW83XQf6!C{6bPUsX=#ce#kN+k3I@|3HZ`??+D*Dmx1`yy**a4n zd}78o9G@88WSp@&VT6;a`)bI&-u8;(9_*@=>E7IS7vFC@mZi-uz<@C&pq z>hJ1_f?mwKyE#X|U$mACf%eqqQQG0%{GfogWGq>>si&-*UJ%%GrN&5l%{ep*4w*&M z85TGnP3?fEyt0(F3XYyF7>Qg#FPDvSB5le&Ys7sVjAe*s#F{fy_^?Yu6Lt&uqOpvM zR4GJ3NrDGbN z#xp!&6oF7QS&OSuY6Ve&Gf!3l6~__R(2X7eg)yegk|og33?9>;yvQ_rWkV7Ir=H+? zBTfp4q)Hk;r{HuQE4>zIID>vN%ecO*7s|38HC?JyBX(KA^8#&~v`v!#dBaw57K4&K zL##IonP~*cDN-`tISuFWl7PxK+D>`ebQZRFuW&$me_0^0LwcJ7HfhWow!vxBRgB<* zjD3+5ss&xaMvhBPB{f{aYa|IfkzOttwl@I+=N`Wy^)sYm6yplUszr4Pc;2@4m9mBj zyw0NLtkTN(yg)3v%{V7x+ia5jDYIydEiYvadrD5Q)C;Kz8J+6D=gOwvSuokI6FZS= zvuvI&Q9*W}GwwE2V1Am$o<`dP4An!?F@-N6%dw)k~Fv%2D-{N-0-Yb;D4lE2UEk)M%YvhoX<@ zCVkagc5cT7smE&CTDEh>1ylCC+3Q%Z963a&Up~Hz8u+19x+{tq{{uW}g38}!9$%Ic z2Z;Ugd(h(DYiPNP5dWSUjrZKgeu3}dyNif#cokDUUH5Uc0YBjQ8e;cxLSVoj_P6(~ z;n~~hh<}Yp*LOHO3a5fD2>x8>A$TGr?8Ngae`Azn~~#<|w#haL6ix1;ZT*gVZyq~_Vu;G42zQvoN)!2toH>{W2;4;*Y*m#>=Ezi><*tfSA{4*ZUG z0?eYr;~A6YRMT02O$~j?MT1+>pu2g=%~JCWDp?BTFvlH|lvR;527>W!vQzfMyREvr zW5hY`dXQPrs#+(mB=u!r1M?MMwLl_UflO`-B#(vdfJC+e$uQjXBY?;$lR!)t{Ng{o C5`qf= diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class index 48d10d37f5a3431ee68394617d15425b3446b015..185c514a8c17c87f8803b25f2d11ae011bacc360 100644 GIT binary patch literal 5987 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 constantPool = simboloClasse.getConstantPool(); - - memoriaLocal = new Object[constantPool.size()]; - - int i; - - for (i = 0; i < constantPool.size(); i++) { - - String nomeTipo = constantPool.get(i).getTipo().obterNome(); - - if(nomeTipo.equals("I")) - - memoriaLocal[i] = new Integer(0); - - else if (nomeTipo.startsWith("L")) - - memoriaLocal[i] = new Referencia(new Integer(0)); - - - } - - SimboloClasse parent = simboloClasse.getSuperClasse(); - - while(parent != null) { - - List constantPoolParent = parent.getConstantPool(); - - memoriaLocal = - Arrays.copyOf( - memoriaLocal, memoriaLocal.length + constantPoolParent.size()); - - int j; - - for (j = 0; j < constantPoolParent.size(); j++, i++) { - - String nomeTipo = constantPoolParent.get(j).getTipo().obterNome(); - - if(nomeTipo.equals("I")) - - memoriaLocal[i] = new Integer(0); - - else if (nomeTipo.startsWith("L")) - - memoriaLocal[i] = new Referencia(new Integer(0)); - - - } - - parent = parent.getSuperClasse(); - - } + memoriaLocal = new Object[simboloClasse.getFields().length]; } diff --git a/src/br/ufpb/iged/interpretador/principal/StackFrame.java b/src/br/ufpb/iged/interpretador/principal/StackFrame.java index 4e615d2..d5921ea 100644 --- a/src/br/ufpb/iged/interpretador/principal/StackFrame.java +++ b/src/br/ufpb/iged/interpretador/principal/StackFrame.java @@ -12,10 +12,29 @@ public class StackFrame { public ProgramCounter pc; - public StackFrame(int tamanhoMemoriaLocal) { + private int nextParam; + + public StackFrame(int tamanhoMemoriaLocal, boolean estatico) { this.variaveis = new Object[tamanhoMemoriaLocal]; + if (estatico) + nextParam = 0; + else + nextParam = 1; + + } + + public void inserirValorParametro(Object valor) { + + variaveis[nextParam++] = valor; + + } + + public void inserirThis(Object valor) { + + variaveis[0] = valor; + } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java index 089fa8c..3653897 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -2,6 +2,8 @@ import java.util.*; +import br.ufpb.iged.interpretador.principal.Referencia; + public class SimboloClasse extends SimboloComEscopo implements Tipo { /** This is the superclass not escopoEnvolvente field. We still record * the enclosing Escopo so we can push in and pop out of class defs. @@ -13,6 +15,10 @@ public class SimboloClasse extends SimboloComEscopo implements Tipo { protected List constantPool = new ArrayList (); + protected List methodArea = new ArrayList(); + + private Object[] fields; + protected int proximoElementoConstPool = 0; public SimboloClasse(String nome, Escopo escopoEnvolvente, SimboloClasse superClasse) { @@ -73,13 +79,67 @@ public boolean possuiMetodo(String assinatura, String nome) { return false; } + + public void alocarMemoriaFields() { + + fields = new Object[constantPool.size()]; + + int i; + + for (i = 0; i < constantPool.size(); i++) { + + String nomeTipo = constantPool.get(i).getTipo().obterNome(); + + if(nomeTipo.equals("I")) + + fields[i] = new Integer(0); + + else if (nomeTipo.startsWith("L")) + + fields[i] = new Referencia(new Integer(0)); + + + } + + SimboloClasse parent = superClasse; + + while(parent != null) { + + List constantPoolParent = parent.getConstantPool(); + + fields = + Arrays.copyOf( + fields, fields.length + constantPoolParent.size()); + + int j; + + for (j = 0; j < constantPoolParent.size(); j++, i++) { + + String nomeTipo = constantPoolParent.get(j).getTipo().obterNome(); + + if(nomeTipo.equals("I")) + + fields[i] = new Integer(0); + + else if (nomeTipo.startsWith("L")) + + fields[i] = new Referencia(new Integer(0)); + + + } + + parent = parent.getSuperClasse(); + + } + + } public Map obterMembros() { return membros; } - + public String toString() { return "class "+nome+":{"+ stripBrackets(membros.keySet().toString())+"}"; @@ -107,6 +167,24 @@ public void setSuperClasse(SimboloClasse superClasse) { this.superClasse = superClasse; } + public Object[] getFields() { + return fields; + } + + public void setFields(Object[] fields) { + + this.fields = fields; + + } + + public List getMethodArea() { + return methodArea; + } + + public void setMethodArea(List methodArea) { + this.methodArea = methodArea; + } + } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index 3b6a0e7..a29a0e5 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -14,7 +14,7 @@ public class SimboloMetodo extends SimboloComEscopo{ private byte[] codigo = new byte[TAMANHO_INICIAL_MEMORIA_CODIGO]; private int tamanhoMemoriaLocal = 65536; - + public SimboloMetodo(String nome, Tipo tipoRet, Escopo parent) { super(nome, tipoRet, parent); setRetorno(""); @@ -32,6 +32,45 @@ public int obterTamanhoCodigo() { return codigo.length; + } + + public int contarParametros() { + + String assinatura = this.toString(); + + int indexAbrePar = assinatura.indexOf("("); + + int indexFechaPar = assinatura.indexOf(")"); + + String params = assinatura.substring(indexAbrePar + 1, indexFechaPar); + + if (params.equals("VOID")) + return 0; + + int contador = 0; + + contador += contarOcorrencias(params, 'I'); + contador += contarOcorrencias(params, 'L'); + + return contador; + + + } + + private int contarOcorrencias(String str, char ch) { + + int i, c; + + for (i = 0, c = 0; i < str.length(); i++) { + + if (str.charAt(i) == ch) + c++; + + } + + return c; + + } public String getRetorno() { diff --git a/src/br/ufpb/iged/interpretador/testes/Test.java b/src/br/ufpb/iged/interpretador/testes/Test.java index bd3759e..ef9ddbd 100755 --- a/src/br/ufpb/iged/interpretador/testes/Test.java +++ b/src/br/ufpb/iged/interpretador/testes/Test.java @@ -25,7 +25,7 @@ public static void main(String[] args) throws Exception { System.out.print(BytecodeAssembler.codigo[i] + " "); } - + } From e0a8fd9a09a97ce7ff9d0440d63aa57071096c6f Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Wed, 12 Sep 2012 01:34:57 -0300 Subject: [PATCH 66/79] commit --- .classpath | 15 +- .../principal/Interpretador$1.class | Bin 1637 -> 1637 bytes .../principal/Interpretador.class | Bin 16908 -> 6953 bytes .../interpretador/principal/ClassLoader.java | 22 +- .../principal/Interpretador.java | 1139 +---------------- .../principal/MaquinaVirtual.java | 1099 ++++++++++++++++ .../interpretador/testes/InstrucaoTest.java | 83 ++ 7 files changed, 1226 insertions(+), 1132 deletions(-) create mode 100644 src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java create mode 100644 src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java diff --git a/.classpath b/.classpath index 89a4f9a..86287dc 100755 --- a/.classpath +++ b/.classpath @@ -1,7 +1,8 @@ - - - - - - - + + + + + + + + diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class index 16d55052d739de3f8d39737d26184a324b12861c..225229f8e5934c9fc1ea4fe8f776738968b3d1a2 100644 GIT binary patch delta 43 zcmaFL^OR@9Zx%+Q$$wZ}7)>WTvIcWnGO#dMF|aY%OrFac&FaL!$KX8qFKY$>CDaS$ delta 43 zcmaFL^OR@9Zx%+Y$$wZ}7;PszvIcWHGO#c>F|aYXOrFac&FaO#$KXBrFKY$>Dhv!A diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 41aa4cb64ef62ccafc293d8dd857d1a1b2ea3e71..735a87b24db2ea41e0b4611ac60bba0ea2a62c7b 100644 GIT binary patch literal 6953 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 classes = assembler.getConstantPool(); + List classes = Interpretador.getAssembler().getConstantPool(); for(SimboloClasse classe: classes){ @@ -39,9 +31,9 @@ public SimboloClasse carregarClasse(String nome) throws ClassNotFoundException{ } - public SimboloClasse carregarClasse(int index) throws ClassNotFoundException { + public static SimboloClasse carregarClasse(int index) throws ClassNotFoundException { - SimboloClasse classe = assembler.getConstantPool().get(index); + SimboloClasse classe = Interpretador.getAssembler().getConstantPool().get(index); if (classe != null){ classe.alocarMemoriaFields(); @@ -52,9 +44,9 @@ public SimboloClasse carregarClasse(int index) throws ClassNotFoundException { } - public SimboloClasse carregarClasseMain() throws ClassNotFoundException{ + public static SimboloClasse carregarClasseMain() throws ClassNotFoundException{ - List classes = assembler.getConstantPool(); + List classes = Interpretador.getAssembler().getConstantPool(); for(SimboloClasse classe: classes){ diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 7a653f3..c3d4d56 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -36,24 +36,16 @@ import br.ufpb.iged.interpretador.parser.Ref; public class Interpretador { - - public static final int TAMANHO_PILHA = 100; - + private static final String DIRETORIO_FONTE = "./classes"; public static TabelaSimbolos tabelaSimbolos; private static StringBuffer entrada; - public List heap = new ArrayList(); - private static BytecodeAssembler assembler; - private static StackFrame[] pilha = new StackFrame[TAMANHO_PILHA]; - - private static int topoPilha = -1; - - private static ClassLoader loader; + private static MaquinaVirtual vm; public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { @@ -83,44 +75,9 @@ public static void main(String[] args) { carregar(); - //Interpretador interpretador = new Interpretador(); - - //interpretador.cpu(); - - //Para testes - //Simbolo classe = tabelaSimbolos.global.resolver("LTeste"); - //System.out.println("Classe adicionada:" + classe.nome); + vm = new MaquinaVirtual(); - /*SimboloClasse classe = (SimboloClasse) tabelaSimbolos.global.resolver("LClasse"); - SimboloMetodo kioeot = (SimboloMetodo) classe.resolver("kioeot"); - kioeot.exibirCodigo(); - - SimboloClasse principal = (SimboloClasse) tabelaSimbolos.global.resolver("LMain"); - SimboloMetodo main = (SimboloMetodo) principal.resolver("main"); - main.exibirCodigo(); - - SimboloClasse teste = (SimboloClasse) tabelaSimbolos.global.resolver("LTeste"); - SimboloMetodo init = (SimboloMetodo) teste.resolver(""); - init.exibirCodigo();*/ - - loader = new ClassLoader(assembler); - - try { - - SimboloClasse principal = loader.carregarClasseMain(); - SimboloMetodo main = (SimboloMetodo) principal.resolver("main"); - - pilha[++topoPilha] = new StackFrame(main.getTamanhoMemoriaLocal(), true); - - pilha[topoPilha].pc = new ProgramCounter(main); - - Interpretador interpretador = new Interpretador(); - - interpretador.cpu(); - - } catch (ClassNotFoundException e) { - System.out.println(e.getMessage()); - } + executarMain(); } catch (IOException ioe) { @@ -138,9 +95,23 @@ public static void main(String[] args) { System.out.println(aime.getMessage()); + } catch (ClassNotFoundException e) { + + System.out.println(e.getMessage()); + } + } + + public static void executarMain() throws ClassNotFoundException { + + SimboloClasse principal = ClassLoader.carregarClasseMain(); + SimboloMetodo main = (SimboloMetodo) principal.resolver("main"); + + vm.iniciarNovoMetodo(main, true); + vm.cpu(); + } public static void carregar() @@ -171,7 +142,7 @@ public static void carregar() tabelaSimbolos = new TabelaSimbolos(); - assembler = carregarClasses(); + setAssembler(carregarClasses()); } @@ -200,1072 +171,20 @@ public static BytecodeAssembler carregarClasses() throws RecognitionException, L } - protected void cpu() throws ClassNotFoundException { - - int op1, op2; - - short opcode; - - boolean desvio; - - Referencia referencia; - - SimboloClasse simboloClasse; - - SimboloMetodo simboloMetodo; - - int tamanhoCodigo; - - do{ - - StackFrame frameAtual = pilha[topoPilha]; - - tamanhoCodigo = frameAtual.pc.getSimboloMetodo().obterTamanhoCodigo(); - - while (frameAtual.pc.getInstrucao() < tamanhoCodigo) { - - desvio = false; - - opcode = frameAtual.pc.obterOpcode(); - - if (opcode < 0) - - opcode = valorEmByte(opcode); - - switch (opcode) { - - // operaçőes de pilha - - case Definicao.NOP: - ; - break; - - case Definicao.POP: - frameAtual.sp-- ; - break; - - case Definicao.POP2: - frameAtual.sp -= 2 ; - break; - - case Definicao.DUP: { - - Referencia ref = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = ref; - - } - ; - break; - - // operaçőes aritméticas - - case Definicao.INEG: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.pilhaOperandos[frameAtual.sp] = 0 - op1; - - }; - break; - - case Definicao.IADD: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - frameAtual.pilhaOperandos[frameAtual.sp] = op1 + op2; - - } - ; - break; - - case Definicao.ISUB: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - frameAtual.pilhaOperandos[frameAtual.sp] = op1 - op2; - - } - ; - break; - - case Definicao.IMUL: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - frameAtual.pilhaOperandos[frameAtual.sp] = op1 * op2; - - } - ; - break; - - case Definicao.IDIV: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - frameAtual.pilhaOperandos[frameAtual.sp] = op1 / op2; - - } - ; - break; - - case Definicao.IREM: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - frameAtual.pilhaOperandos[frameAtual.sp] = op1 % op2; - - } - ; - break; - - case Definicao.IINC: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.pilhaOperandos[frameAtual.sp] = ++op1; - - } - ; - break; - - // operaçőes de empilhamento de constantes - - case Definicao.ICONST0: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - } - ; - break; - - case Definicao.ICONST1: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = 1; - - } - ; - break; - - case Definicao.ICONST2: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = 2; - - } - ; - break; - - case Definicao.ICONST3: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = 3; - - } - ; - break; - - case Definicao.ICONST4: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = 4; - - } - ; - break; - - case Definicao.ICONST5: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = 5; - - } - ; - break; - - case Definicao.ICONSTM1: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = -1; - - } - ; - break; - - case Definicao.ACONSTNULL: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = new Referencia(null); - - } - ; - break; - - case Definicao.LDC: { - - frameAtual.sp++; - - op1 = frameAtual.pc.obterOperandoInteiro(); - - frameAtual.pilhaOperandos[frameAtual.sp] = op1; - - } - ; - break; - - // operaçőes de load - - case Definicao.ILOAD0: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[0]; - - } - ; - break; - - case Definicao.ILOAD1: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[1]; - - } - ; - break; - - case Definicao.ILOAD2: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[2]; - - } - ; - break; - - case Definicao.ILOAD3: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[3]; - - } - ; - break; - - case Definicao.ILOAD: { - - frameAtual.sp++; - - op1 = frameAtual.pc.obterOperandoInteiro(); - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[op1]; - - } - ; - break; - - case Definicao.ALOAD0: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[0]; - - } - ; - break; - - case Definicao.ALOAD1: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[1]; - - } - ; - break; - - case Definicao.ALOAD2: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[2]; - - } - ; - break; - - case Definicao.ALOAD3: { - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[3]; - - } - ; - break; - - case Definicao.ALOAD: { - - frameAtual.sp++; - - op1 = frameAtual.pc.obterOperandoInteiro(); - - frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[op1]; - - } - ; - break; - - - // operaçőes de store - - case Definicao.ISTORE0: { - - frameAtual.variaveis[0] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ISTORE1: { - - frameAtual.variaveis[1] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ISTORE2: { - - frameAtual.variaveis[2] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ISTORE3: { - - frameAtual.variaveis[3] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ISTORE: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - frameAtual.variaveis[op1] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ASTORE0: { - - frameAtual.variaveis[0] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ASTORE1: { - - frameAtual.variaveis[1] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ASTORE2: { - - frameAtual.variaveis[2] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ASTORE3: { - - frameAtual.variaveis[3] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.ASTORE: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - frameAtual.variaveis[op1] = frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - } - ; - break; - - // operaçőes lógicas - - case Definicao.IAND: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + public static BytecodeAssembler getAssembler() { + return assembler; + } - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - op1 = op1 & op2; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.IOR: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - op1 = op1 | op2; - - frameAtual.sp--; - - } - ; - break; - - case Definicao.IXOR: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - op1 = op1 ^ op2; - - frameAtual.sp--; - - } - ; - break; - - // operaçőes de desvio condicional - - case Definicao.IFEQ: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - if (op1 == 0) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IFNE: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - if (op1 != 0) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IFLT: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - if (op1 > 0) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IFGE: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - if (op1 >= 0) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IFGT: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - if (op1 > 0) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IFLE: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - if (op1 <= 0) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IF_ICMPEQ: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - if (op1 == op2) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IF_ICMPNE: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - if (op1 != op2) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IF_ICMPLT: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - if (op1 < op2) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IF_ICMPGE: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - if (op1 >= op2) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IF_ICMPGT: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - if (op1 > op2) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - case Definicao.IF_ICMPLE: { - - op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp--; - - if (op1 <= op2) { - - desviar(frameAtual); - - desvio = true; - - } else { - - frameAtual.pilhaOperandos[frameAtual.sp] = 0; - - frameAtual.pc.pularOperando(); - - } - - } - ; - break; - - // desvio incondicional - case Definicao.GOTO: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - frameAtual.pc.jumpTo(op1); - - desvio = true; - - } - ; - break; - - //manipulaçăo de objetos - - case Definicao.NEW: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - simboloClasse = loader.carregarClasse(op1); - - Objeto objeto = new Objeto(simboloClasse); - - heap.add(objeto); - - frameAtual.pilhaOperandos[++frameAtual.sp] = new Referencia(heap.indexOf(objeto)); - - } - - ; - break; - - case Definicao.INVOKEVIRTUAL: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - op2 = frameAtual.pc.obterOperandoInteiro(); - - simboloClasse = loader.carregarClasse(op1); - - simboloMetodo = (SimboloMetodo) simboloClasse.getMethodArea().get(op2); - - pilha[++topoPilha] = new StackFrame(simboloMetodo.getTamanhoMemoriaLocal(), false); - - pilha[topoPilha].pc = new ProgramCounter(simboloMetodo); - - tamanhoCodigo = simboloMetodo.obterTamanhoCodigo(); - - int i; - - int qtdParams = simboloMetodo.contarParametros(); - - Object obj; - - for (i = 0; i < qtdParams; i++) { - obj = frameAtual.pilhaOperandos[frameAtual.sp - i]; - frameAtual.inserirValorParametro(obj); - - } - - frameAtual.inserirThis(frameAtual.pilhaOperandos[frameAtual.sp - i]); - } - - ; - break; - - case Definicao.INVOKESPECIAL: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - op2 = frameAtual.pc.obterOperandoInteiro(); - - simboloClasse = loader.carregarClasse(op1); - - simboloMetodo = (SimboloMetodo) simboloClasse.getMethodArea().get(op2); - - pilha[++topoPilha] = new StackFrame(simboloMetodo.getTamanhoMemoriaLocal(), false); - - pilha[topoPilha].pc = new ProgramCounter(simboloMetodo); - - tamanhoCodigo = simboloMetodo.obterTamanhoCodigo(); - - int i; - - int qtdParams = simboloMetodo.contarParametros(); - - Object obj; - - for (i = 0; i < qtdParams; i++) { - obj = frameAtual.pilhaOperandos[frameAtual.sp - i]; - frameAtual.inserirValorParametro(obj); - - } - - frameAtual.inserirThis(frameAtual.pilhaOperandos[frameAtual.sp - i]); - - } - - ; - break; - - case Definicao.GETFIELD: { - - referencia = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp]; - - Objeto objeto = heap.get(referencia.getEndereco()); - - op1 = frameAtual.pc.obterOperandoInteiro(); - - frameAtual.pilhaOperandos[frameAtual.sp] = null; - - frameAtual.pilhaOperandos[frameAtual.sp] = objeto.getMemoriaLocal()[op1]; - - } - - ; - break; - - case Definicao.PUTFIELD: { - - referencia = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp - 1]; - - Objeto objeto = heap.get(referencia.getEndereco()); - - op1 = frameAtual.pc.obterOperandoInteiro(); - - objeto.getMemoriaLocal()[op1] = frameAtual.pilhaOperandos[frameAtual.sp--]; - - } - - ; - break; - - //métodos e variáveis estáticas - - case Definicao.INVOKESTATIC: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - op2 = frameAtual.pc.obterOperandoInteiro(); - - simboloClasse = loader.carregarClasse(op1); - - simboloMetodo = (SimboloMetodo) simboloClasse.getMethodArea().get(op2); - - pilha[++topoPilha] = new StackFrame(simboloMetodo.getTamanhoMemoriaLocal(), true); - - pilha[topoPilha].pc = new ProgramCounter(simboloMetodo); - - tamanhoCodigo = simboloMetodo.obterTamanhoCodigo(); - - int i; - - int qtdParams = simboloMetodo.contarParametros(); - - Object obj; - - for (i = 0; i < qtdParams; i++) { - obj = frameAtual.pilhaOperandos[frameAtual.sp - i]; - frameAtual.inserirValorParametro(obj); - - } - - } - - ; - break; - - case Definicao.GETSTATIC: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - op2 = frameAtual.pc.obterOperandoInteiro(); - - simboloClasse = loader.carregarClasse(op1); - - frameAtual.pilhaOperandos[frameAtual.sp] = null; - - frameAtual.pilhaOperandos[frameAtual.sp] = simboloClasse.getFields()[op2]; - - } - - ; - break; - - case Definicao.PUTSTATIC: { - - op1 = frameAtual.pc.obterOperandoInteiro(); - - op2 = frameAtual.pc.obterOperandoInteiro(); - - simboloClasse = loader.carregarClasse(op1); - - simboloClasse.getFields()[op2] = frameAtual.pilhaOperandos[frameAtual.sp--]; - - } - - ; - break; - - } - - if (!desvio) - - frameAtual.pc.incrementar(); - - // Para testes - exibirTela(frameAtual); - } - - topoPilha--; - - } while(topoPilha > -1); + public static void setAssembler(BytecodeAssembler assembler) { + Interpretador.assembler = assembler; + } + public static MaquinaVirtual getVm() { + return vm; } - protected void desviar(StackFrame frame) { - - frame.pilhaOperandos[frame.sp] = 1; - - int op = frame.pc.obterOperandoInteiro(); - - frame.pc.jumpTo(op); - - } - - - protected short valorEmByte(short a) { - - return (short) (128 + (128 + a)); - - } - - // Usado somente para testes - protected void exibirTela(StackFrame frame) { - - int i; - - System.out.println("frameAtual.pc: " + frame.pc); - - System.out.println("frameAtual.sp: " + frame.sp); - - System.out.print("Memória do código: "); - - for (i = 0; i < frame.pc.getSimboloMetodo().getCodigo().length; i++) - - System.out.print(frame.pc.getSimboloMetodo().getCodigo()[i] + " "); - - System.out.print("\n"); - - System.out.print("Memória global das variáveis: "); - - for (i = 0; i < frame.variaveis.length; i++) - - System.out.print(frame.variaveis[i] + " "); - - System.out.print("\n"); - - System.out.print("Pilha: "); - - for (i = 0; i < frame.pilhaOperandos.length; i++) - - System.out.print(frame.pilhaOperandos[i] + " "); - - System.out.print("\n\n"); - - System.out - .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); - - Scanner in = new Scanner(System.in); - - in.next(); - - + public static void setVm(MaquinaVirtual vm) { + Interpretador.vm = vm; } diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java new file mode 100644 index 0000000..bbd22d8 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -0,0 +1,1099 @@ +package br.ufpb.iged.interpretador.principal; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; +import br.ufpb.iged.interpretador.excecoes.ClassNotFoundException; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; + +public class MaquinaVirtual { + + public static final int TAMANHO_PILHA = 100; + + private StackFrame[] pilha = new StackFrame[TAMANHO_PILHA]; + + private StackFrame frameAtual; + + private int topoPilha = -1; + + public List heap = new ArrayList(); + + private int op1, op2; + + private short opcode; + + private boolean desvio; + + private int tamanhoCodigo; + + + public void cpu() throws ClassNotFoundException { + + do{ + + while (frameAtual.pc.getInstrucao() < tamanhoCodigo) { + + executarInstrucao(); + + exibirTela(frameAtual); + + } + + topoPilha--; + + } while(topoPilha > -1); + + + } + + public void executarInstrucao() throws ClassNotFoundException { + + desvio = false; + + opcode = frameAtual.pc.obterOpcode(); + + if (opcode < 0) + + opcode = valorEmByte(opcode); + + switch (opcode) { + + // operaçőes de pilha + + case Definicao.NOP: + ; + break; + + case Definicao.POP: + frameAtual.sp-- ; + break; + + case Definicao.POP2: + frameAtual.sp -= 2 ; + break; + + case Definicao.DUP: { + + Referencia ref = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = ref; + + } + ; + break; + + // operaçőes aritméticas + + case Definicao.INEG: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.pilhaOperandos[frameAtual.sp] = 0 - op1; + + }; + break; + + case Definicao.IADD: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + frameAtual.pilhaOperandos[frameAtual.sp] = op1 + op2; + + } + ; + break; + + case Definicao.ISUB: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + frameAtual.pilhaOperandos[frameAtual.sp] = op1 - op2; + + } + ; + break; + + case Definicao.IMUL: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + frameAtual.pilhaOperandos[frameAtual.sp] = op1 * op2; + + } + ; + break; + + case Definicao.IDIV: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + frameAtual.pilhaOperandos[frameAtual.sp] = op1 / op2; + + } + ; + break; + + case Definicao.IREM: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + frameAtual.pilhaOperandos[frameAtual.sp] = op1 % op2; + + } + ; + break; + + case Definicao.IINC: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.pilhaOperandos[frameAtual.sp] = ++op1; + + } + ; + break; + + // operaçőes de empilhamento de constantes + + case Definicao.ICONST0: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + } + ; + break; + + case Definicao.ICONST1: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = 1; + + } + ; + break; + + case Definicao.ICONST2: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = 2; + + } + ; + break; + + case Definicao.ICONST3: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = 3; + + } + ; + break; + + case Definicao.ICONST4: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = 4; + + } + ; + break; + + case Definicao.ICONST5: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = 5; + + } + ; + break; + + case Definicao.ICONSTM1: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = -1; + + } + ; + break; + + case Definicao.ACONSTNULL: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = new Referencia(null); + + } + ; + break; + + case Definicao.LDC: { + + frameAtual.sp++; + + op1 = frameAtual.pc.obterOperandoInteiro(); + + frameAtual.pilhaOperandos[frameAtual.sp] = op1; + + } + ; + break; + + // operaçőes de load + + case Definicao.ILOAD0: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[0]; + + } + ; + break; + + case Definicao.ILOAD1: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[1]; + + } + ; + break; + + case Definicao.ILOAD2: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[2]; + + } + ; + break; + + case Definicao.ILOAD3: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[3]; + + } + ; + break; + + case Definicao.ILOAD: { + + frameAtual.sp++; + + op1 = frameAtual.pc.obterOperandoInteiro(); + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[op1]; + + } + ; + break; + + case Definicao.ALOAD0: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[0]; + + } + ; + break; + + case Definicao.ALOAD1: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[1]; + + } + ; + break; + + case Definicao.ALOAD2: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[2]; + + } + ; + break; + + case Definicao.ALOAD3: { + + frameAtual.sp++; + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[3]; + + } + ; + break; + + case Definicao.ALOAD: { + + frameAtual.sp++; + + op1 = frameAtual.pc.obterOperandoInteiro(); + + frameAtual.pilhaOperandos[frameAtual.sp] = frameAtual.variaveis[op1]; + + } + ; + break; + + + // operaçőes de store + + case Definicao.ISTORE0: { + + frameAtual.variaveis[0] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ISTORE1: { + + frameAtual.variaveis[1] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ISTORE2: { + + frameAtual.variaveis[2] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ISTORE3: { + + frameAtual.variaveis[3] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ISTORE: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + frameAtual.variaveis[op1] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ASTORE0: { + + frameAtual.variaveis[0] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ASTORE1: { + + frameAtual.variaveis[1] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ASTORE2: { + + frameAtual.variaveis[2] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ASTORE3: { + + frameAtual.variaveis[3] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.ASTORE: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + frameAtual.variaveis[op1] = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + } + ; + break; + + // operaçőes lógicas + + case Definicao.IAND: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + op1 = op1 & op2; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.IOR: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + op1 = op1 | op2; + + frameAtual.sp--; + + } + ; + break; + + case Definicao.IXOR: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + op1 = op1 ^ op2; + + frameAtual.sp--; + + } + ; + break; + + // operaçőes de desvio condicional + + case Definicao.IFEQ: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + if (op1 == 0) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IFNE: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + if (op1 != 0) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IFLT: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + if (op1 > 0) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IFGE: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + if (op1 >= 0) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IFGT: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + if (op1 > 0) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IFLE: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + if (op1 <= 0) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IF_ICMPEQ: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + if (op1 == op2) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IF_ICMPNE: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + if (op1 != op2) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IF_ICMPLT: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + if (op1 < op2) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IF_ICMPGE: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + if (op1 >= op2) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IF_ICMPGT: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + if (op1 > op2) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + case Definicao.IF_ICMPLE: { + + op1 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + op2 = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.sp--; + + if (op1 <= op2) { + + desviar(frameAtual); + + desvio = true; + + } else { + + frameAtual.pilhaOperandos[frameAtual.sp] = 0; + + frameAtual.pc.pularOperando(); + + } + + } + ; + break; + + // desvio incondicional + case Definicao.GOTO: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + frameAtual.pc.jumpTo(op1); + + desvio = true; + + } + ; + break; + + //manipulaçăo de objetos + + case Definicao.NEW: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + SimboloClasse simboloClasse = ClassLoader.carregarClasse(op1); + + Objeto objeto = new Objeto(simboloClasse); + + heap.add(objeto); + + frameAtual.pilhaOperandos[++frameAtual.sp] = new Referencia(heap.indexOf(objeto)); + + } + + ; + break; + + case Definicao.INVOKEVIRTUAL: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + op2 = frameAtual.pc.obterOperandoInteiro(); + + SimboloClasse simboloClasse = ClassLoader.carregarClasse(op1); + + SimboloMetodo simboloMetodo = (SimboloMetodo) simboloClasse.getMethodArea().get(op2); + + iniciarNovoMetodo(simboloMetodo, false); + } + + ; + break; + + case Definicao.INVOKESPECIAL: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + op2 = frameAtual.pc.obterOperandoInteiro(); + + SimboloClasse simboloClasse = ClassLoader.carregarClasse(op1); + + SimboloMetodo simboloMetodo = (SimboloMetodo) simboloClasse.getMethodArea().get(op2); + + iniciarNovoMetodo(simboloMetodo, false); + + } + + ; + break; + + case Definicao.GETFIELD: { + + Referencia referencia = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp]; + + Objeto objeto = heap.get(referencia.getEndereco()); + + op1 = frameAtual.pc.obterOperandoInteiro(); + + frameAtual.pilhaOperandos[frameAtual.sp] = null; + + frameAtual.pilhaOperandos[frameAtual.sp] = objeto.getMemoriaLocal()[op1]; + + } + + ; + break; + + case Definicao.PUTFIELD: { + + Referencia referencia = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp - 1]; + + Objeto objeto = heap.get(referencia.getEndereco()); + + op1 = frameAtual.pc.obterOperandoInteiro(); + + objeto.getMemoriaLocal()[op1] = frameAtual.pilhaOperandos[frameAtual.sp--]; + + } + + ; + break; + + //métodos e variáveis estáticas + + case Definicao.INVOKESTATIC: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + op2 = frameAtual.pc.obterOperandoInteiro(); + + SimboloClasse simboloClasse = ClassLoader.carregarClasse(op1); + + SimboloMetodo simboloMetodo = (SimboloMetodo) simboloClasse.getMethodArea().get(op2); + + iniciarNovoMetodo(simboloMetodo, true); + + } + + ; + break; + + case Definicao.GETSTATIC: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + op2 = frameAtual.pc.obterOperandoInteiro(); + + SimboloClasse simboloClasse = ClassLoader.carregarClasse(op1); + + frameAtual.pilhaOperandos[frameAtual.sp] = null; + + frameAtual.pilhaOperandos[frameAtual.sp] = simboloClasse.getFields()[op2]; + + } + + ; + break; + + case Definicao.PUTSTATIC: { + + op1 = frameAtual.pc.obterOperandoInteiro(); + + op2 = frameAtual.pc.obterOperandoInteiro(); + + SimboloClasse simboloClasse = ClassLoader.carregarClasse(op1); + + simboloClasse.getFields()[op2] = frameAtual.pilhaOperandos[frameAtual.sp--]; + + } + + ; + break; + + } + + if (!desvio) + + frameAtual.pc.incrementar(); + + } + + public void iniciarNovoMetodo(SimboloMetodo metodo, boolean estatico) { + + pilha[++topoPilha] = new StackFrame(metodo.getTamanhoMemoriaLocal(), estatico); + + pilha[topoPilha].pc = new ProgramCounter(metodo); + + tamanhoCodigo = metodo.obterTamanhoCodigo(); + + int i; + + int qtdParams = metodo.contarParametros(); + + Object obj; + + for (i = 0; i < qtdParams; i++) { + obj = frameAtual.pilhaOperandos[frameAtual.sp - i]; + frameAtual.inserirValorParametro(obj); + + } + + if (!estatico) + + frameAtual.inserirThis(frameAtual.pilhaOperandos[frameAtual.sp - i]); + + frameAtual = pilha[topoPilha]; + + tamanhoCodigo = frameAtual.pc.getSimboloMetodo().obterTamanhoCodigo(); + + } + + protected void desviar(StackFrame frame) { + + frame.pilhaOperandos[frame.sp] = 1; + + int op = frame.pc.obterOperandoInteiro(); + + frame.pc.jumpTo(op); + + } + + protected short valorEmByte(short a) { + + return (short) (128 + (128 + a)); + + } + + protected void exibirTela(StackFrame frame) { + + int i; + + System.out.println("frameAtual.pc: " + frame.pc); + + System.out.println("frameAtual.sp: " + frame.sp); + + System.out.print("Memória do código: "); + + for (i = 0; i < frame.pc.getSimboloMetodo().getCodigo().length; i++) + + System.out.print(frame.pc.getSimboloMetodo().getCodigo()[i] + " "); + + System.out.print("\n"); + + System.out.print("Memória global das variáveis: "); + + for (i = 0; i < frame.variaveis.length; i++) + + System.out.print(frame.variaveis[i] + " "); + + System.out.print("\n"); + + System.out.print("Pilha: "); + + for (i = 0; i < frame.pilhaOperandos.length; i++) + + System.out.print(frame.pilhaOperandos[i] + " "); + + System.out.print("\n\n"); + + System.out + .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); + + Scanner in = new Scanner(System.in); + + in.next(); + + + } + + public StackFrame getFrameAtual() { + return frameAtual; + } + + public void setFrameAtual(StackFrame frameAtual) { + this.frameAtual = frameAtual; + } + + public StackFrame[] getPilha() { + return pilha; + } + + public void setPilha(StackFrame[] pilha) { + this.pilha = pilha; + } + + public int getTopoPilha() { + return topoPilha; + } + + public void setTopoPilha(int topoPilha) { + this.topoPilha = topoPilha; + } + + public int getTamanhoCodigo() { + return tamanhoCodigo; + } + + public void setTamanhoCodigo(int tamanhoCodigo) { + this.tamanhoCodigo = tamanhoCodigo; + } + + +} diff --git a/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java b/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java new file mode 100644 index 0000000..a98f350 --- /dev/null +++ b/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java @@ -0,0 +1,83 @@ +package br.ufpb.iged.interpretador.testes; + +import static org.junit.Assert.*; + +import java.io.IOException; +import java.util.Scanner; + +import org.antlr.runtime.RecognitionException; +import org.junit.Before; +import org.junit.Test; + +import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; +import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; +import br.ufpb.iged.interpretador.excecoes.ClassNotFoundException; +import br.ufpb.iged.interpretador.excecoes.LabelException; +import br.ufpb.iged.interpretador.principal.ClassLoader; +import br.ufpb.iged.interpretador.principal.Interpretador; +import br.ufpb.iged.interpretador.principal.MaquinaVirtual; +import br.ufpb.iged.interpretador.principal.Objeto; +import br.ufpb.iged.interpretador.principal.ProgramCounter; +import br.ufpb.iged.interpretador.principal.Referencia; +import br.ufpb.iged.interpretador.principal.StackFrame; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; + +public class InstrucaoTest { + + private MaquinaVirtual vm; + + @Before + public void setUp() { + + try { + + Interpretador.carregar(); + + Interpretador.setVm(new MaquinaVirtual()); + + vm = Interpretador.getVm(); + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (RecognitionException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (LabelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (AcessoIndevidoMemoriaException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + @Test + public void testarMetodoMain() throws ClassNotFoundException { + + SimboloClasse principal = ClassLoader.carregarClasseMain(); + + SimboloMetodo main = (SimboloMetodo) principal.resolver("main"); + + vm.iniciarNovoMetodo(main, true); + + vm.executarInstrucao(); + + //executar instruçőes + + vm.setTopoPilha(vm.getTopoPilha() - 1); + + } + + @Test + public void teste() throws ClassNotFoundException { + + vm.executarInstrucao(); + + } + + + +} From cb3556b22b555e8790bfe41485c7a37e35164fc8 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 17 Sep 2012 22:19:35 -0300 Subject: [PATCH 67/79] commit --- .../asm/BytecodeAssembler.class | Bin 6804 -> 6797 bytes .../bytecodeassembler/asm/LabelSymbol.class | Bin 2363 -> 0 bytes .../ufpb/iged/interpretador/gramaticas/Ref.g | 3 + .../iged/interpretador/parser/Ref$DFA1.class | Bin 1450 -> 1450 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 36257 -> 36350 bytes classes/Main.class | 36 ++- .../asm/BytecodeAssembler.java | 34 +-- .../ufpb/iged/interpretador/gramaticas/Ref.g | 3 + .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 2 +- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 235 +++++++++--------- .../principal/MaquinaVirtual.java | 38 ++- .../classes/SimboloLabel.java} | 152 +++++------ .../symboltable/classes/SimboloMetodo.java | 5 + 15 files changed, 299 insertions(+), 213 deletions(-) delete mode 100644 bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.class rename src/br/ufpb/iged/interpretador/{bytecodeassembler/asm/LabelSymbol.java => symboltable/classes/SimboloLabel.java} (81%) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index af59b30a4e0f56f4375312b46ac9d86f28a98f5b..ba7fe867ff9473d11d89651c0a349e70b530565c 100644 GIT binary patch delta 1357 zcmZ8gTTE0}6kX@uVMeCIV}OAfpfCem9>ah`Q`*V^RxET<#U~D>whdQ0jUZA2)Q~1^ zZ9_~X+DK1{A68=}nl##$GAf`S`eA&8813`Vum14Sru}KtCL&#D24&*?*!SGM*IsMy zv-ka?{%HO5cHwbE2i}PeMSI>GZZ`)7to`PmX#cQ4x7;n7WT95DX0!5ynnP0yLaei) zSisq59x&IwKhoR3Hf#>>WuhHL@HtR|LQ*vL4)l&Rr$V62febvOPUZ5xRx5htL90jl z^p4bO1r7+5C{Mx8k)f!$KU5V_&{_xViKL(d>GFYIEPSyg{kYE8q-{hKAt|&MEUGNo zYHt@!pKCA1zhd|7f9lROq$*JoIRI$Ll=srN_Jw#-PsUXgbvg_OJRjHhC)BVL9ps@db|J!A)Txt5 z4UJ^!BDan==*@w)OcIL?LUv{@zNKo2z(xBKduyP6Bl6IUGQ5l$v{3gI+BUp~Fm}-H z#%AXLY%hY&x3;KIOp1IP*h{?9Uz#8ijK>qbPLV>*LzSc~eKY8lREk7((o4117Nv z$C*@-6LFm3Ju9-78I;QLoT`1sEWTrzrL4I}ATW=19i6MJ`Mh!91o!473p)ibzGBBy zWIY?7n>WGsWNs~(Vd;YSAY!=4YSgsWKsF-wcQ6UMNRR2RbE;%JvB2;ApZ=hC%H5EJ z`zwyimP_uUB<$bB{=-PXlZ^du1$)Soj9nu35hIs8EvvjjtYGu<%U5|t3Q~lXkuCXc F{{z2w=3xK; delta 1391 zcmZ8gYiyHM7=BK_u4Ui4OSi6DN7uDugRR}wWJK5)vW=}l%5B&&3}&U&u-RS0Dv=nS zF(XkTlI1{@K)4zWN(O9$Z80W>a0yD{^`HJBCjQWUN>qlCiysj>O2m#DPS7bUYFp zyZD6=S=kV%keb$Dx3vw945r#;qc)aZ?LZ|~3RKDoo2R=sbs!NNZmo^lQ6u0SiXDtK zzML9NHil#4`w66D6@n_mtI+Bk(2=981_$y?tI2@^`J+}Lg0qjb_cVTv+fx?NCO0fw zu7v7op|Vqth;})pd!IO%y|4eFIrCvf0dk1$0AN9`yq~uOCx?dJJa@sOEn$<~Qt;azKlf1-b6pKPo~DMiRMSSrcGQ!xg(^GH zMb2*QKp4-{ieodzum!JR8{VMzZSqbLNrPs5fKf2Y1}f_8#sv~ zoMJ^!vr}i;uk+}{MWbte6Yp`?x-f&+*tH^7W)^eQqk6Rr;t>LNd`$jx%(k$upek&d|uyj#=qm_eXp8U@=~tSVKZj>2YMcq)VO??>9QCtG!Gsa2Su`} zv^*pHXL@&+Haiu7`Idj-gZq`<)1_-O;(n*+r~k$M$+*Aht@dQb{Y_8OlZp3`aqN+t Z_H<<6Ez$FjXHA+{Xvh*)dV9*c{{=yR?@<5% diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.class deleted file mode 100644 index 80fb33ffa2e2101aecf38ebe3cc98e2d2836b418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2363 zcmbtUZBr9h7(F)$YzXUHP!tSm5fKt4R>W3=R6&v0C@M59P-{2I1y+;YbhAPE7yZ&#Q%-YT~!>K%!t6W+Z z=rS8O<*I4Piol`O_NH{CRhGOKpf+8znk_P%?GUwV!CbQpx9KqKSwC#(z+{L>o)Xuj zlbhnL&PmfU-6?@1BcT%k)zKn_%us#;Q5@EB5Jv=}BcsJG2prYXg@k(R)6wm}9oL~_ zpIRHx(Sc5Z0|m;s*Q}MKvuMyjMcytO)uQ2;>N{ABx$7o{O%?u6E-0t>Ju32}#RM4* zDgK8Pw_zO`;#Bay!^{5ZQ5|Vy1bUdO-SqewpeZ8+Wg>&z2<%&Mjq=mGM%~k+A-kt2 zd^b|dbd=93?*2jmlf@dI`y%RE4V6#&& z$5>!?bwj?*ohEmTtV}DB7ciyc6I>UFo2+?*Wuy!o4b@IQSkHB18aFk}Fnu0NPr%Nu zj$4>jB`=?o(cvA0P(S39k~tlD+)>diw`f$GtOeFmK7j)6X}Bve{hyOR9kl0-o%Yl* zkNd1T*(f`5LpsVx)3KQO2|VU3s~gZy3x4jaV8J8T}*YlKxAc_U1`^?N@LN! zZ@A@kfo|2Z?XTXwCA?Yp%UA=AkGr;??zf!?dMb{u1XzDxv;KAy?r%;v&1ywDag^AY zD~?=kTub0FhE%Skjum{VKG$@t!{iC0UY8a}#QFEsagaqX2YbMCaXjUed8Clo*JH4B z*r?Nu4V9C5j-cT%-cC)uJ00R+y@=}y$W@e@0x9;zI|l<*?9P~y!~$Nhn@(BInra*z z3=PvUWe7fCi$*!0JG}p$d@8@<-Y+MP_seW{%!fSCQ~vQbXmuLEzT}Q-w0&Cz!GBo@?RS z)z}O4_r-p}4T0AfZ{hY-W`Io2yu_z!`GLR>Z~jtTVj;h-5GqH_ljL%P>LzgsGai!gC@1-bSJ{ek9O7>bGv8$QjNcJF{}(5j?>GPe diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index 8b9f321..ded34a0 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -17,6 +17,7 @@ options { import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloLabel; } @members { @@ -183,6 +184,7 @@ entraNoConstrutor escopoAtual = (SimboloMetodo)$INIT.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; + BytecodeAssembler.labels = new HashMap(); } ; @@ -193,6 +195,7 @@ entraNoMetodo escopoAtual = (SimboloMetodo)$ID.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; + BytecodeAssembler.labels = new HashMap(); } ; diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 86045fe944e4e3effda66d9455dc0fc250dfda2f..3140b4e71d52fbaf6e389d6bdfe676fcba6a4091 100644 GIT binary patch delta 66 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 delta 4502 zcma)<33yJ|*2n*A?S1yyA*P!ef|zTLMnY>UR}~d1jWNbnBt+dxOH47mBq1b0IEErr z)l^f5SEHp>N|n%7TlBVuDy^a@MGaN%%3J!h{l4${?(-ziI&aQd|Nrm5*E##VxwDvG zUd$y6?rhlxAWAQG!Gs6B)~3Q6^`aYk`3)1OpI0HWU9ChyXqUu6&8l=AFl1OlauxY` zE-@uJA-O?=233lvGJ0^ZPSQiXX^~aT&|v*9{hYTkvYbv1*3Wwdk=4xbU_C;oct1y0 zqfuVzs9H4Edo-#7P4s$2RVp?)SoKx?2sFUz3@;<9R>|qXYNRS3r0(eKV4b69cw3`t z2h9prp*ok)*ehB2fjNyLj2Eou>UsW$8>NK!%ELtkMJTVd9ifWa6jjQOQDyB|6=qXa zbvsVgvEx;QouD4E6IDy=Q*G@e)yYm)U2U4`ZPV2No1v2I6qRhJs!=vmO|a8chMlgm zZI+s2v(-YIqn6njYPFrIHriS0Et{*}wX@YuJ4Y4xtfxM+bJf4?JoSy8uTI+q>Vkby zU9}6<4FUSq=4oY@=%RM14zVxk3U-;UZeP~*>`EPBSLsLWYTd%F(H*45+V^#W-L6O5 z9XiW?pqJR4`gOZY@3bH4!*;hmYd_Mr?H;Fu-Ro4d1x{nT&+$EB_d9*;$IdYOi8I-L z>ddtVoYnR-XN&#Z`PhEpoUjL-EB25v_OJ=HUz+;%-=?ko%EZ~P%}{&9OteSM0(;D? zwa3j)`;9qlPnfgzTXWlJnnc1##}Efx_i)k7@L3)Ebzuf z$IwD=UvzV?Ai9iKv14Sh6>zW;MX(Abu-fa>aR9CJ-s^a|^&7C*gqrZ9HuBLFZ{rDU zLoD7yS8PW-K0q>dAsruKI`&`zc4HCtVHx&gJqqv|KJow5sRcdyxyT$6nS&zprO13G zGDk5SN05T!(tZNDIEDH64l8gHtMLOi;0)fuX}pVbUQ*|us$LYh%hG)bb#O%#uAx1y zBN{i*TWUYt@{fs$b9@?#9F!n~F;oOTDvER}hFmI+#Z(&0sSH+8Iru3Q+o%dYq^j6U z)p3|=;9IJPGgKevsR3@%L!{|pDoT$~32I6esTtLx*3^I=qeyz3T2WhyrcM+~Pf~Y^ zp?G?Vo}-?W;-fekL%nGV^`Tt(^8y-3iz$)T&>-^5C0l41ZKLODAH6__<;r6;mcFHN zbdko>O-g4_25Xwir6`jt(oC*Sv$z(`=0-G!ThT&pM~gU`^0+50;dolXLue&GN2@uN z*6GAPI8P>DlPoh#yDu7q|RhW1jV=+IBRoon}@}pSGE%6$+!rR=|UnZ`x@^u!A7-;T} zFz$&cjzbLhK`i%0KkknNej3m70F2^zq;UeKb0X&PV3AD1YJL`*cqsDu1?=IG_?AcG zI**|cS2pkV-&<^Q$+ql!9vP2-z-L@-KsE7Dmp#G>#VO6fG7^qtnLY8J>71)FI8ROGS5zjiQq%ceHG>bSS^T5Q6}&krOf43yrK+WRNj;;MsiEp+ zH9{>H%r$D9dR6%*skLgldYz96@gUhEWQq6`eKBI-hs1uIHLO$o>k*eTpd%#Wpz%7dJ@Y2hA`JF zo6xsr<;Pr=S{$X+TR|XI1BGhZmEA^LaZv<`Az-6R#mlEi0=Disf*1{PU)))*3)Oa3NSUH)e2Wl3d3DmQECs6OI@`Y7ZP!WOJP_+xx_A0xu z-kaq{)RUEYN8q-|YHUZC`T$XCCt}oxi1(>INKpGQSncQf>Qio_KIi7@Yi_CAa%

~qou+&`UHLL~hMK9f)GVE?=IR`^M9=xtJeU44 z&%8h8xk&d9%rimN(of5DllO6TiA`TE(v{9#zWe!*M)Y-H7!5UO8B4ZR%U z`W3X)E6_!+MOVEJae6%l=r_Gv&!*HI`QHn^FM>Nn@Bx;U7U7+OOEk&yim4i>hDhtF6eRIiR9*9xnb9-&?vD( z39wTV+9?I<pDH6pfwoXya5w52q4_I8`v(sfH}423~Y(Vx3bPJDhsh@6^X}ClV)| zDDi0|KF$8_<3EvHi-O1hHCSSYHsbfV__Ymav=NhUx*U`kefp*R< z^m1-vxN`^7oV%EB2(KE29mc_z#^8Hnal;g$;-(mdnGzIXN>MxW0QEIxX|O3rc_x%L zo67W#sY36Ys*Qt9iN95dF zJfF8MJJbvDT?o$;&E+U>Rv^NxL`$<8vF23_HtQw+223)3Og5V^)x3pSW~)DZ(t{Mf zOIiv9W4~a0EEt~(#%F?YP%sY3L#{dHEzAC=_x|K}ZC3qFIxAn#^h#vL zHZyV~8M%?n6@-~oy61Y|QuzNSCIq zMdC4N_X&BeMC-i^gbx2tgU5RRV0(N8$~3&+#Kk@!1@7m;4y>p1mq zqQgWqSwu&Q=x7lgBciDyI$lI4is&Q}O&8G&5zP|OY!S^7(K&w-J(Kx;_+rs{S@OLi z`Bq52Rg!Ow7(+AmA{6=}aJ?Y~I-4Qc;X+HYgBWu#e!OskP= zi};si&!%1>U|SyARzQTUgh*Qjjcs*2Vjn~^TN^EGU9__G(Zx2vKpTz(8-YQ#5hmFt z$g}dL-nPR*+Zo^37+kR3anbg`726ZHZ9gw-Mpc^ct)J1n>;k!uS-+?kN-YB7OCY@n F_z%Y7k6-`* diff --git a/classes/Main.class b/classes/Main.class index 0b1a3dc..e545456 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -53,7 +53,12 @@ L2: ineg isub ldc -26 if_icmplt L2 - ldc 23 + ldc 5 + iconst_3 + iconst_2 + invokestatic Main/uisos(III)I + ldc 11 + iadd ldc -23 iload 5 iadd @@ -153,4 +158,33 @@ L2: ineg istore 20 return .end method +.method static uisos(III)I +.limit locals 100 + ldc 5 + iconst_2 + imul + ldc 9 + if_icmpgt L2 +L1: ldc 6 + iconst_3 + idiv + iload 4 + ifeq L3 +L2: iconst_3 + iconst_1 + iadd + istore_3 + iload_0 + iload_1 + isub + istore 4 + iload_2 + if_icmpeq L1 +L3: ldc 8 + iconst_3 + imul + iload 4 + idiv + ireturn +.end method .end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index f21493d..186cabe 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -12,6 +12,7 @@ import br.ufpb.iged.interpretador.parser.AssemblerParser; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.LabelException; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloLabel; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; @@ -23,11 +24,12 @@ public class BytecodeAssembler extends AssemblerParser{ protected Map opcodesInstrucoes = new HashMap(); - protected Map labels = - new HashMap(); protected Map enderecosMap = new HashMap(); + public static Map labels = + new HashMap(); + protected List constantPool = new ArrayList(); public static int ip = 0; @@ -147,33 +149,33 @@ public void escreverOperando(Token token) throws LabelException { escreverInteiro(codigo, ip, valor); } + + public void definirLabel(Token id) throws LabelException { - public void definirLabel(Token id) throws LabelException { - - LabelSymbol label = labels.get(id.getText()); + SimboloLabel label = labels.get(id.getText()); - if (label != null) - throw new LabelException("Label duplicado"); + if (label != null) + throw new LabelException("Label duplicado"); - label = new LabelSymbol(id.getText(), ip); + label = new SimboloLabel(id.getText(), ip); - labels.put(id.getText(), label); + labels.put(id.getText(), label); - } + } - protected int obterEndereco(String id) throws LabelException { + protected int obterEndereco(String id) throws LabelException { - LabelSymbol label = labels.get(id); + SimboloLabel label = labels.get(id); - if (label == null) + if (label == null) - throw new LabelException("O label referido năo existe"); + throw new LabelException("O label referido năo existe"); - return label.address; + return label.address; - } + } protected static void verificarAumentoTamanhoMemoria(int indice) { diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 8b9f321..ded34a0 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -17,6 +17,7 @@ options { import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; + import br.ufpb.iged.interpretador.symboltable.classes.SimboloLabel; } @members { @@ -183,6 +184,7 @@ entraNoConstrutor escopoAtual = (SimboloMetodo)$INIT.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; + BytecodeAssembler.labels = new HashMap(); } ; @@ -193,6 +195,7 @@ entraNoMetodo escopoAtual = (SimboloMetodo)$ID.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; + BytecodeAssembler.labels = new HashMap(); } ; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index ccd3266..ef7ba10 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-10 19:01:19 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-17 19:14:28 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 818c558..268e916 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-10 19:01:18 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-17 19:14:27 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index ac19273..16dbca6 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-10 19:01:20 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-17 19:14:28 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 6bcc996..f70271f 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-10 19:01:19 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-17 19:14:28 package br.ufpb.iged.interpretador.parser; @@ -11,6 +11,7 @@ import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloLabel; import org.antlr.runtime.*; @@ -253,15 +254,15 @@ private void newClass(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:120:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) int alt1=22; alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:9: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown61); entraNaClasse(); @@ -272,7 +273,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: entraNoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: entraNoMetodo { pushFollow(FOLLOW_entraNoMetodo_in_topdown71); entraNoMetodo(); @@ -283,7 +284,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: entraNoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: entraNoConstrutor { pushFollow(FOLLOW_entraNoConstrutor_in_topdown81); entraNoConstrutor(); @@ -294,7 +295,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown91); declaracaoVariavel(); @@ -305,7 +306,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: getfield { pushFollow(FOLLOW_getfield_in_topdown101); getfield(); @@ -316,7 +317,7 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: getstatic + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: getstatic { pushFollow(FOLLOW_getstatic_in_topdown111); getstatic(); @@ -327,7 +328,7 @@ public final void topdown() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: putfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: putfield { pushFollow(FOLLOW_putfield_in_topdown121); putfield(); @@ -338,7 +339,7 @@ public final void topdown() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: putstatic + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: putstatic { pushFollow(FOLLOW_putstatic_in_topdown131); putstatic(); @@ -349,7 +350,7 @@ public final void topdown() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: invokespecial + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: invokespecial { pushFollow(FOLLOW_invokespecial_in_topdown141); invokespecial(); @@ -360,7 +361,7 @@ public final void topdown() throws RecognitionException { } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: invokestatic + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:9: invokestatic { pushFollow(FOLLOW_invokestatic_in_topdown151); invokestatic(); @@ -371,7 +372,7 @@ public final void topdown() throws RecognitionException { } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:9: invokevirtual + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:9: invokevirtual { pushFollow(FOLLOW_invokevirtual_in_topdown161); invokevirtual(); @@ -382,7 +383,7 @@ public final void topdown() throws RecognitionException { } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:9: novaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:9: novaClasse { pushFollow(FOLLOW_novaClasse_in_topdown171); novaClasse(); @@ -393,7 +394,7 @@ public final void topdown() throws RecognitionException { } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:9: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:9: aritmetica { pushFollow(FOLLOW_aritmetica_in_topdown181); aritmetica(); @@ -404,7 +405,7 @@ public final void topdown() throws RecognitionException { } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:9: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:9: load { pushFollow(FOLLOW_load_in_topdown191); load(); @@ -415,7 +416,7 @@ public final void topdown() throws RecognitionException { } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:9: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:9: loadint { pushFollow(FOLLOW_loadint_in_topdown201); loadint(); @@ -426,7 +427,7 @@ public final void topdown() throws RecognitionException { } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:9: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:9: store { pushFollow(FOLLOW_store_in_topdown211); store(); @@ -437,7 +438,7 @@ public final void topdown() throws RecognitionException { } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:9: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:138:9: storeint { pushFollow(FOLLOW_storeint_in_topdown221); storeint(); @@ -448,7 +449,7 @@ public final void topdown() throws RecognitionException { } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:138:9: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:139:9: desvio { pushFollow(FOLLOW_desvio_in_topdown231); desvio(); @@ -459,7 +460,7 @@ public final void topdown() throws RecognitionException { } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:139:9: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:9: logica { pushFollow(FOLLOW_logica_in_topdown241); logica(); @@ -470,7 +471,7 @@ public final void topdown() throws RecognitionException { } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:9: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:9: pilha { pushFollow(FOLLOW_pilha_in_topdown251); pilha(); @@ -481,7 +482,7 @@ public final void topdown() throws RecognitionException { } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:9: label + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:9: label { pushFollow(FOLLOW_label_in_topdown261); label(); @@ -492,7 +493,7 @@ public final void topdown() throws RecognitionException { } break; case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:9: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:9: retorno { pushFollow(FOLLOW_retorno_in_topdown271); retorno(); @@ -523,10 +524,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:145:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:3: ( saiDoMetodo | saiDoConstrutor ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:3: ( saiDoMetodo | saiDoConstrutor ) int alt2=2; int LA2_0 = input.LA(1); @@ -546,7 +547,7 @@ else if ( (LA2_0==CONSTR_DECL) ) { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:7: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:7: saiDoMetodo { pushFollow(FOLLOW_saiDoMetodo_in_bottomup292); saiDoMetodo(); @@ -557,7 +558,7 @@ else if ( (LA2_0==CONSTR_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:7: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:148:7: saiDoConstrutor { pushFollow(FOLLOW_saiDoConstrutor_in_bottomup300); saiDoConstrutor(); @@ -585,21 +586,21 @@ else if ( (LA2_0==CONSTR_DECL) ) { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:151:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { match(input,33,FOLLOW_33_in_entraNaClasse323); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse327); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -624,7 +625,7 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:27: ^( EXTENDS sup= TIPO_REF ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse331); if (state.failed) return ; @@ -680,14 +681,14 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:171:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:172:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:172:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:172:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:173:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:173:7: ^( FIELD_DECL ID tip= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel373); if (state.failed) return ; @@ -724,21 +725,21 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor410); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor412); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:23: ( . )+ int cnt4=0; loop4: do { @@ -877,7 +878,7 @@ else if ( (true) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:23: . { matchAny(input); if (state.failed) return ; @@ -895,7 +896,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:26: ( ^( LIMIT lim= INTEIRO ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -904,7 +905,7 @@ else if ( (true) ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:27: ^( LIMIT lim= INTEIRO ) { match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor419); if (state.failed) return ; @@ -928,6 +929,7 @@ else if ( (true) ) { escopoAtual = (SimboloMetodo)INIT2.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; + BytecodeAssembler.labels = new HashMap(); } } @@ -948,14 +950,14 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:191:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo446); if (state.failed) return ; @@ -964,7 +966,7 @@ public final void entraNoMetodo() throws RecognitionException { matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:23: ( . )+ int cnt6=0; loop6: do { @@ -1103,7 +1105,7 @@ else if ( (true) ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:23: . { matchAny(input); if (state.failed) return ; @@ -1121,7 +1123,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:26: ( ^( LIMIT lim= INTEIRO ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -1130,7 +1132,7 @@ else if ( (true) ) { } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:27: ^( LIMIT lim= INTEIRO ) { match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo457); if (state.failed) return ; @@ -1154,6 +1156,7 @@ else if ( (true) ) { escopoAtual = (SimboloMetodo)ID3.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; + BytecodeAssembler.labels = new HashMap(); } } @@ -1174,11 +1177,11 @@ else if ( (true) ) { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:202:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:200:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:200:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:5: METHOD_DECL { match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo481); if (state.failed) return ; @@ -1206,11 +1209,11 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:208:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:211:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:209:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:209:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:212:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:212:5: CONSTR_DECL { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor497); if (state.failed) return ; @@ -1238,15 +1241,15 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:217:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; public final void getfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:218:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:218:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:7: ^( 'getfield' classe= . . campo= . tipo= . ) { match(input,55,FOLLOW_55_in_getfield519); if (state.failed) return ; @@ -1290,15 +1293,15 @@ public final void getfield() throws RecognitionException { // $ANTLR start "getstatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:224:1: getstatic : ^( 'getstatic' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:1: getstatic : ^( 'getstatic' classe= . . campo= . tipo= . ) ; public final void getstatic() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:225:5: ( ^( 'getstatic' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:225:7: ^( 'getstatic' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:5: ( ^( 'getstatic' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:7: ^( 'getstatic' classe= . . campo= . tipo= . ) { match(input,56,FOLLOW_56_in_getstatic568); if (state.failed) return ; @@ -1342,15 +1345,15 @@ public final void getstatic() throws RecognitionException { // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:231:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:234:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; public final void putfield() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:232:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:232:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:7: ^( 'putfield' classe= . . campo= . tipo= . ) { match(input,106,FOLLOW_106_in_putfield617); if (state.failed) return ; @@ -1394,15 +1397,15 @@ public final void putfield() throws RecognitionException { // $ANTLR start "putstatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:238:1: putstatic : ^( 'putstatic' classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:241:1: putstatic : ^( 'putstatic' classe= . . campo= . tipo= . ) ; public final void putstatic() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:239:5: ( ^( 'putstatic' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:239:7: ^( 'putstatic' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:5: ( ^( 'putstatic' classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:7: ^( 'putstatic' classe= . . campo= . tipo= . ) { match(input,107,FOLLOW_107_in_putstatic666); if (state.failed) return ; @@ -1446,15 +1449,15 @@ public final void putstatic() throws RecognitionException { // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:1: invokespecial : ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:1: invokespecial : ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) ; public final void invokespecial() throws RecognitionException { BytecodesAST classe=null; BytecodesAST nome=null; BytecodesAST a=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:246:5: ( ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:246:7: ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:5: ( ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:7: ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) { match(input,88,FOLLOW_88_in_invokespecial715); if (state.failed) return ; @@ -1511,7 +1514,7 @@ public final void invokespecial() throws RecognitionException { // $ANTLR start "invokestatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:253:1: invokestatic : ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:1: invokestatic : ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; public final void invokestatic() throws RecognitionException { BytecodesAST classe=null; BytecodesAST nome=null; @@ -1519,8 +1522,8 @@ public final void invokestatic() throws RecognitionException { BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:254:5: ( ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:254:7: ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:257:5: ( ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:257:7: ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) { match(input,89,FOLLOW_89_in_invokestatic772); if (state.failed) return ; @@ -1579,7 +1582,7 @@ public final void invokestatic() throws RecognitionException { // $ANTLR start "invokevirtual" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:261:1: invokevirtual : ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:264:1: invokevirtual : ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; public final void invokevirtual() throws RecognitionException { BytecodesAST classe=null; BytecodesAST nome=null; @@ -1587,8 +1590,8 @@ public final void invokevirtual() throws RecognitionException { BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:5: ( ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:7: ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:265:5: ( ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:265:7: ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) { match(input,90,FOLLOW_90_in_invokevirtual833); if (state.failed) return ; @@ -1647,13 +1650,13 @@ public final void invokevirtual() throws RecognitionException { // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:269:1: novaClasse : ^( 'new' classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:272:1: novaClasse : ^( 'new' classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:3: ( ^( 'new' classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:270:5: ^( 'new' classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:3: ( ^( 'new' classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:5: ^( 'new' classe= . ) { match(input,102,FOLLOW_102_in_novaClasse892); if (state.failed) return ; @@ -1687,13 +1690,13 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:276:1: aritmetica : ^( ARITMETICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:279:1: aritmetica : ^( ARITMETICA operacao= . ) ; public final void aritmetica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:277:7: ^( ARITMETICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:5: ( ^( ARITMETICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:7: ^( ARITMETICA operacao= . ) { match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica923); if (state.failed) return ; @@ -1727,13 +1730,13 @@ public final void aritmetica() throws RecognitionException { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:283:1: load : ^( LOAD operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:286:1: load : ^( LOAD operacao= . ) ; public final void load() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:284:5: ^( LOAD operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:3: ( ^( LOAD operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:5: ^( LOAD operacao= . ) { match(input,LOAD,FOLLOW_LOAD_in_load957); if (state.failed) return ; @@ -1767,14 +1770,14 @@ public final void load() throws RecognitionException { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:290:1: loadint : ^( LOAD operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:293:1: loadint : ^( LOAD operacao= . operando= . ) ; public final void loadint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:291:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:291:7: ^( LOAD operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:294:5: ( ^( LOAD operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:294:7: ^( LOAD operacao= . operando= . ) { match(input,LOAD,FOLLOW_LOAD_in_loadint986); if (state.failed) return ; @@ -1812,13 +1815,13 @@ public final void loadint() throws RecognitionException, LabelException { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:297:1: store : ^( STORE operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:300:1: store : ^( STORE operacao= . ) ; public final void store() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:298:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:298:6: ^( STORE operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:301:4: ( ^( STORE operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:301:6: ^( STORE operacao= . ) { match(input,STORE,FOLLOW_STORE_in_store1028); if (state.failed) return ; @@ -1852,14 +1855,14 @@ public final void store() throws RecognitionException { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:304:1: storeint : ^( STORE operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:307:1: storeint : ^( STORE operacao= . operando= . ) ; public final void storeint() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:305:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:305:7: ^( STORE operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:308:5: ( ^( STORE operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:308:7: ^( STORE operacao= . operando= . ) { match(input,STORE,FOLLOW_STORE_in_storeint1057); if (state.failed) return ; @@ -1897,14 +1900,14 @@ public final void storeint() throws RecognitionException, LabelException { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:311:1: desvio : ^( DESVIO operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:314:1: desvio : ^( DESVIO operacao= . operando= . ) ; public final void desvio() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:312:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:312:7: ^( DESVIO operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:315:5: ( ^( DESVIO operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:315:7: ^( DESVIO operacao= . operando= . ) { match(input,DESVIO,FOLLOW_DESVIO_in_desvio1098); if (state.failed) return ; @@ -1942,13 +1945,13 @@ public final void desvio() throws RecognitionException, LabelException { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:318:1: logica : ^( LOGICA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:321:1: logica : ^( LOGICA operacao= . ) ; public final void logica() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:319:7: ^( LOGICA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:322:5: ( ^( LOGICA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:322:7: ^( LOGICA operacao= . ) { match(input,LOGICA,FOLLOW_LOGICA_in_logica1139); if (state.failed) return ; @@ -1982,13 +1985,13 @@ public final void logica() throws RecognitionException { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:325:1: pilha : ^( PILHA operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:328:1: pilha : ^( PILHA operacao= . ) ; public final void pilha() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:326:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:326:6: ^( PILHA operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:329:4: ( ^( PILHA operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:329:6: ^( PILHA operacao= . ) { match(input,PILHA,FOLLOW_PILHA_in_pilha1173); if (state.failed) return ; @@ -2022,13 +2025,13 @@ public final void pilha() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:332:1: label : ^( LABEL operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:335:1: label : ^( LABEL operacao= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:333:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:333:6: ^( LABEL operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:336:4: ( ^( LABEL operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:336:6: ^( LABEL operacao= . ) { match(input,LABEL,FOLLOW_LABEL_in_label1201); if (state.failed) return ; @@ -2062,15 +2065,15 @@ public final void label() throws RecognitionException, LabelException { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:339:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:342:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; public final void retorno() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:340:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:340:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:343:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:343:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:340:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:343:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) int alt8=3; switch ( input.LA(1) ) { case 93: @@ -2099,21 +2102,21 @@ public final void retorno() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:340:8: operacao= 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:343:8: operacao= 'ireturn' { operacao=(BytecodesAST)match(input,93,FOLLOW_93_in_retorno1237); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:341:8: operacao= 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:344:8: operacao= 'areturn' { operacao=(BytecodesAST)match(input,48,FOLLOW_48_in_retorno1251); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:342:8: operacao= 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:345:8: operacao= 'return' { operacao=(BytecodesAST)match(input,108,FOLLOW_108_in_retorno1265); if (state.failed) return ; @@ -2231,7 +2234,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "120:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; + return "121:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; } } diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java index bbd22d8..9768686 100644 --- a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -42,8 +42,6 @@ public void cpu() throws ClassNotFoundException { } - topoPilha--; - } while(topoPilha > -1); @@ -964,6 +962,42 @@ public void executarInstrucao() throws ClassNotFoundException { } + ; + break; + + //retorno de métodos + case Definicao.RETURN: { + + frameAtual = pilha[--topoPilha]; + + } + + ; + break; + + case Definicao.IRETURN: { + + Integer valor = (Integer) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual = pilha[--topoPilha]; + + frameAtual.pilhaOperandos[frameAtual.sp] = valor; + + } + + ; + break; + + case Definicao.ARETURN: { + + Referencia valor = (Referencia) frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual = pilha[--topoPilha]; + + frameAtual.pilhaOperandos[frameAtual.sp] = valor; + + } + ; break; diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java similarity index 81% rename from src/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.java rename to src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java index e16c537..2b224d3 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/LabelSymbol.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java @@ -1,76 +1,78 @@ -/*** - * Excerpted from "Language Implementation Patterns", - * published by The Pragmatic Bookshelf. - * Copyrights apply to this code. It may not be used to create training material, - * courses, books, articles, and the like. Contact us if you are in doubt. - * We make no guarantees that this code is fit for any purpose. - * Visit http://www.pragmaticprogrammer.com/titles/tpdsl for more book information. - ***/ - -package br.ufpb.iged.interpretador.bytecodeassembler.asm; - -import java.util.*; - -public class LabelSymbol { - String name; - - /** Address in code memory */ - int address; - - /** Is this ref'd before def'd. */ - boolean isForwardRef = false; - - /** Set when we see actual ID: definition */ - boolean isDefined = true; - - /** List of operands in memory we need to update after seeing def */ - Vector forwardReferences = null; - - public LabelSymbol(String name) { - this.name = name; - } - - public LabelSymbol(String name, int address) { - this(name); - this.address = address; - } - - public LabelSymbol(String name, int address, boolean forward) { - this(name); - isForwardRef = forward; - if (forward) { - // if forward reference, then address is address to update - addForwardReference(address); - } else { - this.address = address; - } - } - - public void addForwardReference(int address) { - if (forwardReferences == null) { - forwardReferences = new Vector(); - } - forwardReferences.addElement(new Integer(address)); - } - - public void resolveForwardReferences(byte[] code) { - isForwardRef = false; - // need to patch up all references to this symbol - Vector opndsToPatch = forwardReferences; - for (int addrToPatch : opndsToPatch) { - /* - * System.out.println("updating operand at addr "+ - * addr+" to be "+getAddress()); - */ - BytecodeAssembler.escreverInteiro(code, addrToPatch, address); - } - } - - public String toString() { - String refs = ""; - if (forwardReferences != null) { - refs = "[refs=" + forwardReferences.toString() + "]"; - } - return name + "@" + address + refs; - } +/*** + * Excerpted from "Language Implementation Patterns", + * published by The Pragmatic Bookshelf. + * Copyrights apply to this code. It may not be used to create training material, + * courses, books, articles, and the like. Contact us if you are in doubt. + * We make no guarantees that this code is fit for any purpose. + * Visit http://www.pragmaticprogrammer.com/titles/tpdsl for more book information. + ***/ + +package br.ufpb.iged.interpretador.symboltable.classes; + +import java.util.*; + +import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; + +public class SimboloLabel { + String name; + + /** Address in code memory */ + public int address; + + /** Is this ref'd before def'd. */ + boolean isForwardRef = false; + + /** Set when we see actual ID: definition */ + boolean isDefined = true; + + /** List of operands in memory we need to update after seeing def */ + Vector forwardReferences = null; + + public SimboloLabel(String name) { + this.name = name; + } + + public SimboloLabel(String name, int address) { + this(name); + this.address = address; + } + + public SimboloLabel(String name, int address, boolean forward) { + this(name); + isForwardRef = forward; + if (forward) { + // if forward reference, then address is address to update + addForwardReference(address); + } else { + this.address = address; + } + } + + public void addForwardReference(int address) { + if (forwardReferences == null) { + forwardReferences = new Vector(); + } + forwardReferences.addElement(new Integer(address)); + } + + public void resolveForwardReferences(byte[] code) { + isForwardRef = false; + // need to patch up all references to this symbol + Vector opndsToPatch = forwardReferences; + for (int addrToPatch : opndsToPatch) { + /* + * System.out.println("updating operand at addr "+ + * addr+" to be "+getAddress()); + */ + BytecodeAssembler.escreverInteiro(code, addrToPatch, address); + } + } + + public String toString() { + String refs = ""; + if (forwardReferences != null) { + refs = "[refs=" + forwardReferences.toString() + "]"; + } + return name + "@" + address + refs; + } } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index a29a0e5..02b5989 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -1,8 +1,13 @@ package br.ufpb.iged.interpretador.symboltable.classes; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; +import org.antlr.runtime.Token; + +import br.ufpb.iged.interpretador.excecoes.LabelException; + public class SimboloMetodo extends SimboloComEscopo{ Map parametros = new LinkedHashMap(); From 45bd02641ad78e077f4f02993d8089b69c3f007c Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Tue, 18 Sep 2012 12:36:46 -0300 Subject: [PATCH 68/79] commit --- .../asm/BytecodeAssembler.class | Bin 6797 -> 6893 bytes .../bytecodeassembler/asm/Definicao.class | Bin 5085 -> 5090 bytes .../iged/interpretador/gramaticas/Assembler.g | 28 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 45 + .../ufpb/iged/interpretador/gramaticas/Ref.g | 180 +- .../interpretador/parser/Assembler.tokens | 182 +- .../parser/AssemblerLexer$DFA6.class | Bin 1960 -> 1962 bytes .../interpretador/parser/AssemblerLexer.class | Bin 31073 -> 31134 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 744 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 695 -> 695 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 710 bytes .../AssemblerParser$comando_return.class | Bin 677 -> 677 bytes ...semblerParser$definicaoClasse_return.class | Bin 701 -> 701 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../AssemblerParser$instrucao_return.class | Bin 683 -> 683 bytes .../parser/AssemblerParser$label_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 692 -> 692 bytes .../AssemblerParser$operacao_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../AssemblerParser$programa_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../AssemblerParser$superClasse_return.class | Bin 689 -> 689 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 84850 -> 85754 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 21153 -> 27693 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 182 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1450 -> 1311 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 36350 -> 27642 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 182 +- .../asm/BytecodeAssembler.java | 39 +- .../iged/interpretador/gramaticas/Assembler.g | 28 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 45 + .../ufpb/iged/interpretador/gramaticas/Ref.g | 180 +- .../interpretador/parser/Assembler.tokens | 182 +- .../interpretador/parser/AssemblerLexer.java | 1020 +++---- .../interpretador/parser/AssemblerParser.java | 2440 +++++++++-------- .../ufpb/iged/interpretador/parser/Def.java | 761 +++-- .../ufpb/iged/interpretador/parser/Def.tokens | 182 +- .../ufpb/iged/interpretador/parser/Ref.java | 1364 ++------- .../ufpb/iged/interpretador/parser/Ref.tokens | 182 +- .../symboltable/classes/SimboloLabel.java | 16 +- .../symboltable/classes/SimboloMetodo.java | 25 + 48 files changed, 3451 insertions(+), 3812 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index ba7fe867ff9473d11d89651c0a349e70b530565c..b46f237ce391c0685d00f923a36cb8acd3aa1b55 100644 GIT binary patch literal 6893 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 literal 6797 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 Kk3Zti$p1G=cte)} diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 2e7f9542b576dca70be1bca2b5d2dd28ee7d8a41..71069b2b5f38b04dc02d64af8fe7267962dea1a3 100644 GIT binary patch delta 2210 zcmYL}=X+CC9LImB%{b|Rb6ZO3qKrbJgYKd&;Np#1dDF)S`^FNJv|dehR>in@20MMaU z`yo$3&$tToOkGjnDKA&x*>H7VUp|g5P>{E=pHl7kkY}@Jn}YRJSW|a-Y&4Zjhk|hp zI~3%{;)w#7gk43j8}^L1d+VIL6ch$SaV#5*rK3>|`xFFh5hHCH?p2_(*s9@vmvHO> zm)bQv z6|bQRr%}Cu$_|F{_THj2n!ZlMJCsJ!xNq-K3fp5E-lvp|jA;0PQY$sKWV42^ImK`>-*SqkGg7Z2m`d3QJ((F$;q;dm;p6~2SsAU`DK!QJPGd#rpp zXwwQW$d0sYRgi-Yt%~p=1?3^BIk@$bsey4^#1;x|Ud>|`n( zjB2$!r$!TzkWFfZf+DG!oudJtZ7gzA0F-Jff;-^O@sqmI*GjMW#Pm6>z0U0rAdmml zJkYQOCU9rB0(j#{`0@0b^~Ygyz%zqiCEN2eu(N-_%dpqO;A6Pk%iw3Y$H$-;7bphY;^(SAyaHhGH|4Sz!b807)6>~dsZym(g{-|*INvk~w+VYqqj0;h-!ut#2nS5FaHnvg=@IS{ zE;d&RcMH!oeYk#l16PZ%%vHh{2$z}-!WRmcS+HM3kBD*$4v6R#QDMQ9h&3XrEI24) zt%w>6rbVnnaRV;9)`CM~E|QYP7919Fv52J>91(Geh-DUJL|iJO-h!hdE)%iRf*BIi zs&R@A7u7tysian2yNXX5z*7c~AUSKG1%DNKZ$n14WUCQNb)~UgKyf0O^1~SH48Shfom=g$ zxAzJt2}hENj5UzR#^Vz15#Tdf47W?TSAd+sHVFqD!m&dRbx3%?p^${b4s}X6;!u}_ zqj)FrXhh$M=eWL=eC~|9#(qeE+l(i}Q3;a*yi^Y0q^Amib3Rf4obs^(;EYcQ@R%7Z znT|<#O3z2N4tT~POnA;AjCj64_5g;wh_{wXrX;+KTZsjByoxHCMfEx=GaSX+dsA1L z?2QuM*41zp_w8L>Ma>Zj@9QcZ8Zm^Y2C#1mV+#8;SN{pYat8ocKF)L$*Ei)oT zEn+HLz(tsdql0EF9+jdFsSihIaH)V&Gcl6f6dN(qRyG`$Vp&0DQn84sRfB*4cg@bR z63;dfyV(aqGzH*JxGOg$n>?-h5g(m6C#Bo22cP!%`z!(pcf%+M*aF~ABH^E_M_qmj z#`;~8_z~PzoQEBK{ceIiE&>n1J~x4vV84ez65Qt{P~3M=GI8Vm%H~$Zy$`CHW*=QT zu4cOZgcGV%1@myMuV0mrIDw*^MS#RfRmJh8gb%A~#yNziRSn}@!beqY9&B8WQpAsA zS~sT|B%V|~+#e)-TCHWANBFE-$5=)X*RujIX;*2$f@2M1HE#U{sVq8f0;cW6E!ZQZk#>0z=&)Npu&Z3UQ zrv}`?yoC63Rbs#>@5)j#Uuv_3O+A^fwHafxjLf&%Y-O{Y%=g-CW79z9M{Ty-tX7cv zS*smvR+9Nuo1JVL$^5R(E;dbM{?ukSn`Sb9YqN(<3z>hk*~?}Xne*E0&)f7kwQ7Yw zX;sNf9hs6Q|##yXoQDwjp7VB8l7%;(NJqjC_z0iQ8Y%b!K z#ReQ>aWRV}1{`N`35$9I@+>Z8vD| ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) @@ -97,7 +98,13 @@ parametros -> ^(PARAMS $a)+ ; -retorno : 'areturn' | 'ireturn' | 'return'; +retorno : + ( a = 'areturn' + | a = 'ireturn' + | a = 'return' + ) + -> ^(RETURN $a) + ; manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) | a = 'getstatic' b = campo tipo -> ^('getstatic' $b tipo) @@ -109,7 +116,7 @@ manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) -> ^('invokestatic' $c $d) | a = 'invokevirtual' c = classe '/' d = chamadaMetodo -> ^('invokevirtual' $c $d) - | a = 'new'c = classe -> ^('new' $c) + | a = 'new'c = classe -> ^(NEW $c) ; @@ -208,19 +215,6 @@ classe returns [List classe] } : (cls += ID '/')* (cls += ID) {$classe = $cls;} ; - -/*chamadaMetodo returns [String nome, int qtdParametros, String tipoRetorno] - @init { - $nome = ""; - $qtdParametros = 0; - $tipoRetorno = ""; - } - : (n = INIT | n = ID) argumentos tip = tipo { - $nome = $n.text; - $qtdParametros = $qtd.qtdParams; - $tipoRetorno = $tip.text; - } - ;*/ chamadaMetodo : (n = INIT | n = ID) (argumentos | '(' argumentos ')') tip = tipo diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 9febac0..6d1d47d 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -21,6 +21,7 @@ options { @members { TabelaSimbolos tabelaSimbolos; Escopo escopoAtual; + int contador; public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { this(input); this.tabelaSimbolos = tabelaSimbolos; @@ -34,6 +35,11 @@ topdown : entraNoCorpoMetodo | entraNaClasse | parametros | declaracaoVariavel + | field + | invoke + | nenhumoperando + | umoperando + | label ; bottomup : saiDoCorpoMetodo @@ -98,6 +104,7 @@ entraNoMetodo $ID.simbolo = metodo; escopoAtual.definir(metodo); escopoAtual = metodo; + contador = 0; } ; @@ -147,4 +154,42 @@ saiDoConstrutor System.out.println("Saindo do construtor: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } + ; + +field : ^((a = 'getfield' | a = 'getstatic' | a = 'putfield' | a = 'putstatic') . . . .) + { + if ($a.equals("getstatic") || $a.equals("putstatic")) + contador += 9; + else + contador += 5; + } + ; + +invoke : ^(('invokespecial' | 'invokestatic' | 'invokevirtual') . ^(METHOD_CALL . ^(ARGS .) .)) + { + contador += 9; + } + ; + +nenhumoperando + : ^((RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA) . ) + { + contador++; + } + ; + +umoperando + : ^((DESVIO | LOAD | STORE) . .) + { + contador += 5; + } + ; +label + : ^(LABEL id = .) + { + System.out.println("Definindo label "+id.getText()+" no endereço "+contador); + SimboloMetodo metodo = (SimboloMetodo) escopoAtual.obterEscopoEnvolvente(); + metodo.definirLabel($id.token, contador); + } + ; \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index ded34a0..c0505ea 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -123,24 +123,11 @@ topdown | entraNoMetodo | entraNoConstrutor | declaracaoVariavel - | getfield - | getstatic - | putfield - | putstatic - | invokespecial - | invokestatic - | invokevirtual + | field + | invoke | novaClasse - | aritmetica - | load - | loadint - | store - | storeint - | desvio - | logica - | pilha - | label - | retorno + | nenhumoperando + | umoperando ; bottomup @@ -184,7 +171,7 @@ entraNoConstrutor escopoAtual = (SimboloMetodo)$INIT.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; - BytecodeAssembler.labels = new HashMap(); + assembler.setMetodoAtual((SimboloMetodo)escopoAtual); } ; @@ -195,7 +182,7 @@ entraNoMetodo escopoAtual = (SimboloMetodo)$ID.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; - BytecodeAssembler.labels = new HashMap(); + assembler.setMetodoAtual((SimboloMetodo)escopoAtual); } ; @@ -216,135 +203,42 @@ saiDoConstrutor ((SimboloMetodo)escopoAtual).setTamanhoMemoriaLocal(assembler.obterTamanhoMemoriaCodigo()); } ; - -getfield - : ^('getfield' classe = . . campo = . tipo = .) - { - acessarCampo("getfield", $classe.getText(), $campo.getText()); - } - ; - -getstatic - : ^('getstatic' classe = . . campo = . tipo = .) - { - acessarCampo("getstatic", $classe.getText(), $campo.getText()); - } - ; - -putfield - : ^('putfield' classe = . . campo = . tipo = .) - { - acessarCampo("putfield", $classe.getText(), $campo.getText()); - } - ; - -putstatic - : ^('putstatic' classe = . . campo = . tipo = .) - { - acessarCampo("putstatic", $classe.getText(), $campo.getText()); - } - ; - -invokespecial - : ^('invokespecial' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) .)) - { - System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); - chamarMetodo("invokespecial", $classe.getText(), $nome.getText(), $a.getText(), ""); - } - ; - -invokestatic - : ^('invokestatic' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) - { - System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); - chamarMetodo("invokestatic", $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); - } - ; - -invokevirtual - : ^('invokevirtual' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) - { - System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); - chamarMetodo("invokevirtual", $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); - } - ; + +field : ^(('getfield' | 'getstatic' | 'putfield' | 'putstatic') classe = . . campo = . tipo = .) + { + acessarCampo("getfield", $classe.getText(), $campo.getText()); + } + ; + +invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') . classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) + { + if ($op.equals("invokespecial")) { + System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); + chamarMetodo($op.getText(), $classe.getText(), $nome.getText(), $a.getText(), ""); + } else { + System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); + chamarMetodo($op.getText(), $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); + } + } + ; novaClasse - : ^('new' classe = .) + : ^(NEW . classe = .) { newClass($classe.getText()); } ; - -aritmetica - : ^(ARITMETICA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -load - : ^(LOAD operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; -loadint - : ^(LOAD operacao = . operando = .) - { - assembler.escreverOpcode($operacao.token, $operando.token); - } - ; - -store - : ^(STORE operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -storeint - : ^(STORE operacao = . operando = .) - { - assembler.escreverOpcode($operacao.token, $operando.token); - } - ; - -desvio - : ^(DESVIO operacao = . operando = .) - { - assembler.escreverOpcode($operacao.token, $operando.token); - } - ; - -logica - : ^(LOGICA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -pilha - : ^(PILHA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -label - : ^(LABEL operacao = .) - { - assembler.definirLabel($operacao.token); - } - ; - -retorno - : ( operacao = 'ireturn' - | operacao = 'areturn' - | operacao = 'return' - ) +nenhumoperando + : ^((RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA) operacao = . ) { - assembler.escreverOpcode($operacao.getText()); - } - ; \ No newline at end of file + assembler.escreverOpcode($operacao.getText()); + } + ; + +umoperando + : ^((DESVIO | LOAD | STORE) operacao = . operando = .) + { + assembler.escreverOpcode($operacao.token, $operando.token); + } + ; \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens index e17e231..0707515 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,5 +1,3 @@ -T__30=30 -T__31=31 T__32=32 T__33=33 T__34=34 @@ -78,6 +76,8 @@ T__106=106 T__107=107 T__108=108 T__109=109 +T__110=110 +T__111=111 ARGS=4 ARITMETICA=5 BODY=6 @@ -96,91 +96,93 @@ LOGICA=18 MEMBRO_CLASSE=19 METHOD_CALL=20 METHOD_DECL=21 -NEWLINE=22 -NULL=23 -PARAMS=24 -PILHA=25 -STORE=26 -TIPO_REF=27 -VOID=28 -WS=29 -'('=30 -'()'=31 -')'=32 -'.class'=33 -'.end class'=34 -'.end method'=35 -'.field'=36 -'.limit locals'=37 -'.method'=38 -'.super'=39 -'/'=40 -':'=41 -'aconst_null'=42 -'aload'=43 -'aload_0'=44 -'aload_1'=45 -'aload_2'=46 -'aload_3'=47 -'areturn'=48 -'astore'=49 -'astore_0'=50 -'astore_1'=51 -'astore_2'=52 -'astore_3'=53 -'dup'=54 -'getfield'=55 -'getstatic'=56 -'goto'=57 -'iadd'=58 -'iand'=59 -'iconst_0'=60 -'iconst_1'=61 -'iconst_2'=62 -'iconst_3'=63 -'iconst_4'=64 -'iconst_5'=65 -'iconst_m1'=66 -'idiv'=67 -'if_icmpeq'=68 -'if_icmpge'=69 -'if_icmpgt'=70 -'if_icmple'=71 -'if_icmplt'=72 -'if_icmpne'=73 -'ifeq'=74 -'ifge'=75 -'ifgt'=76 -'ifle'=77 -'iflt'=78 -'ifne'=79 -'iinc'=80 -'iload'=81 -'iload_0'=82 -'iload_1'=83 -'iload_2'=84 -'iload_3'=85 -'imul'=86 -'ineg'=87 -'invokespecial'=88 -'invokestatic'=89 -'invokevirtual'=90 -'ior'=91 -'irem'=92 -'ireturn'=93 -'istore'=94 -'istore_0'=95 -'istore_1'=96 -'istore_2'=97 -'istore_3'=98 -'isub'=99 -'ixor'=100 -'ldc'=101 -'new'=102 -'nop'=103 -'pop'=104 -'pop2'=105 -'putfield'=106 -'putstatic'=107 -'return'=108 -'static'=109 +NEW=22 +NEWLINE=23 +NULL=24 +PARAMS=25 +PILHA=26 +RETURN=27 +STORE=28 +TIPO_REF=29 +VOID=30 +WS=31 +'('=32 +'()'=33 +')'=34 +'.class'=35 +'.end class'=36 +'.end method'=37 +'.field'=38 +'.limit locals'=39 +'.method'=40 +'.super'=41 +'/'=42 +':'=43 +'aconst_null'=44 +'aload'=45 +'aload_0'=46 +'aload_1'=47 +'aload_2'=48 +'aload_3'=49 +'areturn'=50 +'astore'=51 +'astore_0'=52 +'astore_1'=53 +'astore_2'=54 +'astore_3'=55 +'dup'=56 +'getfield'=57 +'getstatic'=58 +'goto'=59 +'iadd'=60 +'iand'=61 +'iconst_0'=62 +'iconst_1'=63 +'iconst_2'=64 +'iconst_3'=65 +'iconst_4'=66 +'iconst_5'=67 +'iconst_m1'=68 +'idiv'=69 +'if_icmpeq'=70 +'if_icmpge'=71 +'if_icmpgt'=72 +'if_icmple'=73 +'if_icmplt'=74 +'if_icmpne'=75 +'ifeq'=76 +'ifge'=77 +'ifgt'=78 +'ifle'=79 +'iflt'=80 +'ifne'=81 +'iinc'=82 +'iload'=83 +'iload_0'=84 +'iload_1'=85 +'iload_2'=86 +'iload_3'=87 +'imul'=88 +'ineg'=89 +'invokespecial'=90 +'invokestatic'=91 +'invokevirtual'=92 +'ior'=93 +'irem'=94 +'ireturn'=95 +'istore'=96 +'istore_0'=97 +'istore_1'=98 +'istore_2'=99 +'istore_3'=100 +'isub'=101 +'ixor'=102 +'ldc'=103 +'new'=104 +'nop'=105 +'pop'=106 +'pop2'=107 +'putfield'=108 +'putstatic'=109 +'return'=110 +'static'=111 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class index 692b69d660c3b5475d024f90cf4fdd2efba0b39e..6f6c05f969f3ae3076e1247084295dc976e06b6a 100644 GIT binary patch delta 101 zcmZ3%zlwiDIkUh6Ln}iog^>L0)VyK^D+P_s)0wN8_(S634Gj$xY81c>!^!+?|24}P zIC;w%_;@QAM0hJ1qB C0vTlh delta 101 zcmZ3*zk+{5IkUn&Ln}iog^>L0)VyK^D+LXOkob6G1BDteZKzPQxt+P1X|f30AI%a5 zPTo=mKHf405#DkJY2FG3CEiK~P2MU71Kw%|bKV*TJKkCbSKhkGmh3K!4U_BGbpVpv B8K3|F diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index 90da26cdb5903fe3faffd91337ec96de4e8ee084..792438946756410c02174efe8e5b50759a96a924 100644 GIT binary patch literal 31134 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 F{Xah1p2PqE literal 31073 zcmcJ&2YeO9{>DAOnN#MRGYf$wbP%KnNGFs~4GCiZ z$F4{d1 z#6kQc7M?P9Zl9h40IfaKOPixS(_5Q1p6R1aThC-@bF^prYSYd${j_QCnf}^z@XP>h zI(jBkn`5lWFa(`EV+cBX#t?Mzj3GGIGlrn6XAD6%&lrO4o-qVHJYxuYdd3j+vZk*g z=KQ{Y z%`=8zx@Qc*37#s`1&N2SJ07&&)DR<0?o(V?W;+N5Le_5+CTEQ^HERl# zi8;ArOcOPO$(u4^ve~9NF*zk?;)J=Avq$M2w?G-wCfGW+MD3@W?OP$WaDG0{C;fB( zuNQ&#BS&TR!-*uOb#7646%LMuxhLl@%kNQ=U$&q}UR6bL*@8imeMB^mzTLf>nuYLx zEZxL|XfW9*J%Q8~>0IYXr$W6plujo{%v$6=1Fm`%Ri8)I=OaV)Mev0>Hx&PKBwa(* z*HZO$dhPY5^y>9geFIhBNYyt{_03ehfvRuOYd2E$ZBV_d>ZIQCE~>s;7<&&@-|OwW z`W}-5tG9*H&D!*s$@8cOX?CkC6Y{XV^qNbB$&Zq2uGjzFKs7gp^`sSD5X}sen$Q#Z*E%PrfNVm%1Z&8OpCh-tIJ?%DMK-u>BHIge~%se}P$7 zivQf#5Tn` zCray%wWzDaEwvFaePqVHJC6u6?xu~U0sYD)=#=D!& z>+Yo&VxK*|k`|l&+x$qkd!z!XDeXS>zAC)!3v5jcLjl@RvzWT@V$@E%e6Q7PJDK(V z0Z^KMDth`~M6c5ducs@``bunHPN$;1bf4LNUg7ogiX-;3?%!f=dwH4ZWnIFNdU=Jf zmsg-?e7%f1`1^SU_H6rk1=>>Qwf(%p)a~$o);U(7pRotN!t3W1rk_`sezx0TM3{bF zL8XXR{6#;n_}hN&V<^f{LTx|Wlx65=lg3w=ep*2`UH5aTJwCACV&thyH~kE9)6cda z5A`$B&7M~Lsh>?<4(n&zPP(5hKU3z6n_o~+w73dg{SDD@Q!!zROpr2Xt4U^<+rxM| zoj@~)6H&NG6r!;Cn4b7THCSPCbNBwDl ziL*@l1e!=L&UTHd2{kn-N8xnPmX4-&)Sf!fF($36sqJwzoJP<{$~I}u4NE5+1YPJ@ zvwoaOX<_2=hGDQt8AQ16bxgBXE-or4&M!f`evhlLIftH(``|RQvZ^A#tg^VOxV#J( zJ9pOMS36vFO-5V}agm*cT(urIP&UMwSg*pZvFGzo#T|gJOUdhCkAztL|JgTgQ)Zc> z2N#qSmlan5Pju>xo6gXP^1`Ah`kAHu?{!$B=h;FuVPn%YO&aPBZDN{$h?@p+Nl+;6 zQrI*}ecc5zozi$ZHA3?@jHXkAkhy@NE7K{8MIt>0jYAVy6c&f-MbjnW9*t8|i7fhd z4EI}2$#zEzYH0=+hLX{vBsODd)J7jC)Yhb-YbD{Hi&J}v5rP6bm?7O!67H&c(lK=% ztGDT5YILj}24n`Mi7_zEFzPK)0hHB8Vhpi*lwr#1YxdMn67HcS^*3&S1SE21N{n^r zK#B3rbnUU9c)D(_=B5RjqlWm1%4vusd?1z0hwAfZ^Pv(W5~;%^b<}#Cq)uA1Bt{@~ zxTLOHM@Sqw(2){H4>Vii2!f81l%Z)x8^SRX#{yDwBn{Adyu{JPn$uXrnrqr%oT=e> z6Hk!1r$WAok}x7TO_GFpdkDMHfmI%S5$ zWfwYA(s-@2B#uDnY>9IPbdJPP4Lwm3#vG@)5@#3aNs{m(hEu*Id}QG?Ptu9H^~{+r zUSL|Uz_e3=Bz!>OR3vf1ht8L{d_WgST=t<0B`wriEa_xTzQ~+@N+eFoNG+8(8AHn? zF2m4riBmsxvBW7Dxt*#>l2+s3qw2FIU1oxFBwb;Gb0uA6f(s%= z(nBV=PtwCCxL?vv6Fea4Q4?&E^q8r`gJ$4XZ`p5+5OWKdqG1Xi^H5XFNMO1UKq)*K%^wZ}@W~fd)`Vl z+o)zc)jTA5J+o?uu8^7l)$(!nod(M`;xe3mZ zyrl`wmAthH&Xc^22`-TQXcJs0d3zIFBzZ>@Tq1cV6ReiJiwQ23ysHT=llZ)#cX7Go zJxy?hYl?`i+4>=C-eQHuSS{iLHYiv4V(;}!eG?k`udU)hgQYbGf68~Yvi9l6D2MdO#2 z&MT^zl8-Nc_2>KYg8Y(c`4z?5dx^2KrKNdQ`Bg;#z%4LyU)NZ1K`6 zVy%y`m5*6>#6sk*)I`KOA0hXV_kodyK{L7{zqB;JVpMTS(fIsQ6ws(s=fjU3$t#G> z8ZmJ8R6MAtoIRyDe?j@|(ZyA>b4F*6oc*V#8M7-Z3TDr%n5`dn%+?P({%7?9>@dHo zxFElBcHIMy?)tmVQuD|HC#CFD^@lFp|5rx&GGZP7vNv>|y3D#CPE~w4KESdt_E3OE z33bY`17M}%rMxVL{yIbPGxe97p{nJJi*&--il3tsq6G`{%gTyMu=QNM4)-r}>yj*7 zFUc>!4N9lZdS4gmeO-*R(~(X!=svp%&Tls8Bl%^ByBCz?SK`pKi5Ze#i3)cwDl2UB zrxkrAUxN=UW<_aH)xz?^+D-aNeyuKNesNJrU1ER9ug5u|dr5I=aaEfVeg3H1#{kK1 zK<&E!xtL7JZ`Q?BE?r!Nt~EFrI4j$rS8dQ+^4q|XU!Wf`%`ID6g66SVP@g-{RQV<4 z`L!4ssLtKkl}VdhR~YJYUtMZl$*9Msy42cM%0NZ7)TQ>R-508`U8mxC+0u%#+Ei5G zVZ`~BRpk}vErZp!r{ufPb2hP#p)Y#wu|vtV5Pea-nnTI86n#;*Cl4jpV)RAzp21bB zaOvXOy`gH)BO?wYe|Pjn-Co2EERyv>S*#xb=)v6=wR;64Z$Wugd2JG^_8O9k^9yTR zu`lX{yC@`;)h6{rt=`6difuR4wroGt3MaMN$Z>W5l= zb|@K_VZ+)FRl}WCZP|D-W|L91uTeFRq_l3IsM>cLy092Wtj&t5{aa_9KexD`baBy= z+H}Dj%ptCrPt-}BL!}|YV()X<ZjS?cN`XfS zq2l7Q+95EYmlU|Y3K#nhn*qJ0XocZz(&~on08|5aTV85yI}bo5+SR4jcI^Pv1GisZ z-rAlWfU0!XyDwc@d(;jV$nLZ=HWE zXQFNx6y9dbiYuy?=GX2e6O|l*1EsjU!t1L{R8ik{6jv1C36v>26ZIRang4W9XQF<1 z(itiCAJmzs-bg(bO=4XOWuktg4<*+&Q6}nm{GsI9Hp)aj#~n(pZKO<8aiS)xTsjXl z`Y^?VIw|sW+Nrt%UK;9zle#D=L|1xAsMHK3l@*;*mxM~q)=A|!MR>VTBRn+}i+xF` z4|Wzp66m~as0>D`#1-E=m3Zl>4K8Fcq}QHHycMXAe$rRld|oQ5qfd~vdBdgpxtrwR z3?ZDNFOB*Ml~(<<3pYn%sp2Q|MG0|=SRNIp5^H(*^>#$vEs_!|#A&z&=AxJM)ioz7 zPCw!$dVKjbbN`xEQg!GOEmn#%ajPWGB9?K4%Vti_5pG^`%Bt$_&ZIa8yVaK=$#8}Z z<(E{U+ws(}mmU?NvSs;b!z0~;9f<}5QtCF*&mVQ|FIM6bhBHc3pJkVp7DdISDD3dY z7*||rZZB{XSmdwUYH_))+ZDtH9tmN1aTW3p`kNZ!&O%(J#MNRAKq_z_yG&o6k3CX> z-d)|FZi4h3thk0)`@^xb^D9c0XP;W^M_wzg)5z=eo$=qby=`s`STuKU)7%ARRXB`v zCqR(eN2iL?O7uaOBUJOq?S@_uMMc=8;}JGFoEh0;rM1sobz|M8#O=D*M5!Lt8YaWQ zWEezPoTb3lS6f-?J@D1pr{fUEL4%WCStUM)i2IdzKx{%9rsWhC7gP~zbEH=H4aXe4 z|ILb5vV%I>s`z;}+O9Z8l1|&9_-Y$HqWI-D+NJnaHrlQDS{psC_;og_QT!h^dP4CV zZS<7l8*KE9;ao^p@fe z+30P>AF34lJg3)f6-p=}Y~&~ru~B^`Vm4}^gtC#VM132jE78zKO_WHt zQ8Oi)+NgyREo{_EiPkncN{O~MYO6$h8?{s77#np^qKl1=QKFlTIxErBM#n1A$41?h z=x3uIN@UuomlA_*)JKV7HtMUya2xekBHKopN{q45ASK4yXowQyZ8S`YNjAz-Vv3DM zC^6ke*-Ff`(P$;+*eFMdlWa6ri2@sqQ)0f2CMZ#Cqe)7X*eFklavM!mVu_8WD^X#i z8A{lrCp1fm3vJpQCG5x!%~j%Vo0hKx#&{hdijKi*+&8IF8R)L6lqu`r9kMd3J;@G+l{!zX-R!8<-*55B(7 zr@=Sy`G)YW&o_ck_xZ-~O?U`PT49`FtDrwmyF}d^?|S58uJ( zJHj91^PS*3`+OJpV|~6Wd^ex(4&TG)d&2kf`QGq-d_Dudug~{`@9*;i;4^)GAp9Vo z9}GXl=ZC@%^ZDc8vwVIy{0N^P37_rrqu@vT{22HgpFbXctk37dkMsHQ@DqG~BK#zu zpA4Vp^Hbob`usHb={|n~{0yI;2|vr{XT#6&`4i#i`us`o`941nzQE@T;fs8JKKufo zUkG39^C!bE^7#_@QlBq_FZcPy@JoEY0>0ActKgUV{4)4ceEwAUE&(nNI-{JEQ!$0El zJK=Zv{G;%@ef}}{$9=vUzQ*VGz(3*hPr^Ut^H0M++o;*{G0G^`TRfO-}d=;SV(_?jcZj?_CEWdZrpze|FO^ShyT>) zKZF0m=f8yi%ICj^|JLWfgU6#6vmZPpF^WedM)6?7C?0DV#X}9Fc%)$zPcxt=;ad6! zJIDxA5}0!WxH;w~T-<;f?;@HZF#REKMhMd%@@9lxissFTxD?Bq5jC+i|ED1-kvAg^ zX$}O5^&v5r8bB~}!i6L-R|TS6Y65XwY6hw2QVU3ZTS}Tst>7A1Y3R~XaIRg~$fdS$ z>DD#2(!@$rE6uDlx6;C;cG#e$b*-$lwsMq}HZFBQmbNY(13B8I&X9I49SdpiQa4Bk zmwG@ty3`ADj7xnWom}b*>FiQ}NEeqfA;-Ej2-4N1A&_n^4TE%dDGSoWr4f*xE@eY{ zxilKm+oc>xAD6~LGF%!5>Fd%2NI#b*LHfIt2N~efR7j>v(;)+0ngJPP>oC~L5SL~l zai~jkAj4dm3pviEd`Ol{1(4w`6+uS0v;Z>FHgdL0#c-osS_B#GQYmDNOXZLpmzF?| zcc~IG)}^J8T$fIPjB{x@WV}nKK_<9#I%J|tXF?{qbT(wNOXouJTsjXj#ia`%Q|)f2 zxpWcSbeArHoZ!->kQpvr4w-4Q%(61u${d%j#JUq*x*9UqrL~ZgT)GyL@6tNRJeU3f zDX>jYXxpX8r5lhq-=&)%3tZX&S?JQOkYbl^gPd%0E^;XeSK`v0kW#zbGArd)7Q1ve z)-AEF!lirRDy^%svee2lE2mgF)yi@!D_puC+nr|JN-L+kvuQ%C(R!&%yR=^B z<-gpe-P&K_(&JjMbg4$`RW3cD^=g-%(z?c_XSA+$={c>}c>B55)9XB4=h9xi{(8^< z!=)FsU+?)FJiXD=n>@YQ(+!^9;_0m}y{xz2==s|`z1^i(b$ZhCcewPL_IJAUhSs~h z^t(O1$J2W~z0ak$biVstdRyxQF1@RDlS}VwebCFd+0!j9eW=s7y7aNuZC?6zmp;+{ zA(uYWy2GU}v_9<8zqCH$($`vdy7aBqT`qmE^-*v8-7fuG`^Q}RQS0L_{a0(XOFwI^ zap_mBd%XU7!qX?c?Vs}WX-}W=^jS}z^YTCM((k&QypiIuX?)A)7LzG-Q`i8?+us7w7%)>=Pj2fwEw4G9`otOT- z%bRHbgUg#~{kO|oXg%Pq|IyR`c=}&YfAaKakMkFox6<4F>ZSkYrT^~vKRi8X6`zy! z^|k?#%a78^UEWr!aCtkeA#Z)ymO~NGM_t}Qua_=AMr+LFowdfj^$C|BtG#l0H?5A# zduXla@?Ki&d*!9MypQ$`Jm1jU-t~MV&!=nM%=Nr+Ujbx2fHfyd%u{LTn>!`-CZYqamsN>lnHI@xmxhzMGXA{)~ zHeF3*C#p%TNKIxXDvwpFDQtzB%Fb5P*oA63yIh^Xu2D1C4QeLasAjRd)ok{ln!|Re z6WL>GE_+Iy#9mPO>@_uyy`u`)$EuKhsfyV5YCii(Eno-LLW-zja@5JxNG+lks)UYK zrPNuKQBSp)`l}^0R8>&6s-#?1MR{r|%~Z=MU!6h=)u~jjmeVq|f=*Yb(JHl)E>Wk` zRq6~{r_Q9C)mfBOXVZP^9NMbRrJZUO)u{96S#>_WtS+E8)rIuFx`;ki7t`135;~w( z)354M&edf+rY`4c>I&XOUCCRkt9S=>HSem{@IGoSAE>V3S?XHMdby5IQ0w?Kbv>V> z{=o~?dcH{Az$?^^e7U-bpQUc*7pM*VGIa}It8V4%)kc1+x{cqZZs(g+l0T&G;JekG z{7H2e->dHC`_w)BZFMjINZrT3Q1|oi)C2s#Y7_rMJt)FzvruY_aMf1PTx}C=)ppTI zJtTUl9ipFlSPW5*h>>ci7^`-P$?8!tL+utPsmH_u^|&Zg)p+btBUY+CVwHMAtX5Bo zHR>s`UOg=~s%OMK>RGWxJtuam=fxhiS3Iv?5c|}N;vMyp*sop|U#VBb0rjf*P3;SX z)N3K7UJo@=Z-!c`w?ggJKSN#B+o25gPH3=tH#Abc7s^%dho-0xLbKI}p+fahs6>4n zs#5zyE7d2VRqE5wYV}!Yjru&aUVRbTsQwkYM|~CAqP`C8RNsX5sBc5htM5Yl)c2ux z)DNNk>ffQS)Pc|e^<(Ha^`CG^{Wq-CPvJ)D=Wt8)OSrxIHQZJG7S2$=hX<=a!Xwqe zaIQn)DGm?Mc0{<)3583XaJb5egjYJz@G3`!S39xr8YdB6@2K!b#|hu#)C+HM>W6na zY2iIigYffC!|*=G4Zq_w3h#H)!(Ta#!v~xu;oqF5k&x3YqMR0yMo!B}OQ%(&z0*3< z)j2AX;k1bicG^ZpI!8xxopzBaPW#Agr$eOB=@=<-j)_z`ogyop&XHA4m&j`8*vJ~E zYh=CCEwa(+9=XTq5!vGOjO=uJMfNzoBhNd1BKw?-$U9Eo$bP3^}a7gDq7-< zj#fEiqAQ)8=ql&<=xS$dbd8f6UGI#GZgj>+?{OwXw>T4{JDo|l``H#sZtSQga zp9J|7tdorYE~|*@!%yYY?58Yz6NforSQ{3*n0NpI*C#mh@sY8Wrch-w@ag;ntRaqR zTi(Va@kOZKxM7#=d}fzN`0N>75S_S{=j&6YEvcUQ()3IgN*ut~oM-w<5ihrME#zOZCP~m#S%7rnMd{hIC2mw2hzAWeY#8#a4d0)|OlOS%=!Ax$b9t z+a%a()ba{^@4N=|Yw`W>^}ZUk^!6w)9_%+;Vb++VuGm)t{oLs=igJ&lRoYRS!sX|0 z;}`xN#?8Rk0F2wvJ$JK4>>k#VZSrBXs>5hjhtZ@C0}s6p!#LC!ZA@cy4$v6eLGchM zcA_yJLt{LS#(2_4k-9NfAA#afW3;u6acO|Ycpeygf$=gL;|(;%n`n%8eHf`515f)7 zYm7q}M_Y_50$_X$jQzm)92nmK<6B@H2#kS8jVUnNS&XX#VEh7%Ux9HDQ?IX zQX()0o^z(aXm2sD`Fjj%fEmOMS(q9Fqa`p}0psYv77<9ois*TkH0@{P$?+NKvBUGvz&O@oBm-dF2aNlHu^AXUfblReb_d45Y=#sVT`k640Wh8b#*@H! z78ox9<7HsH9vB0Uo>O3Svl#aVz<383?*ijPV0;FQ&w=rEU<}OTNP*GaVmuH4i?JgB#sFYs0%Hg;MgU_ZFmeK8VD3%|jNTSw zX8?=|=IfC#p8|}Tz?cP$lLBL4;!p~VJ{Dtl0F3#-Sb)}81dJuXr~t+(fiW;^DFsG` z#i$N|aXK*00LD4MxDXf@0pqg37??7Z0;8|Rcp?DC8epsi#yVi!1dN-3aa&*v%-2eR z(a&N$9RTBQVB71KmZ!w+=fKd&M8elvHjJ?2k0T{0a#=uOq z6c__6#tQ*3-U7xyf$<(N_5pUEcEIQij4r_F z5f}rr6H{Oewiy2mfYBEi{eUqL7{>u43mBsUV_<4z3XCBZ@;&I88z zz_=tZ24R1bN?=?CjB9|g9vC+O7?=p00%L^5_%;B>>%e#e7;gjP zLtuOajL!mNU>0%;jFA@OhX5E~1LGTD`~Zxffblah{s@eLDbOh}vMt7se~%FgF%b&0 za45!9s6J~HN@FeYD_r{9Y5Pe!^@m5yzfOTM%3}N!0HXykS^}dDFggO`7+`b_jDgAD zDKJJ`j9&v_^ae&BVDtyZ5MT@i#)!Zen0cN8V~oZ4BLGGYFpdYtcwkHc##CU;42ps8 zqf=qz7z{xHFirwSJ}`=au?QF?z*rI(19R?Ew8rrkBNPDR6kwbRjFrGR2N>r9;lH)z<3H6PXl9bU<|xxk)k!mTa2^-7_S0jA28ko#(Thc9~k=s zW8fu^6c`gMh8qCmOJMv97~cZpM_~L17{3O_z#AqhFeX}z#($3y#w!nD&cfjcQ(?s# zg&o#1+%PZ(UT;Z(G09>y3xLrS7}0~0We+y#>>EX4H$0&;~ijp7#O2Z zN{pEnBO?IDXTbOz7+(S72Vndg7(WHZzzcjST4R>Q=pO*%4`3W*;fP==5@U@ban>?Y zKQIQ~9!!BT+hX7$*WVo}k#r^^je*e|7;S*j78o4^W8l@r6c}?X#*hFQU4hXJ7`=ee z9~c9GF(fbs-kVH;aiYaIE&#>|U|=3iWDGFI17iX(rUb^oOPeV$=30yq0Wf9)V-_&x z0;32R^MSD_Fb3WjO@VQe#TXR;V+k-SfUyi1D}ix3Fzi&H03ROp>#8X*@-0SA0E`QP zaS<>s1;*9DSObi8fm;Lb%BH}WXEAaEVB7?Zn}M+r7>_yibV0OMO=dwMxO=6bD(&UC8Dn~H@c6th`!~cNIB6-{{Tb^ zik60AS^$doLGb}7_JiVcP<#Q3Zvs;sVfrrh$D~?4C3i(y6HtVQcG)7TLOaAV&iaMY zLuq9BZO!Ut@h+>I#ardg;*GL-LQg9e zn0Gr3kI5pK*gOPJCC(QY;32b~gx-Wj4&v7*aM{97-Rt*!6OEe0en!Ry`WHO@w^LE; z5Pn;OvG>yI9jQ6H;pQkb)N86{$fui1FK(B#Zs>o}FC6X{@$~_I*g37|2IfFA@s4|_ zUnCtjR*X&dZQI~bex0|q&tjYU+U^h+5lga+N5twGq!YG_%Ld9W&Ez(5Wiz=uJsiRd z^-0$J5wUiL+5L8L?Ldh&tHP8#Sbn65)V9koQw0=CFnaNtp zL9C}7#`?)IEK`nUgJmuoBgeC8asrzn^H_tV@5*InxX)*Cw7`3HUHi|vu6?tvYo8R?dtLjm(7!Jb z!mnI z-|)lTzvJ(VQNzxSWg0%BV$A9R0;UGyNV6LMg99RrwbRmCn1dZR)2DRVCN>^+!1XvZ zLR$Z+kL{#TY?3^<_pke7D1NDh$(87j)6pMivxGdC)yLZw4dlhFm0Zo*%S&+>UC9Q> zwQQ)omJOHxVA=9EHcsBorpmib+h$nOy0)EM*R~UDC%>}{p?^_9;CEU&i8~O5OiQJ) z(C@51p=lZuHTW4*xEtu-t2*o`X@|bRNrxt-C3I`lopRE$HsIBaLw4pyoIeiP{67!w z6@MPwP5gs_$OQeC@G%!=HNM z5D*HR%(wRcL){Jz^4D!(xJ$FJK5)ak|9T)yW{ofqHenz)iCG5z*%6Kb?+`IAYTZ za6laX`iwo@cE>v+EQYg93@5Qzob`?+*w9!#Ha1qDO^l_n$+1RkYOE=n6T?s7#9Es= zcCn#?!5J!TH#7!$v<-b4u(KeBf3;aw1&iE|k)bmIH88H0hEugCZ{ zao^w;_6|UN;2kY9Fi`NW5S@nQ94r@MxdO|zSZ>5}8_DmZPwA#L^8*29`lshGWUWf>+frH;IW8u@qq`!BUB31(vh1T!`gzEZ1PcSx0Qd zayOO-vFyO|7?!87yny93EbrhV@?erLgltKoE4GPkNxa#%O+1w3d60*bJQuPv$+IDk zCizgvV@cj0g1=YR6S61CJ42pK@}nV7CwU9Vvq|0v@_dpzkQb6X0(mJ(2O+N{=_km( zBz+HgJxO0e-b~WRkbfpgBfXQP*C6jD=>^CKNqP$MQIZ~m>`&4T$frqq5b}AF?uLAs zq>YfTl5_*)nhOtK##t&{8U6Afc zwhhuV$?k{rPO>{78A-MQ(l5!bhYU!vt04oEY&8ULc%KKs&G#9QPx?ZpC@19nM4TS^ZcCS{3U|7sk5LC9z&~ zd8{v870aY+Vnb+MEQ@Z4Wz)^E9NHKgN6FYEx;r+N?u*T!2V-++Yb>93#ENKVte75) zl~PS?2|X2CO3%iY(+jcF>E+nj^jhpZdNXzry%W2X-j7{LAIH|xr?GYPW$Xs}I<|qn zkKINGVt3L{v3u#)*d{s{+sb)t2am*d@mTC}?!=zpX|ZQ`qu5^FB=$0I5qpidj=jZ? zj=jq}#6IMmW1sM@u`hVf*w?&I?0eon_9Gt{`}aS$qgz9?#;Z$Fuoa@f^M? zK8{}ypTsYTPvw`zXYi}ybNJeLK3^9v;_KtZ{N{Kmzcs#uC*w=`UGe4ozWC{UQ~Yec zHGUp{D1H&&8NZb8j$g@Z;%oVn@pb&!_ziq-d;@pG3OomuMyiCR&LhiMApu(Lsz% zbQWV0-Ne{LFEJs}S4>W1ifM@U6lM*?iFfmRnNK6uo5>rK4Vuq+l%n?fy z`C@sZNUTg0i?b4?;@rd%aY16KxHz#~T$VUpT$wmqtWBIJu1j1b)+a6%HzlqVwcNB(X{CPHYv`i5=p}#4hnn;&HJz@q~CO@r>A) z*el*hye!^Mye8gDyd^$LyemFQd?>z1d?LO|d?CI|d~dFocqJLb{QKJLrT8W^4|gv1 omE^f>=5P2jK9T>Q{t3oI1vtofs1P%b7(U|=pN*gIoX^<*1CtOn6aWAK diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index 9b54bf3a8d647c1d87bbbe5ecb1ca34620c67332..e0d09f06c4d6b9b29bc984fbd99f46238e88d15d 100644 GIT binary patch delta 19 acmZ3-x{h^&3ln4PWLG8|#`wuiOgaENBn5N; delta 19 acmZ3-x{h^&3lpQzWLG8|Mv=))OgaEIbOhc2 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class index 518a1d8d9938f5e23a25107569139a285925ee0e..31c74b69e608efc952ea8b032a5ada1d2713a01f 100644 GIT binary patch delta 19 acmaFC`hs;s9TQ{Q#;(bGm~;S3$_DBH delta 19 acmaFC`hs;s9TTJVM*GQom~;R~8U|DV diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class index 5feb9166298b4e4b98e3911731bc519583b95fdc..e7e0e260bcecc8ed833c148a45ba13b8c90d86ea 100644 GIT binary patch delta 19 acmdnax}9}{FB4~L3=`v>$+1i}jQ1zcV$uNsNa+Ua delta 19 bcmX@cdW>~L3=`wT$+1i}j8i7hV$uNsL^%dk diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$comando_return.class index 31b6c2e82508f857843d7bb0a62a0ff18847c433..e882e818170741bc1a8babc231ff2a94830af120 100644 GIT binary patch delta 19 acmZ3=x|DT;H4~%xWE& delta 23 dcmdnXx|elBFcV|bTL^=ka delta 19 bcmZ3@x|(%^BNOA#$xci*jK3$>GwA>TL@EZI diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$label_return.class index fb3637cd130b22d53ef2a2182e9a328daeea6180..b8919aae45cf80ee9a6437420b20299bf7250c08 100644 GIT binary patch delta 19 bcmbQwI-hleDHG$}$!1J8jQ1xOGwA>TKY|7+ delta 19 bcmbQwI-hleDHG$J$!1J8jQ1uNGwA>TKXL{q diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index df345c24253f19a4d4d35e894ee3726f1515c35c..2acf10f6e91fcf377ae4b44336298f690efe83f9 100644 GIT binary patch delta 21 ccmbQkI)`DCl@g3002dV1}Fdk diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$loadint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$loadint_return.class index 37b46b006c60c894becd65eceadf44721e175683..0447ef47f2bc083dc6fd69fa91dab60a3ea7c3bf 100644 GIT binary patch delta 19 acmZ3=x|DT;H4|geWE&~L3=`wE$+1i}j5j9FV$uNsNQ4I7 delta 19 acmX@cdW>~L3=?Dbm delta 19 acmZ3%x`K6s9TQ{WWP2tX#^T8}OgaEM@CAMV diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index 18cf336e9963f8f54b7a68b96a82620f3f81ace0..1121a279cc9110fdf6fdc1b15258c243ee2f3c8b 100644 GIT binary patch delta 19 acmbQwI-hleDHCJhWHTlk#^A}tOgaEI!UYik delta 19 acmbQwI-hleDH9{xWHTlkMvlqFOgaEE5(Iky diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$programa_return.class index 5dfbd9b9079ba01aeef7494b6c4a1b13af95aca5..ea7b5c155270a7af6a9c3399d4420090e29268ba 100644 GIT binary patch delta 19 bcmZ3%x`K6s9TVfq$@WY(jH@TtFzEmQK5zx@ delta 19 bcmZ3%x`K6s9TVe<$@WY(jH@QsFzEmQK41mx diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class index b203dbea92817ffe8e2cdf07b09a02e7030e5f68..2e7ed4f0b3328bcbe434408e34d83af1adc2c5bc 100644 GIT binary patch delta 21 ccmbQwI-hle2@?|^|70^JYbHLy$;C`M068KAsQ>@~ delta 21 dcmbQwI-hle2@@0Vk;!IE)=a#|CKog5002c41`z-N diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class index 55164f5d7fc3c535555351e1237c5326eae00dc9..228c48d22c405df8c0e37ab05ef3a2dbe3e1a8f4 100644 GIT binary patch delta 19 bcmZ3%x`K6s9TVfz$@WY(jL#?6FzEmQLNEqq delta 19 bcmZ3%x`K6s9TVfM$@WY(jB_T}FzEmQJ%9z! diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$superClasse_return.class index 08255b9517c5567e6337c7e2d452288fddbfae45..8aaf9ed92efddc1f90ebef22086177c0b430a95a 100644 GIT binary patch delta 19 acmdnUx{-B*I}@YNWDh1AM!(6eOgaEM&IMrr delta 19 acmdnUx{-B*I}@Y#WDh1AM&HS;OgaEMz6DME$?MX0*?hAHPV}q-Y616fIz50ihvkMglI@G2`Kj7u_E?f@a&?3 zioNUUot}4kwzKzgVm%A;`%Kw=^YQ|x`Tcjw%ePGX&dm4wow~cv{dWIDgpfRUszVG) za+WubUVGr0<)iCY*42)#Z)~k=UejFHT2tH9JbFz{b4y+G=(3iUy4A}Y>Y8T@+98aR z9!sE8s?3{pffCk88`gcCy~k)O?pp^C`i#4tq&35F{|NH9VXLV}Ts5EAUI z2qD2JMFEqkYK7Jgal9<5lu)iO%XzZ>532%R4GD8FhdbSf|-gC63miB zv5;W4B7_8U6d@#-s|X=MwIYNB^AsT@*jEukg87ON5-d=JkYJ%AganHuQ6ePRPZ2_b z#flITEK!7zV5uU61p6yONU%&1LV^PnAtb0#gpgplB7_7hD6!G-IoU#l+JF)=)CH6f z;=q6sQmhOpA;zkJ5^~fBln~^gfD)1%98f}(hJX^XtX5Qxkfkx8ge*;zu(G*Rs=1ZI z2}R51R?eGIF|V?`jB_l6PMkGq5yx#x(#mJete!V_*`$i{D$a6{)uf8*`IWOcfSIRLGwoGUU+M}tsj0Ij zEh{gp64`Z4u!7q75M*Y>0-m571OZxAIa8$Xj^bwSD--rWakIz?n=ts%UMj4iW_eu$4-U%9&4DlNqe53St*&XT6*UOMbK%qX7!LpKtMrwVc-Eqf z+swdXwW9iZjAE1> z)ViUmrdA8f%f^V)JE%3nFb~j!d9`|~;1=|^XirsgUY^z_BCt*30sr>;izW+F z7eT79y_;4h%bZsNxq^b%)HkfsE0muDsRE%fWoc?|)N{_ygJLS{}Q0|~VG|fwr zl-ov@YO#j;)%C5yqLZTJL5%;FO&(TIb~zr3B||R@_eC6rs`fpc;im zT5Gk_7~H)C8oq}%FVba9?YUwU@;h=VMsw_;=eU*!J=dO^7IJU*-80!)pQ^d#c zAW(K^BCwbj7}Q<&G+GpHJl&N{1;WzR$WUB}VuO$p;naf=-Y?-mk)tOn;Vlp}Q-N%O zlu@{(7~M8VmARs3wemmh#DmcVS`_wwYBcW61_V`*zA`0JPIeCTAeijzq0pRcK6VGv z?Y>mR(|lY`_HN59M0UTcTs|TBJ>?c^t&)>1)F^ePlas^y{`ZudlcV*<9_pLJ8!%|* z5;-QMHgiq^atkJ4E5fN{djb}q9zlNj(uK5>A8)=2vynaf>vkl${_%*}&I{1Gv8^I>;Ewk5l(eI7Tb-z8>V4*Won-)_as z%R#AsM9jP#v{PV$IoWb>O>NG+BJ}0&lassrz||EBElNzjbMgxzUoarRWVsX6gSq1g z5*G`L(?Sb)69l1!!Y=es-j6|OiKvJkT7Y^6p~a#*^iV#Wg`sV8F3g5h!CItHNX1tR zIfdLchkTKz4!$wR(y#FEcfe<5G2$|Rr907Aa-!IEFB zm7AZ)zgU;QSmWnvVL5F`p|0@$T# zC^kQA9#JgsnLQ=t+7?U%N<_`YIxshf&v?TCQFRr-=Y(N^sJjZ_Q-@%b#ʹ!^{4 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 literal 84850 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℘g6upYsFW=XILNgSi$ z#e_x=LhnTns%|-c#Jafa4- zQ&vccl$j}OQc+3$-HITac)Q(<*Q&MsECv>BDR*U{4y_-!f_UbIeWXx(ya~B7jJryZ zD)p|Bh^{^ck&v?8t61W`m-(H8AVqetMVu(IQ*v85!Sl^~H5hPOJ(LE?ke_j-4fQhb zG06>Sb%8UHWv+4FonU5&^|_|lE(9t^2wvwB7q45w8*$>q#jA2)yud9I2AyHhKIlw? z&H|ln&^e$x8FVh_h(Sj|#|*kN=q?7`6?EL7yMgL%&^+j_Xb^K(91!u zFzA(_YYlo8=+y?j26UZ4?*n>YgRTd?)}R|eHyZRh(EAy56X<4xZUMdCpf`Zt-=Gfw zeV{=f1o~iuJ_Pik27MUl!wvcf&_^2dQJ{}D=wm=1YtYAmKHi{D0DYoCp9K13gFXfH zsRn%-=+h1Q4A5s9^jV#&Y-UceS<;&9rTR`eG}-L4f+<)w;J?j(6<@%?V#^4 z=q;eP8uULv-)Ycyf!=1&cZ0sipzj5}-JtISeZN6J0Qy0LehBo#2K@-=M-BQh(2pDR z6QG|o=%+wGZP3qv{-;4d3;H>OejfA-2K_J4FBU&CEB9H8Mq4F_pBSi>P24%Kj&hQl=+q2WjkM`@U+VZMe18Ww6; zq+zj!B^s7$Sf*jQhNCqcqv2Q$$7wiT!wDKzXgE>BN)0DzSf$})4X0>0Rl{lxr)fA{ z!xmTqE`V+kx(%Rvgx(F%BSP;1=oz8+0`!W|?Et+a z^nQRo5&9s&E)n`LK;H;`6rf*(J`T`7LZ1ZKHA0^T7!aZV1Q-~h&jAdI&=&v(N9clSCAVNO|D2&ig z0g58@bAaLq{Su%gLcazmjnHoa$|Cf8fbt0a5nyzL{tPfCLVpDq8=*S@#zp8(fbkKF z0!)ZlHb6zh;s6sPmJ3iBu|fcoB31@KRm92!m>jXP0j5N(P5@IQRs^6rV#NTaMXW9W z(<4?KU`E914lpxf^#qs|v3di{j##?@%!ye20CtO5y8_IOSOWp(MXbR9^CQ+!fZZe3 zaDW97Yb3zJh?NJhN5m=sSQN2}02W8A5`ZNUs|;Xi#2O8-XT%x{uvf$y53np^RRHWA zu_^&-B32c^@`yDBU`52L23Q%frUTSQteF6-BGznx)e&nqfHe_o9zb2h+8tn@2)8uOWSr;2DUB^oe*5#^>8x5AO_EiS!8Wn4k!P2p=GgvpMST`Ch z9qVR;b*qYXo58w6v9=m4E$W?urM2jC+2`9-+jlMn(O|u-Sg#l?o$xh-rQ72T!P3=w%T(pJ)8oEt#C_k4`(b+l z9~+tIT7PQ9O=-u^jkvlUzcg67IleYnx@o^PSh_jBH(0tkel%D*;m-z3H^;An)mC%t zNRPYIh-)^7P1_5wjZ9Q?*gVOyUDS&<~mQjKcI43=sL zyNkinCB_YwPT1XG>4ZHEmQL8)VCjUr7%ZKzpTW`zcQsf#;Xs3>6Am_5I^j@*r4tTM zvh0znaqjp$qMqSG*~*Xsw6AO zYl^|rc~u)M-4fH&Su@jFv(s6-rL*RxvvyBsElg)EN@p!eXYHBJT9(eLNoTD{XVs>& zR;RP-(pmeav(~1w8q-<(rL&sTS?kkT`=_%GOtJzGaBz|pD8QjfRuJp(BrAw@WRexc zIy%V;VjY{#IzF9sVmj;Obk?cqtkct3XQs2xPG_B)WChZnpJWBnUzlVCu`W)sf>@WP zvo23(ZA@ofWw5lRU1PAcrEM};I@WatOUJswVCh&l8Y~^_W`m_;-DuH0fWBt=$=~&MhEFJ3wgQa7=Xs~pwm(y9Vq_bX2XT6bR1)lt^Br6ze-!@pf#CHvr zn$y_tr?WmZSbF69*kGw?j{T{@Qqvs!bAzQ5erd3@5MQUWzD=@%`Na3>tRIuCz|wwB zvVw%arn7b!EIlIcOtN%)F>0`ssLZ|<`xq9(H)gC)$X&pr*xHEUE^5?f(L3#)(Yx$X z(QS5R^lp1W^d7r0dar#{bh~|S^gjFA=>7J#=mYjM(Fg6fqYv5NMIUBv^byuA`Y0P7 zeT+?rKF;PvpJ1z^PqG7}Pq9;?PqWLT&#=wWf3k<8&$53A3M)QKXKlRe(L-f{mczVKX-dZzi>xI zzjUjkU%5-8U%Tt0-?*nmzjZf8zjJSoe(ydS{lR@T`lI`K^e2x*fA%8LU%Ua)U%j&E zZ{CdP4sTiXcdseB(>pdsybEH~yCG(I_r`4Rxft`_i*fJAm=g-e+)&S$7aA1{g(_p= z(1KV-s4nJ*4vA%kPLE}Uu8d`e?ug}t9*cDfy%x(2eG!XBnND{6Voi ze{?M0pA{?cYhs0dORUI0K342s6f5y>jFtNL#mf8_V&(n^vC;m|u`!u`Y;0!l*tpF6 z*!aw<*o4eIVilSD#wKPS7OTuWGd3yn>R46g*4X6CCt_1F--u1k{3=$RWyhvvb&gHX z8XTLEH6}JQYj$i_*7Dfwto5-uStrDH%epu=H|wU@ysZ0U^RxaH+db>U*n+HIVhgh~ zV|!%xi7m=5h%L^Z99xpTD7G}aKDKA};jz84&x$R}z9zPJ_CI1Z*-yrnXTKR+k^OaS zWe$tg=5&dz${7+{oijGJCTC8pE@wq-pPUV`eREEX)#qFiTbpxptRd$C5@F)%fQ27r zF2nJx*wn+pIIfiea{C@)-y$Liv%oC_!8}eT@l^yCVqx$o-T|1Q6IbD6M`V~eWau{L zFWSnowz8arZQ){q2t1YegVw3no(Wt0tMgHV)!gHeScqFlhC;0$MwB*7UeIYAr;Ix$kl%1eng zlyqYGtN@`wPK83H=r`yXs2UAzW5wvZ(iub1GG**eHrgV0unIbp&Js;^C&Sh5``GlE zyqM_-Gc8igV>~D0a?%^1^W~%~z%G}QP5?tTl1za5tB8ZwiO1OW5TA^}Pqd%-4%67t-^ z8U#J`cGiGj1%9jVWK9f5&}HRpNStk98-^f4nZOQ`Nd+aM3aB!Tqqc`}o!ih`AYM1} z40(oy!OI{8X^y&H`r{$>^Xe8>;-(Q>=k^a>|OFXKArWQ?EI->yPk%$ z;&_y@qu9}qq$~NF9mDp6{&yo^vSZnCu$&=e9TQg!7)oBr#CNzj@+@R0vXcm7Cqver z#QmKNbXl>>rn_v}4w6Ty75SMA-r%yrB4`3$rQcc;?Df!t3<&Y)Hnt3!a7wBsoGLVd zmNQz;X}QCTUD1AMIH3hz%oAGB6#!b$2>{)n1Ay+w+vMF%WLFToTtPxew~2J!#!g!l zVP`nD$YU!zt2`7BZI8K9M~FOo78)WlCk8P61 zGWuqkhq)BV_+$Ie5w#Y>#>{E zw|Bs^~3km2H?wS`S?=W zEPNwvKE8>z1Ybj|!3WOv!*|b`@lmr4v@bb>4j`A}n`2kgA>?{|U2H49CiV!v5cW8} z{`C^R@%08RBk$sCUSHwsT|4OnYS9XsMJs8HPNH4uWIBvaqhsj|{GE=!v*;dl30+0^ zqWjZj^mIJscP1XuJ0FkNZKSpIVOlTk;}~3$gK8%1V>|5QIAI_3=D96!B*le6dhj-O5sYzLsxjW3G)AE{hI1AQ7pSfqb8|9abgbCf zL<&Gi<8+mAy3#ng2ny`cP1vIs_qN9zq3vgCWf#U6!*31j??7cn_q6S{@0YrcXa}ok z54C5ekI9Ie$S}k`G>F@dWvaL-2J~cW1A0mu&{Hs;yYYK6VL;B1xRWp-U?~Q4w_!lA z(_kQYN*YifsBdM$fG#2f&?N`KfDVQM9R}q)0tR#x6z&+P+9_l>KDads>M{nO)~clE zkZOEHYcG60YbCvyv|zN|KrbZ+(koy*bMzK` zyXiI<&{pyZ{RfQbF0zB(O?`YOxEp<(4y8}Pl%A$l^ck4XKk4rH(C>ltWoaa@JXGGnNc}7mw~Sn}L7Rq$ zPv?a5I-Cu6g9q;|w{4|9mO6npSy z>uAL;XK`1I5pNA0b_aVmnaO*@x3Uk)F$wxum-6Y*M@Sf2^zJ6i!M3u`%fq7dgr%88 zd4{0GPac8a$-c0~WFnq%C;M7rDndLX9@@gbSLT7p!$btkaHJ$Ds{K=I)qYoGE`-7F zMf`qBsCHALuNj?3IG+Pciz;elnmPf9!!eq0RP42UD$U{~q z@}iYXUIzZQ6(wI=oyiWX2eqs|G{@>kcd`1@GHW0mjc)~4ScBkH^OwuAi+HLj#1*iK*`W@QI* z0xX1Ui+gg)#g**)$XIS8MFvJKrQ{*0$4N_ z&t;Qcdht$p$^Vvsn+cHBPI7@BP}(jeF;w7#0IjXa#T1+5VsUWbHum_Ut(>J;5$7pZ zM9W=T?$PoPEf3T33|fxwZ)Vc+ELxsT%X5U5B{V$8FYYAtN6qon+>F+sazpT|hq7RG zf`MN_fd{_@z{~L~Z1tNBx`+N%0QSXiDtFf-io73<8Ss1+P7s zMVN>q@)Pm*#81@2tjhvc+-Vb;$i?3=j`&;bioc^g@pnj$WcACDydF7{iLDh8mX#A0 z0Hbtqr&uR6vDFi8OYy@z9Jkg9ZdR)y_#VKI5riRFw#8b&3-NmxzppWV9xumF?zA(r zY?&d_!CK03A02anDq72TKp!I&OFi$81}y6UkeMd$x)@N_yPZ zaWl5?LLK)u#64HVEh+cgkip-=N9(x9BkuVs?zr;IHsWS(;S+V-C5U^Wid$8l)kfT` zExcOC9jV5q)tjx0+gv+jBRK|%Y#Cj}?Y!B#G#JN3XdK3=R~piIhsASbY;!c>(jOQr zWJ=<2u2gSSvUx5 zJU)FqfpoSiNmr|ibh9Rtp4Jr7$Eqg%tm$NcHIodsW|LvoZe*l2kK|jslOk&&DYX`n z(biHj&f1eySS!dZYc-i`t)T~4P4r-^g&t-dN{_S-r^i@l(&MeO=}FcF^i=C2dWLm1 zJ=^*lJs9)b z^(NhEy=8IhZ7bJ$*V@JU!0K;(Vhy!Eweqabt#Q_u)=cXgYmW7Uwb1&}+SB^k+Q<6U zI?(#vI>ffDqix$d(dO29wrgEuhplVvEbC@F+q%QutNI z^@ZKr+F|#_#@PVdwFlan_F%i4JrsXO*u(66y8!=}*+uqbyTsnzF1Pov$Jxv5@pi3U zVK>>8_K^rV#-3)MY)`k(v}f9v*|Y5%?YZ_X_5%BU#D2zJXg_N&wqLhb*k2&kZ}v+2 zcY8Gp+x4ug-N**p>sW=|%qr~`R&B3m^Xv_5fBR55^4^C>i!hJ`BQM(zBk!|fszJM>p$UBV9mKS7LTxk-ARpd-rD?6TR~7)+!) zB`4CDUtbkCpm>g)NGCkgCLO@z*>P;9yv2*7!ei(?qF5}JGf?iML}O7go0x^480y5Y z6Wr!?%565a8b0EYIL3|*Tlj&Af^O6WIVcFLxwq`%&b+vbQC8Pj*PQ;CwgC)~MRtjG zkrSA?Mwwy*@@7@$L9K?NcrGT@{4lf3+jN;O%ET7TTboF)SZB78VENpA8$S}4W<~j1 z`O)R^czpXYo$02X4Vc*T;}Xrw^ooKX7py3R$jSMZNtAaLl<>vh$1%j}RfJ-8jpqcb zhSXEu1$J6WesXmpIPxNHVugazb>8uKF7moaROU=*;@R6}o|3Ec zl;Jx+74c-=@vdWSiP7G5R#%0XJgfAuIb7(%C+pbhXbU-R!eSPy1}r$3BPj zv(F_1?DNQA`vNk|zL<=(FCqE%rKHHdjFj4!lhO7SWV*ePEU~X7``TBLgYB!y$@X>R z68m~`rF|p0-M)!z!>Q!c_Ga=gdkcBl-b&uJ?P; z58wk>rZtRZVMUc`6|-Dx9E(`9SZ8Y<>t@xk?p7`9VQpYNtpk7`#d=#Ou|C#WteuX)l23R+>Pdxzf_DIb|$|J-X9}}9p;wutFP%pv<)&+)6l>qHK=?&sHF4VX(#wr=Hr0~R4K(;v8age{6qm{0h%z+%`2 zI+csZ*gDfnayq{rSQjh;j^^S~wyyLkV)MWA8%do0Kwg$>$}U*{Zk21wu2v0M!f%2s zaof@3R8)*pbPtldlYCA(%TYz_9tNvRwZ`1!^8HhZ$ZZsK>Oj|F!GV}V!)wKEokMUeQ(M==t<8%sLvyJduUSd2^N?vh&bi9zU& z6py^6wMV`~WDZY!2Y$EUw?$*Z(K$S*xsa)ts?W;YO~QiBJAym{{8@Gsd5IlOUIY9OJC1zDPQiKE8Du9ro95sftb^G3bO^hE zj$#+$=;|W67rtBoZ$%E0+m3q&-iq$Qj)I>NrwLO7Z$&5bt?)wPG@+9J1DM!hn!xXb z9m8AEvHUJz4)(-`^KI}XVuz_GzZ;lG&e8iyAw0;c_LahPNXov_8nLf*n%eS#ktZ!b zxvwNPl@7qar1i-YhxTG)M=2Q_8U9EvP^Syxn-#4sq336id?vQ3Zr{cahb7#TY6E$>Rpdtd(iTpw7eHB?@i15(DGeq zd0$%IkCykR<-5}I0knJ|EgwY72h;K)w0tNnA4bcE)AA9td?YO&Ma%POd4AFww+rhl zNYeKUx-dyUDCnXj{ji{mleC;8mn7*&MR;j~R&(aE1kE28;pIvCNkNZJ(oYK-(|5gX z%>OCo&|{PIbAle1q+by9_$2+JpeH!R@;F*gl_$m~=Jc26HWi!53J{pYP8P-n?GwkX zm9fekUmm6+To5>W4FjwN4>@fjBlQ7mPL5o&ixbvK@k!eg+{8IgWxR5GtU^wWy$O15 zEbeo3hnJiTi#=A&x%+Rn?g`vnxmXPF;z}WpmUmKYk|-NTq!31CHdN;&=JvTNkF}ev z?FpY)WUL&pqq-p#_TTob5c%ksRNap$N&(%WQT)@2i+J-bYoS# zYP)WEf|miH^YF9q6UXP{(VEYx)_hB@D~#407w@`-zl+w~L>4JAdu_H})M9$^0xZ37 zgtFOsB}gxtEhT+irB{jjY_?w0i9_*XaWJ9JUwUk|-p~Qzcws!82*8Hc+d3d4UJ}oc zx+S_U(5=a_$vL}9-KvUJN!`NMtE`{WtD^ESVo9XjgL;z;;Hd*ffmQd z8q3G2g3?PpV5!T;>O@)M5z$0h*vZsWkm^l(6;bd)uAQDEHnJ~gB@hRK2ied(kv_WxqXdLw9+rWl;p!z8`)Fa&nzt>WB zf(>F9K-l1qLHeGp)Awv;gFoxUxv;@pmH1bc_~r7>sfowOJ1cjp+6U&iLnn^FNFuU* zS{uo((i{`^FsGG0>{La4P~I!GsIl>0srG17T~riBVY!d45PB9^{T`#y*v}wNoC0J;oqHsy*`0?8n|DE$l6_ zKl=|kh`mh?W$%z9*t_It_8uQNeM>%M-;p2L_qZLiQ_N z&3>c%vmNw!PUuOT((|}YFXfD0#T|M*cj*><<@p{SrVrxt%g^yl`ZDiCKf))IKf#Lt zKId`zJMU@{-rcf!FRKslYvu8NRtXnc9cx`j`&?&348?R=K?8lPi*#CNxT;0vr@_(D5_?}1&L1$Gy{*zU=f zU>|6)J&^BZm+-yqO1{dT%Ioaue677FZ?ISL{p=0A$v%{Cu#e#T+o$jY?T!2(dlNsz zzKI`d-_DP;ALd8ckMg7KC-`ypd;BE(Q+~4jH9yt^D)xpJV^^q#-@uyr-`PR@W_Aj{g`LfBXXo)d*p*oEU5B;a-?6s4kKfB4 z<=ffQ{C@T-e~`V$A7(%BN7xSjJSY4G?(-MA z`~$w4f58vrU-BdP&-_^a3*X3p<2N~!-|blZKF8+IIgGym{0+z9?>a932=H?!%y&4M z4tKJgnA6GWhQEWH&dxBWi!;{g>Wl|o?R0l$I6a)DfGeHePMx!hv%%@_9OVpgj(3JT zCpme}B~HF`l~e5e%_(s8|C>cDXah?c~gL z2RQTGVb1PufwRCZa~8YPoJH;oXQ?~eS>~>BR=ADMN_V}p%00?iz?j3x*MH! z?zK*{d$ZHx-r;O;A8-zEpK=az-*gUk-*=92KXZb%iopZd=c(3Ce=OS;RbFsIlbE&tFbGg^zZ1j$EuJlfIZt~7>ZuTy5ZuS1* zZ1%P}TfAqTyS$g3ZQdKsJ>DnIcJDjq0q;lWiBQOSGL+-I7>YSBg$kUPL$jS%LQ9=D zL;E;yg&LgygbsJ!4jl>nWar(`na+Em^8hb)J`CO9d>q>5d=`4p`8@Q3^Hu2I&Uc{? zobN-QI6s7bb$$%(aJ~<_&M)Dx^J};pU|;9=@IaS@3tc-r!3~A0-0bi?H#fY}jf4+z zJBJT*yM&K%yM|A5Q4dF|I-G=Z*{A;z_5I&!O zqjnp@=kRZVVYeZCCjSl?_C~{}@$Z3QZ!~-|{{a~GM#CrYAAw z5Ma4vT6iCa0*jED;nj`>EK25tS2{MZ7?~HYahSt#H+n&MFPxik+?QSyUgEe8_D0Fl z@E%SG7+xzE-rWg18Q7X!9-iy?xSH0T)P`q6<2}-YtO?J6-g~&ayl=SL$ws_hq#-=n z$w9o{WWR8w(+N8+eMn1qf|Cnu7qWkNtP=s&mmCx>ccQ@hkwe2JP7GLoazwb$=?rXF za&$P)=>lv3IW9cH=?ZKhIWauci31x%P6-ckx&a$ZP7m+ubO$zsoP~bw0cI??2oR)+Rb%p>NO{av`Izxetp$kKMI>WGkJ(jKx&2)wX8%OsKjdex<8&8i9 z4R=NYn?O(UzHvrDZz||{-Um(|u!(dFDRJ_FRnkxNb-zhiKB_yhl~y^;atcJKHJMsY zA+Sl-Yhs|RqRUozEcWp zGA`GzcFKTF;XYa7lmmm0CLhS0r|`SUBQocy&LA>N?x0sYf3q)lMk8LOv)Mk|83SyR z%k2rySYTCdC%e!Y2W+xCLzg?n+tuph;3fi@;^kRUX9BRP-We#j0$86;fJpzV|LQ3uzQW2XT4V+?B46E zVt<;!3fJi#@`Q{Y#t|w26pAgyd1eZ=^TP=(3@j+kRdoEivCOn z?1VF#@;}nAvS<0R9zQnOv;RYN3R*vWv+HIXM?Uf?Nb@#C)@B>$I&z!UxDDYPW?RbAKiv<K2l2ZV~C}mXJPfDe32ykpj0I<}`uKcPq$ZcM_?0t4Omu8zcW5 za*jKfY;+fro83LgZSErSkh_>X0{mHbDS64=le`A_A9ru^nY)U7?e0T%x@&2U+dv1o z`_UozZqz8Z8Hf5UbT9Yd_HIL9_1)?=gfjzceR&(gnF&nZhHz$Kbt`W}IJ1Gt+Yrti ztVZQ+2xm87fB7~97CuXF2cE-XBU_)8XT&n}fl_!A84g08+-Kx;mxsIHCC-&{ z6X!~P+}|Dx_Lz~{4Z5$PNDu&>O-VS$Vgmw)AJS%WCX*#IJ|vjJzpCc42c_MKu8KWK%lSeB@9sbJ|V z4cW15(H6Y{GR1@B**V=e;tV`Hr^nS2^tpmWcyZO@pTp)dPc>f6&NTq9qfLQ{lMRS$GjyVBW6{0?Xy29wNGY32xA$;?WO%LL(#K z>M=UnyyB&v4N+O|yhXr0q?jolZc%Fww?LEx&$a-+dH5|#c)0KoaW=1?CIn`l$T;&v z+i4F6cdMWOKrX_=&BHSdBsh_w(+F-_yC=fKodgeeDm>ij@Nj3q!<_{WcQ!oSIq-1j z!o!_M=DBDU_hPc#y_D3smyt&I3Ua8sksR$_15bA~InUihF2uV5ZgFoS54bmz$K5;0 zGwxmF6ZdZNqkBK)_?TG8#Z6oHA=(4@0DM4fnENOl3pmkzg3fZErSseu=mPiObdmcS zUFyD0*SK%eM)xgxu=_T>%zcMm?S4paa6h6qxu4O;+^^^>?$`7!_j~$|`!oI4{e}MQ z{!V}MsKq_o%JnQO>M^T}=UCl5*XrqYvif?tR)L4N(|R#$sn^w7>BX&jua|X@*V{VG z>tmhn?P8q?{9>=4bpv*!wtC&M5i!_$$Qxlj?iE@udnMLKUa3vI(YED{u|03Bo$HOW zi@hr8p}!F~IqcG42iYFQj>1l{?1y4lU-JQkCL)%@0CnD{bvqX7ln+NyR ztnZzr(nHU)-j_R!A+o^wzviw4-lppNuf5Ma-Fxmi_dV}EJsvW9WO_;{`BjF99w8|q zWDL!bQj`j*NF*UcQtC$Hg$zx!|2}Wuz4zT`pL6a$ zXRq~LYp=c5Y_TKKY!y1wSH;_~q`^2(lcuBRin|=Wm`(&};^@T;(w^Kc-j2uV7!?Y%h6WIPs1NZ(sOBUV6k1Na`2bm}&MoeZhk08Cvm^$)0

1S*(79i=FJPgN2occ5)Tc~!?Yn<%+Mlq4%5 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 a(So9@x1kkJ_;$2i(B6Ue8MJp2?f(J&N)LJf diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index 3abbf217cf1a77d804f0c36fdb7e932aa07bffec..6fcae3df04532d44972f4a512358bbd33f4368cd 100644 GIT binary patch delta 9290 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 delta 8641 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 22f9437f037f97b4b4953fdfaa406c3dea65c031..4e64606a29e4f1f75df20151fa6b3c8aaeedfd62 100644 GIT binary patch delta 59 zcmbQwHJ@ukD~qNj11Fmm10S0;gD{&7gA|)BgCd(9g9e*DgFc%BgBhD6gDsmAgA1GU PUJl&fh;uH2ke}${e9BR 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 N8_4}toXsjn@e6l-ML7!6^9LBoi3fWY^sdf>vuq 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 literal 5987 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 delta 132 zcmaFJevXCf)W2Q(7#J9g8AK*>HBFoy&&WBMmGSaqKPK%I1_nkTWMyCjlI%b=o(#-D z$iTp^rLD7_fny_($;7|~B)NbzP#CC?lYtw^Qh+F9;9=ke@<1|t4E#VtKr8_UL7-|z L1|cAii9r|u&IS%E diff --git a/classes/Main.class b/classes/Main.class index 3b1dabf..945e228 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -254,6 +254,21 @@ L1: iload 7 iload 6 isub iinc + invokestatic Main/campos_estaticos(I) I ireturn .end method +.method static campos_estaticos(I)I + ldc 240 + putstatic Teste/kadls I + ldc 8 + dup + putstatic Teste/iqowd I + getstatic Teste/kadls I + iload_0 + idiv + dup + getstatic Teste/iqowd I + imul + ireturn +.end method .end class \ No newline at end of file diff --git a/classes/Teste.class b/classes/Teste.class index ad14f32..ed1a5d9 100644 --- a/classes/Teste.class +++ b/classes/Teste.class @@ -1,6 +1,8 @@ .class Teste .field abc I .field xyz I +.field static kadls I +.field static iqowd I .method () V return .end method diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 6df3448..f61c987 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -80,7 +80,7 @@ definicaoClasse superClasse : '.super' (b = ID | b = REF)-> ^(EXTENDS $b) ; membroClasse - : '.field' 'static'? ID tipo -> ^(FIELD_DECL ID tipo) + : '.field' st = 'static'? ID tipo -> ^(FIELD_DECL $st? ID tipo) | '.method' INIT (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' -> ^(CONSTR_DECL INIT $ret parametros limite? ^(BODY operacao*)) | '.method' 'static'? ID (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' @@ -91,9 +91,7 @@ limite : '.limit locals' INTEIRO -> ^(LIMIT INTEIRO); parametros : '()' -> ^(PARAMS VOID) - | ( - a = TIPO_REF - )+ + | ( a = INT | a = TIPO_REF) -> ^(PARAMS $a)+ ; @@ -227,9 +225,7 @@ REF : (ID '/')+ ( ID | INIT); TIPO_REF: ('L'ID ('/' ID)*';' | INT)+; -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; - -//LETRA: ('a'..'z' | 'A'..'Z'); +ID: ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.' | '_')*; NEWLINE : '\n'+; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 718447b..c108edd 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -64,11 +64,12 @@ entraNaClasse ; declaracaoVariavel - : ^(FIELD_DECL ID tipo =.) + : ^(FIELD_DECL (st =.)? ID tipo =.) { System.out.println("linha "+$ID.getLine()+": def "+$ID.text); $tipo.escopo = escopoAtual; - SimboloVariavel variavel = new SimboloVariavel($ID.text,null); + boolean estatico = $st != null; + SimboloVariavel variavel = new SimboloVariavel($ID.text,null,estatico); variavel.def = $ID; $ID.simbolo = variavel; escopoAtual.definir(variavel); diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 7628cc2..f9c14b0 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -65,7 +65,7 @@ options { BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, - simboloClasse.getConstantPool().indexOf(simboloVariavel)); + simboloClasse.obterIdentificadorVariavel(simboloVariavel)); } @@ -154,7 +154,7 @@ entraNaClasse ; declaracaoVariavel - : ^(FIELD_DECL ID tip =.) + : ^(FIELD_DECL .? ID tip =.) { if ($tip.getText().startsWith("L")) $ID.simbolo.tipo = resolverTipo($tip.getText().substring(0, $tip.getText().length() - 1)); diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 3c8a65c..a0f6c67 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-25 15:56:07 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-26 21:32:08 package br.ufpb.iged.interpretador.parser; @@ -1951,8 +1951,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:8: '' { match(""); @@ -1974,8 +1974,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:7: 'I' { match('I'); @@ -1995,8 +1995,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:8: 'V' { match('V'); @@ -2016,10 +2016,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -2038,7 +2038,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:9: 'null' { match("null"); @@ -2047,7 +2047,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:18: 'NULL' { match("NULL"); @@ -2075,10 +2075,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -2087,7 +2087,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:11: '-' { match('-'); @@ -2097,7 +2097,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2152,10 +2152,10 @@ public final void mREF() throws RecognitionException { try { int _type = REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( ( ID '/' )+ ( ID | INIT ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: ( ID '/' )+ ( ID | INIT ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:6: ( ( ID '/' )+ ( ID | INIT ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:9: ( ID '/' )+ ( ID | INIT ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: ( ID '/' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:9: ( ID '/' )+ int cnt4=0; loop4: do { @@ -2163,7 +2163,7 @@ public final void mREF() throws RecognitionException { alt4 = dfa4.predict(input); switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:10: ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:10: ID '/' { mID(); @@ -2183,11 +2183,11 @@ public final void mREF() throws RecognitionException { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:19: ( ID | INIT ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:19: ( ID | INIT ) int alt5=2; int LA5_0 = input.LA(1); - if ( ((LA5_0 >= 'A' && LA5_0 <= 'Z')||(LA5_0 >= 'a' && LA5_0 <= 'z')) ) { + if ( ((LA5_0 >= 'A' && LA5_0 <= 'Z')||LA5_0=='_'||(LA5_0 >= 'a' && LA5_0 <= 'z')) ) { alt5=1; } else if ( (LA5_0=='<') ) { @@ -2202,7 +2202,7 @@ else if ( (LA5_0=='<') ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:21: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:21: ID { mID(); @@ -2210,7 +2210,7 @@ else if ( (LA5_0=='<') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:26: INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:26: INIT { mINIT(); @@ -2237,10 +2237,10 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:9: ( ( 'L' ID ( '/' ID )* ';' | INT )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:11: ( 'L' ID ( '/' ID )* ';' | INT )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: ( ( 'L' ID ( '/' ID )* ';' | INT )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: ( 'L' ID ( '/' ID )* ';' | INT )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:11: ( 'L' ID ( '/' ID )* ';' | INT )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: ( 'L' ID ( '/' ID )* ';' | INT )+ int cnt7=0; loop7: do { @@ -2257,14 +2257,14 @@ else if ( (LA7_0=='I') ) { switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:12: 'L' ID ( '/' ID )* ';' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:12: 'L' ID ( '/' ID )* ';' { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:18: ( '/' ID )* loop6: do { int alt6=2; @@ -2277,7 +2277,7 @@ else if ( (LA7_0=='I') ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:19: '/' ID { match('/'); @@ -2298,7 +2298,7 @@ else if ( (LA7_0=='I') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:33: INT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:33: INT { mINT(); @@ -2332,10 +2332,10 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:3: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' | '_' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:5: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' | '_' )* { - if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); } else { @@ -2345,13 +2345,13 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:33: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' | '_' )* loop8: do { int alt8=2; int LA8_0 = input.LA(1); - if ( (LA8_0=='.'||(LA8_0 >= '0' && LA8_0 <= '9')||(LA8_0 >= 'A' && LA8_0 <= 'Z')||(LA8_0 >= 'a' && LA8_0 <= 'z')) ) { + if ( (LA8_0=='.'||(LA8_0 >= '0' && LA8_0 <= '9')||(LA8_0 >= 'A' && LA8_0 <= 'Z')||LA8_0=='_'||(LA8_0 >= 'a' && LA8_0 <= 'z')) ) { alt8=1; } @@ -2360,7 +2360,7 @@ public final void mID() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { - if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + if ( input.LA(1)=='.'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); } else { @@ -2395,10 +2395,10 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:9: ( ( '\\n' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:11: ( '\\n' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:9: ( ( '\\n' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: ( '\\n' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:11: ( '\\n' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: ( '\\n' )+ int cnt9=0; loop9: do { @@ -2412,7 +2412,7 @@ public final void mNEWLINE() throws RecognitionException { switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:11: '\\n' { match('\n'); @@ -2445,8 +2445,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -3209,10 +3209,10 @@ public void mTokens() throws RecognitionException { static final String DFA4_specialS = "\5\uffff}>"; static final String[] DFA4_transitionS = { - "\1\2\4\uffff\32\1\6\uffff\32\1", - "\1\3\1\4\12\3\7\uffff\32\3\6\uffff\32\3", + "\1\2\4\uffff\32\1\4\uffff\1\1\1\uffff\32\1", + "\1\3\1\4\12\3\7\uffff\32\3\4\uffff\1\3\1\uffff\32\3", "", - "\1\3\1\4\12\3\7\uffff\32\3\6\uffff\32\3", + "\1\3\1\4\12\3\7\uffff\32\3\4\uffff\1\3\1\uffff\32\3", "" }; @@ -3246,48 +3246,50 @@ public DFA4(BaseRecognizer recognizer) { this.transition = DFA4_transition; } public String getDescription() { - return "()+ loopback of 226:9: ( ID '/' )+"; + return "()+ loopback of 224:9: ( ID '/' )+"; } } static final String DFA10_eotS = "\1\uffff\1\30\3\uffff\11\44\1\uffff\1\75\1\100\1\44\1\uffff\2\44"+ "\12\uffff\5\44\2\uffff\27\44\1\uffff\1\44\1\146\1\uffff\2\44\1\uffff"+ - "\4\44\1\157\6\44\1\uffff\11\44\1\u0083\4\44\1\u0089\1\u008a\1\u008b"+ - "\1\44\1\u008e\3\44\1\uffff\1\44\1\uffff\1\44\1\uffff\4\44\1\uffff"+ - "\2\44\1\u009c\1\u009d\1\u009e\1\44\1\u00a0\1\uffff\1\u00a2\1\u00a3"+ - "\1\u00a4\1\u00a5\1\u00a6\1\u00a7\1\u00a8\1\44\1\u00aa\1\u00ab\1"+ - "\44\1\uffff\1\u00ad\2\44\1\u00b0\1\u00b1\3\uffff\1\u00b2\1\u00b3"+ - "\1\uffff\4\44\1\u00b2\1\45\1\uffff\1\44\1\u00bd\4\44\3\uffff\1\44"+ - "\11\uffff\1\u00c5\2\uffff\1\44\1\uffff\2\44\4\uffff\4\44\1\45\2"+ - "\uffff\1\44\2\uffff\1\44\1\u00d4\3\44\3\uffff\2\44\1\u00e1\2\44"+ - "\1\u00e4\1\u00e5\5\uffff\1\u00e6\2\uffff\2\44\6\uffff\2\44\1\u00fb"+ - "\2\uffff\2\44\7\uffff\1\u0102\1\44\13\uffff\3\44\5\uffff\1\u010b"+ - "\1\44\1\uffff\1\u010d\4\uffff\3\44\1\uffff\1\u0111\1\uffff\3\44"+ - "\1\uffff\4\44\1\u0119\1\44\1\u011b\1\uffff\1\u011c\2\uffff"; + "\4\44\1\157\20\44\1\u0083\4\44\1\u0089\1\u008a\1\u008b\1\44\1\u008e"+ + "\3\44\1\uffff\1\44\1\uffff\1\44\1\uffff\4\44\1\uffff\2\44\1\u009c"+ + "\1\u009d\1\u009e\1\44\1\u00a0\1\44\1\u00a2\1\u00a3\1\u00a4\1\u00a5"+ + "\1\u00a6\1\u00a7\1\u00a8\1\44\1\u00aa\1\u00ab\1\44\1\uffff\1\u00ad"+ + "\2\44\1\u00b0\1\u00b1\3\uffff\1\u00b2\1\u00b3\1\uffff\4\44\1\u00b2"+ + "\1\45\1\uffff\1\44\1\u00bd\4\44\3\uffff\1\44\1\uffff\1\44\7\uffff"+ + "\1\u00c5\2\uffff\1\44\1\uffff\2\44\4\uffff\4\44\1\45\2\uffff\2\44"+ + "\1\uffff\1\44\1\u00d4\5\44\1\uffff\2\44\1\u00e1\2\44\1\u00e4\1\u00e5"+ + "\1\44\1\u00e7\1\u00e8\1\u00e9\1\u00ea\1\u00eb\1\44\1\uffff\4\44"+ + "\1\u00fd\1\u00fe\1\u00ff\1\u0100\2\44\1\u0104\1\44\1\uffff\2\44"+ + "\2\uffff\1\44\5\uffff\1\u010c\1\u010d\1\u010e\1\u010f\1\u0110\1"+ + "\44\1\u0112\1\u0113\1\u0114\1\u0115\1\u0116\1\u0117\5\44\4\uffff"+ + "\3\44\1\uffff\1\u0122\1\u0123\1\u0124\1\u0125\1\u0126\2\44\5\uffff"+ + "\1\u0129\6\uffff\1\u012a\1\u012b\1\u012c\1\u012d\1\u012e\1\u012f"+ + "\1\u0130\3\44\5\uffff\1\u0134\1\44\10\uffff\3\44\1\uffff\1\u0139"+ + "\3\44\1\uffff\1\44\1\u013e\1\44\1\u0140\1\uffff\1\u0141\2\uffff"; static final String DFA10_eofS = - "\u011d\uffff"; + "\u0142\uffff"; static final String DFA10_minS = "\1\11\1\51\1\uffff\1\143\1\uffff\11\56\1\uffff\3\56\1\uffff\2\56"+ "\5\uffff\1\156\4\uffff\5\56\2\uffff\27\56\1\uffff\2\56\1\uffff\2"+ - "\56\1\144\13\56\1\151\26\56\1\uffff\1\56\1\74\1\56\1\40\4\56\1\uffff"+ - "\7\56\1\143\13\56\1\uffff\5\56\3\uffff\2\56\1\uffff\6\56\1\143\6"+ - "\56\3\uffff\1\56\1\uffff\1\155\7\uffff\1\56\2\uffff\1\56\1\uffff"+ - "\2\56\4\uffff\5\56\2\uffff\1\56\1\60\1\uffff\5\56\1\160\1\60\1\uffff"+ - "\7\56\5\uffff\1\56\1\60\1\uffff\2\56\1\60\1\145\4\uffff\3\56\1\60"+ - "\1\uffff\2\56\7\uffff\2\56\10\uffff\2\145\1\uffff\3\56\5\uffff\2"+ - "\56\1\uffff\1\56\4\uffff\3\56\1\uffff\1\56\1\uffff\3\56\1\uffff"+ - "\7\56\1\uffff\1\56\2\uffff"; + "\56\1\144\42\56\1\uffff\1\56\1\74\1\56\1\40\4\56\1\uffff\23\56\1"+ + "\uffff\5\56\3\uffff\2\56\1\uffff\6\56\1\143\6\56\3\uffff\1\56\1"+ + "\uffff\1\56\7\uffff\1\56\2\uffff\1\56\1\uffff\2\56\4\uffff\5\56"+ + "\2\uffff\2\56\1\uffff\7\56\1\uffff\16\56\1\uffff\14\56\1\uffff\2"+ + "\56\2\uffff\1\56\5\uffff\21\56\4\uffff\3\56\1\uffff\7\56\5\uffff"+ + "\1\56\6\uffff\12\56\5\uffff\2\56\10\uffff\3\56\1\uffff\4\56\1\uffff"+ + "\4\56\1\uffff\1\56\2\uffff"; static final String DFA10_maxS = "\1\172\1\51\1\uffff\1\163\1\uffff\11\172\1\uffff\3\172\1\uffff\2"+ "\172\5\uffff\1\156\4\uffff\5\172\2\uffff\27\172\1\uffff\2\172\1"+ - "\uffff\2\172\1\144\13\172\1\151\26\172\1\uffff\3\172\1\40\4\172"+ - "\1\uffff\7\172\1\143\13\172\1\uffff\5\172\3\uffff\2\172\1\uffff"+ - "\6\172\1\155\6\172\3\uffff\1\172\1\uffff\1\155\7\uffff\1\172\2\uffff"+ - "\1\172\1\uffff\2\172\4\uffff\5\172\2\uffff\1\172\1\63\1\uffff\5"+ - "\172\1\160\1\63\1\uffff\7\172\5\uffff\1\172\1\63\1\uffff\2\172\1"+ - "\155\1\156\4\uffff\3\172\1\63\1\uffff\2\172\7\uffff\2\172\10\uffff"+ - "\2\164\1\uffff\3\172\5\uffff\2\172\1\uffff\1\172\4\uffff\3\172\1"+ - "\uffff\1\172\1\uffff\3\172\1\uffff\7\172\1\uffff\1\172\2\uffff"; + "\uffff\2\172\1\144\42\172\1\uffff\3\172\1\40\4\172\1\uffff\23\172"+ + "\1\uffff\5\172\3\uffff\2\172\1\uffff\6\172\1\155\6\172\3\uffff\1"+ + "\172\1\uffff\1\172\7\uffff\1\172\2\uffff\1\172\1\uffff\2\172\4\uffff"+ + "\5\172\2\uffff\2\172\1\uffff\7\172\1\uffff\16\172\1\uffff\14\172"+ + "\1\uffff\2\172\2\uffff\1\172\5\uffff\21\172\4\uffff\3\172\1\uffff"+ + "\7\172\5\uffff\1\172\6\uffff\12\172\5\uffff\2\172\10\uffff\3\172"+ + "\1\uffff\4\172\1\uffff\4\172\1\uffff\1\172\2\uffff"; static final String DFA10_acceptS = "\2\uffff\1\3\1\uffff\1\13\11\uffff\1\120\3\uffff\1\124\2\uffff\1"+ "\130\1\131\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\1\12\5\uffff\1\127"+ @@ -3295,48 +3297,53 @@ public String getDescription() { "\23\uffff\1\75\5\uffff\1\107\1\110\1\111\2\uffff\1\112\15\uffff"+ "\1\33\1\34\1\35\1\uffff\1\45\1\uffff\1\54\1\55\1\56\1\57\1\60\1"+ "\61\1\62\1\uffff\1\70\1\71\1\uffff\1\76\2\uffff\1\105\1\106\1\123"+ - "\1\113\5\uffff\1\5\1\6\2\uffff\1\15\7\uffff\1\63\7\uffff\1\14\1"+ - "\16\1\17\1\20\1\21\2\uffff\1\23\4\uffff\1\64\1\65\1\66\1\67\4\uffff"+ - "\1\100\2\uffff\1\116\1\117\1\22\1\24\1\25\1\26\1\27\2\uffff\1\36"+ - "\1\37\1\40\1\41\1\42\1\43\1\44\1\46\2\uffff\1\53\3\uffff\1\77\1"+ - "\101\1\102\1\103\1\104\2\uffff\1\31\1\uffff\1\47\1\50\1\51\1\52"+ - "\3\uffff\1\114\1\uffff\1\32\3\uffff\1\115\7\uffff\1\73\1\uffff\1"+ - "\72\1\74"; + "\1\113\5\uffff\1\5\1\6\2\uffff\1\15\7\uffff\1\63\16\uffff\1\23\14"+ + "\uffff\1\100\2\uffff\1\116\1\117\1\uffff\1\16\1\17\1\20\1\21\1\22"+ + "\21\uffff\1\64\1\65\1\66\1\67\3\uffff\1\77\7\uffff\1\24\1\25\1\26"+ + "\1\27\1\31\1\uffff\1\36\1\37\1\40\1\41\1\42\1\43\12\uffff\1\101"+ + "\1\102\1\103\1\104\1\114\2\uffff\1\32\1\44\1\46\1\47\1\50\1\51\1"+ + "\52\1\53\3\uffff\1\115\4\uffff\1\14\4\uffff\1\73\1\uffff\1\72\1"+ + "\74"; static final String DFA10_specialS = - "\u011d\uffff}>"; + "\u0142\uffff}>"; static final String[] DFA10_transitionS = { "\1\26\1\25\2\uffff\1\26\22\uffff\1\26\7\uffff\1\1\1\2\3\uffff"+ "\1\22\1\3\1\uffff\12\22\1\4\1\uffff\1\16\4\uffff\10\24\1\17"+ - "\2\24\1\23\1\24\1\21\7\24\1\20\4\24\6\uffff\1\5\2\24\1\6\2\24"+ - "\1\7\1\24\1\10\2\24\1\11\1\24\1\12\1\24\1\13\1\24\1\14\1\15"+ - "\7\24", + "\2\24\1\23\1\24\1\21\7\24\1\20\4\24\4\uffff\1\24\1\uffff\1\5"+ + "\2\24\1\6\2\24\1\7\1\24\1\10\2\24\1\11\1\24\1\12\1\24\1\13\1"+ + "\24\1\14\1\15\7\24", "\1\27", "", "\1\31\1\uffff\1\32\1\33\5\uffff\1\34\1\35\5\uffff\1\36", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\37\10\43\1\40"+ - "\5\43\1\41\1\42\7\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\46\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\47\11\43\1\50"+ - "\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\51\1\43\1\52\1\53"+ - "\1\43\1\54\2\43\1\55\2\43\1\56\1\57\1\60\1\61\2\43\1\62\1\63"+ - "\4\43\1\64\2\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\65\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\66\11\43\1\67"+ - "\5\43\1\70\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\71\5\43\1\72"+ - "\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\73\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\74\6\43", - "", - "\1\43\1\45\12\43\7\uffff\10\43\1\77\2\43\1\76\16\43\6\uffff"+ + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\37\10\43\1\40\5\43\1\41\1\42\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\24\43\1"+ + "\46\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\47\11\43\1\50\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\51\1"+ + "\43\1\52\1\53\1\43\1\54\2\43\1\55\2\43\1\56\1\57\1\60\1\61\2"+ + "\43\1\62\1\63\4\43\1\64\2\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\3\43\1"+ + "\65\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\66\11\43\1\67\5\43\1\70\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\71\5\43\1\72\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\73\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\74\6\43", + "", + "\1\43\1\45\12\43\7\uffff\10\43\1\77\2\43\1\76\16\43\4\uffff"+ + "\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\24\43\1\101\5\43\4\uffff\1\43\1\uffff"+ "\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\24\43\1\101\5\43\6\uffff\32\43", "", - "\1\43\1\45\12\43\7\uffff\32\102\6\uffff\32\102", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\102\4\uffff\1\102\1\uffff\32\102", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", "", "", "", @@ -3347,150 +3354,222 @@ public String getDescription() { "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\104\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\105\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\106\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\107\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\104\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\105\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\106\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\107\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\110\12\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\111\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\112\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\113\11\43\1\114"+ - "\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\115\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\116\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\17\43\1"+ + "\110\12\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\111\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\112\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\3\43\1"+ + "\113\11\43\1\114\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\115\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\116\21\43", "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\117\1\uffff\4\43\1"+ "\120\1\43\1\121\4\43\1\122\1\43\1\123\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\124\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\125\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\126\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\127\20\43\1\130"+ - "\4\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\131\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\132\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\133\1\134\5"+ + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\15\43\1"+ + "\124\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\125\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\24\43\1"+ + "\126\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\127\20\43\1\130\4\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\21\43\1"+ + "\131\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\132\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\133\1\134\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\135\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\136\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\26\43\1"+ + "\137\3\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\17\43\1"+ + "\140\12\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\141\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\17\43\1"+ + "\142\12\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\143\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\144\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\145\31"+ "\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\135\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\136\27\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\26\43\1\137\3\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\140\12\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\141\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\142\12\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\143\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\144\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\145\31\43", - "", - "\1\43\1\45\12\43\7\uffff\32\102\6\uffff\32\102", - "\1\43\1\45\12\43\7\uffff\10\43\1\77\2\43\1\76\16\43\6\uffff"+ - "\32\43", "", - "\1\43\1\45\12\43\7\uffff\13\43\1\147\16\43\6\uffff\32\43", - "\1\151\1\150\12\151\1\uffff\1\146\5\uffff\32\151\6\uffff\32"+ - "\151", + "\1\43\1\45\12\43\7\uffff\32\102\4\uffff\1\102\1\uffff\32\102", + "\1\43\1\45\12\43\7\uffff\10\43\1\77\2\43\1\76\16\43\4\uffff"+ + "\1\43\1\uffff\32\43", + "", + "\1\43\1\45\12\43\7\uffff\13\43\1\147\16\43\4\uffff\1\43\1\uffff"+ + "\32\43", + "\1\151\1\150\12\151\1\uffff\1\146\5\uffff\32\151\4\uffff\1"+ + "\151\1\uffff\32\151", "\1\152", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\153\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\154\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\155\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\156\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\5\43\1\160\14\43\1\161"+ - "\7\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\162\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\163\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\164\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\165\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\25\43\1\166\4\43", - "\1\167", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\20\43\1\170\11\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\171\16\43\1\172"+ - "\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\173\16\43\1\174"+ - "\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\175\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\176\27\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\177\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u0080\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\6\43\1\u0081\23\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\u0082\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\14\43\1\u0084\6\43\1"+ - "\u0085\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\u0086\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\43\1\u0087\30\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0088\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u008c\16\43", - "\1\43\1\45\2\43\1\u008d\7\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\5\43\1\u008f\14\43\1"+ - "\u0090\7\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0091\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u0092\6\43", - "", - "\1\43\1\45\12\43\7\uffff\13\43\1\u0093\16\43\6\uffff\32\43", - "\1\45\4\uffff\32\u0094\6\uffff\32\u0094", - "\1\151\1\150\12\151\1\uffff\1\146\5\uffff\32\151\6\uffff\32"+ - "\151", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\15\43\1"+ + "\153\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\154\31"+ + "\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\155\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\156\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\5\43\1"+ + "\160\14\43\1\161\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\162\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\3\43\1"+ + "\163\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\3\43\1"+ + "\164\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\15\43\1"+ + "\165\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\25\43\1"+ + "\166\4\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\167\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\20\43\1"+ + "\170\11\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\171\16\43\1\172\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\173\16\43\1\174\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\175\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\176\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\177\31"+ + "\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\u0080\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\6\43\1"+ + "\u0081\23\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\u0082\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\14\43\1"+ + "\u0084\6\43\1\u0085\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\16\43\1"+ + "\u0086\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\43\1"+ + "\u0087\30\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\21\43\1"+ + "\u0088\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\u008c\16\43", + "\1\43\1\45\2\43\1\u008d\7\43\7\uffff\32\43\4\uffff\1\43\1\uffff"+ + "\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\5\43\1"+ + "\u008f\14\43\1\u0090\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\24\43\1"+ + "\u0091\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u0092\6\43", + "", + "\1\43\1\45\12\43\7\uffff\13\43\1\u0093\16\43\4\uffff\1\43\1"+ + "\uffff\32\43", + "\1\45\4\uffff\32\u0094\4\uffff\1\u0094\1\uffff\32\u0094", + "\1\151\1\150\12\151\1\uffff\1\146\5\uffff\32\151\4\uffff\1"+ + "\151\1\uffff\32\151", "\1\u0095", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u0096\7\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u0097\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0098\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0099\10\43", - "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u009a\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u009b\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u009f\7\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\u00a1", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00a9\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\12\43\1\u00ac\17\43", - "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u00ae\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00af\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "", - "", - "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00b4\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00b5\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00b6\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00b7\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\u00b8\1\150\12\u00b8\1\uffff\1\146\5\uffff\32\u00b8\6\uffff"+ - "\32\u00b8", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\22\43\1"+ + "\u0096\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\3\43\1"+ + "\u0097\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\24\43\1"+ + "\u0098\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\21\43\1"+ + "\u0099\10\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\u009a\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u009b\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\22\43\1"+ + "\u009f\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\u00a1\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\3\43\1"+ + "\u00a9\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\12\43\1"+ + "\u00ac\17\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\24\43\1"+ + "\u00ae\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\21\43\1"+ + "\u00af\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "", + "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\u00b4\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u00b5\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\21\43\1"+ + "\u00b6\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\u00b7\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u00b8\1\150\12\u00b8\1\uffff\1\146\5\uffff\32\u00b8\4\uffff"+ + "\1\u00b8\1\uffff\32\u00b8", "\1\u00b9\11\uffff\1\u00ba", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00bb\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u00bb\6\43", "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00bc\1\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00be\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00bf\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c0\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u00c1\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\21\43\1"+ + "\u00be\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u00bf\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u00c0\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\u00c1"+ + "\31\43", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00c2\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u00c2\6\43", "", - "\1\u00c3", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\14\43\1"+ + "\u00c3\15\43", "", "", "", @@ -3501,121 +3580,207 @@ public String getDescription() { "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00c4\1\uffff\32\43", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c6\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u00c6\25\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00c7\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c8\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\21\43\1"+ + "\u00c7\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u00c8\25\43", "", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c9\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u00ca\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00cb\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u00cc\27\43", - "\1\u00b8\1\150\12\u00b8\1\uffff\1\146\5\uffff\32\u00b8\6\uffff"+ - "\32\u00b8", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u00c9\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\u00ca"+ + "\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\15\43\1"+ + "\u00cb\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\u00cc\27\43", + "\1\u00b8\1\150\12\u00b8\1\uffff\1\146\5\uffff\32\u00b8\4\uffff"+ + "\1\u00b8\1\uffff\32\u00b8", "", "", "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00cd\1\uffff\32\43", - "\1\u00ce\1\u00cf\1\u00d0\1\u00d1", + "\1\43\1\45\1\u00ce\1\u00cf\1\u00d0\1\u00d1\6\43\7\uffff\32"+ + "\43\4\uffff\1\43\1\uffff\32\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00d2\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\15\43\1"+ + "\u00d2\14\43", "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00d3\1\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u00d5\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00d6\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\u00d5\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u00d6\6\43", "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00d7\1\uffff\32\43", - "\1\u00d8", - "\1\u00d9\1\u00da\1\u00db\1\u00dc", - "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u00dd\2\43\1"+ - "\u00de\4\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00df\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\17\43\1"+ + "\u00d8\12\43", + "\1\43\1\45\1\u00d9\1\u00da\1\u00db\1\u00dc\6\43\7\uffff\32"+ + "\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\22\43\1"+ + "\u00dd\2\43\1\u00de\4\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\15\43\1"+ + "\u00df\14\43", "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00e0\1\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u00e2\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00e3\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\u00e2\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u00e3\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\15\43\1"+ + "\u00e6\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\1\u00ec\1\u00ed\1\u00ee\1\u00ef\6\43\7\uffff\32"+ + "\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\3\43\1"+ + "\u00f0\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\u00f1\21\43", + "\1\43\1\45\1\u00f2\1\u00f3\1\u00f4\1\u00f5\1\u00f6\1\u00f7"+ + "\4\43\7\uffff\32\43\4\uffff\1\43\1\uffff\14\43\1\u00f8\15\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u00f9\1\43\1\u00fa\4\43\1\u00fb\1\43\1\u00fc\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\17\43\1"+ + "\u0101\3\43\1\u0102\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\u0103\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\1\u0105\1\u0106\1\u0107\1\u0108\6\43\7\uffff\32"+ + "\43\4\uffff\1\43\1\uffff\32\43", "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\3\43\1"+ + "\u0109\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\u010a\21\43", "", "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\24\43\1"+ + "\u010b\5\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\u00e7\1\u00e8\1\u00e9\1\u00ea", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00eb\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00ec\21\43", - "\1\u00ed\1\u00ee\1\u00ef\1\u00f0\1\u00f1\1\u00f2\67\uffff\1"+ - "\u00f3", - "\1\u00f4\1\uffff\1\u00f5\4\uffff\1\u00f6\1\uffff\1\u00f7", "", "", "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\u0111\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\1\43\1\u0118\10\43\7\uffff\32\43\4\uffff\1\43\1"+ + "\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\20\43\1"+ + "\u0119\11\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u011a\16\43\1\u011b\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u011c\16\43\1\u011d\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u011e\25\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\u00f8\3\43\1"+ - "\u00f9\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00fa\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\u00fc\1\u00fd\1\u00fe\1\u00ff", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u0100\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0101\21\43", "", "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\4\43\1"+ + "\u011f\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\u0120"+ + "\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\21\43\1"+ + "\u0121\10\43", "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\u0127\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\u0128\16\43", "", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u0103\27\43", "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", "", "", "", "", "", "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\u0131\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u0132\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\23\43\1"+ + "\u0133\6\43", "", - "\1\u0104\16\uffff\1\u0105", - "\1\u0106\16\uffff\1\u0107", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u0108\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0109\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u010a\10\43", "", "", "", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\u0135\16\43", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u010c\27\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u010e\27\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u010f\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u0110\6\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\u0136\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\10\43\1"+ + "\u0137\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\24\43\1"+ + "\u0138\5\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0112\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0113\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0114\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\u013a"+ + "\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\2\43\1"+ + "\u013b\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\1\u013c"+ + "\31\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0115\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u0116\27\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0117\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u0118\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u011a\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\u013d\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\13\43\1"+ + "\u013f\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", "", "" }; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 1be0e7d..1bd9562 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-25 15:56:07 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-26 21:32:07 package br.ufpb.iged.interpretador.parser; @@ -1016,7 +1016,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: membroClasse, 36, superClasse, ID + // elements: membroClasse, 36, ID, superClasse // token labels: // rule labels: retval // token list labels: @@ -1231,7 +1231,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:1: membroClasse : ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT $ret parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:1: membroClasse : ( '.field' (st= 'static' )? ID tipo -> ^( FIELD_DECL ( $st)? ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT $ret parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1239,63 +1239,63 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST root_0 = null; + Token st=null; Token string_literal29=null; - Token string_literal30=null; - Token ID31=null; - Token string_literal33=null; - Token INIT34=null; - Token char_literal36=null; - Token char_literal38=null; - Token NEWLINE39=null; - Token NEWLINE41=null; + Token ID30=null; + Token string_literal32=null; + Token INIT33=null; + Token char_literal35=null; + Token char_literal37=null; + Token NEWLINE38=null; + Token NEWLINE40=null; + Token string_literal42=null; Token string_literal43=null; Token string_literal44=null; - Token string_literal45=null; - Token ID46=null; - Token char_literal48=null; - Token char_literal50=null; - Token NEWLINE51=null; - Token NEWLINE53=null; - Token string_literal55=null; + Token ID45=null; + Token char_literal47=null; + Token char_literal49=null; + Token NEWLINE50=null; + Token NEWLINE52=null; + Token string_literal54=null; AssemblerParser.tipo_return ret =null; - AssemblerParser.tipo_return tipo32 =null; + AssemblerParser.tipo_return tipo31 =null; - AssemblerParser.parametros_return parametros35 =null; + AssemblerParser.parametros_return parametros34 =null; - AssemblerParser.parametros_return parametros37 =null; + AssemblerParser.parametros_return parametros36 =null; - AssemblerParser.limite_return limite40 =null; + AssemblerParser.limite_return limite39 =null; - AssemblerParser.operacao_return operacao42 =null; + AssemblerParser.operacao_return operacao41 =null; - AssemblerParser.parametros_return parametros47 =null; + AssemblerParser.parametros_return parametros46 =null; - AssemblerParser.parametros_return parametros49 =null; + AssemblerParser.parametros_return parametros48 =null; - AssemblerParser.limite_return limite52 =null; + AssemblerParser.limite_return limite51 =null; - AssemblerParser.operacao_return operacao54 =null; + AssemblerParser.operacao_return operacao53 =null; + BytecodesAST st_tree=null; BytecodesAST string_literal29_tree=null; - BytecodesAST string_literal30_tree=null; - BytecodesAST ID31_tree=null; - BytecodesAST string_literal33_tree=null; - BytecodesAST INIT34_tree=null; - BytecodesAST char_literal36_tree=null; - BytecodesAST char_literal38_tree=null; - BytecodesAST NEWLINE39_tree=null; - BytecodesAST NEWLINE41_tree=null; + BytecodesAST ID30_tree=null; + BytecodesAST string_literal32_tree=null; + BytecodesAST INIT33_tree=null; + BytecodesAST char_literal35_tree=null; + BytecodesAST char_literal37_tree=null; + BytecodesAST NEWLINE38_tree=null; + BytecodesAST NEWLINE40_tree=null; + BytecodesAST string_literal42_tree=null; BytecodesAST string_literal43_tree=null; BytecodesAST string_literal44_tree=null; - BytecodesAST string_literal45_tree=null; - BytecodesAST ID46_tree=null; - BytecodesAST char_literal48_tree=null; - BytecodesAST char_literal50_tree=null; - BytecodesAST NEWLINE51_tree=null; - BytecodesAST NEWLINE53_tree=null; - BytecodesAST string_literal55_tree=null; + BytecodesAST ID45_tree=null; + BytecodesAST char_literal47_tree=null; + BytecodesAST char_literal49_tree=null; + BytecodesAST NEWLINE50_tree=null; + BytecodesAST NEWLINE52_tree=null; + BytecodesAST string_literal54_tree=null; RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_111=new RewriteRuleTokenStream(adaptor,"token 111"); @@ -1310,7 +1310,7 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:5: ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT $ret parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:5: ( '.field' (st= 'static' )? ID tipo -> ^( FIELD_DECL ( $st)? ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT $ret parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) int alt17=3; int LA17_0 = input.LA(1); @@ -1343,13 +1343,13 @@ else if ( (LA17_2==ID||LA17_2==111) ) { } switch (alt17) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.field' ( 'static' )? ID tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.field' (st= 'static' )? ID tipo { string_literal29=(Token)match(input,39,FOLLOW_39_in_membroClasse600); stream_39.add(string_literal29); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:16: ( 'static' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:19: (st= 'static' )? int alt9=2; int LA9_0 = input.LA(1); @@ -1358,10 +1358,10 @@ else if ( (LA17_2==ID||LA17_2==111) ) { } switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:16: 'static' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:19: st= 'static' { - string_literal30=(Token)match(input,111,FOLLOW_111_in_membroClasse602); - stream_111.add(string_literal30); + st=(Token)match(input,111,FOLLOW_111_in_membroClasse606); + stream_111.add(st); } @@ -1370,37 +1370,45 @@ else if ( (LA17_2==ID||LA17_2==111) ) { } - ID31=(Token)match(input,ID,FOLLOW_ID_in_membroClasse605); - stream_ID.add(ID31); + ID30=(Token)match(input,ID,FOLLOW_ID_in_membroClasse609); + stream_ID.add(ID30); - pushFollow(FOLLOW_tipo_in_membroClasse607); - tipo32=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse611); + tipo31=tipo(); state._fsp--; - stream_tipo.add(tipo32.getTree()); + stream_tipo.add(tipo31.getTree()); // AST REWRITE - // elements: ID, tipo - // token labels: + // elements: ID, tipo, st + // token labels: st // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; + RewriteRuleTokenStream stream_st=new RewriteRuleTokenStream(adaptor,"token st",st); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 83:34: -> ^( FIELD_DECL ID tipo ) + // 83:39: -> ^( FIELD_DECL ( $st)? ID tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:37: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:42: ^( FIELD_DECL ( $st)? ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(FIELD_DECL, "FIELD_DECL") , root_1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:56: ( $st)? + if ( stream_st.hasNext() ) { + adaptor.addChild(root_1, stream_st.nextNode()); + + } + stream_st.reset(); + adaptor.addChild(root_1, stream_ID.nextNode() ); @@ -1420,19 +1428,19 @@ else if ( (LA17_2==ID||LA17_2==111) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:7: '.method' INIT ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal33=(Token)match(input,41,FOLLOW_41_in_membroClasse625); - stream_41.add(string_literal33); + string_literal32=(Token)match(input,41,FOLLOW_41_in_membroClasse633); + stream_41.add(string_literal32); - INIT34=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse627); - stream_INIT.add(INIT34); + INIT33=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse635); + stream_INIT.add(INIT33); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:22: ( parametros | '(' parametros ')' ) int alt10=2; int LA10_0 = input.LA(1); - if ( (LA10_0==TIPO_REF||LA10_0==34) ) { + if ( (LA10_0==INT||LA10_0==TIPO_REF||LA10_0==34) ) { alt10=1; } else if ( (LA10_0==33) ) { @@ -1449,31 +1457,31 @@ else if ( (LA10_0==33) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:23: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse630); - parametros35=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse638); + parametros34=parametros(); state._fsp--; - stream_parametros.add(parametros35.getTree()); + stream_parametros.add(parametros34.getTree()); } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:36: '(' parametros ')' { - char_literal36=(Token)match(input,33,FOLLOW_33_in_membroClasse634); - stream_33.add(char_literal36); + char_literal35=(Token)match(input,33,FOLLOW_33_in_membroClasse642); + stream_33.add(char_literal35); - pushFollow(FOLLOW_parametros_in_membroClasse636); - parametros37=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse644); + parametros36=parametros(); state._fsp--; - stream_parametros.add(parametros37.getTree()); + stream_parametros.add(parametros36.getTree()); - char_literal38=(Token)match(input,35,FOLLOW_35_in_membroClasse638); - stream_35.add(char_literal38); + char_literal37=(Token)match(input,35,FOLLOW_35_in_membroClasse646); + stream_35.add(char_literal37); } @@ -1482,15 +1490,15 @@ else if ( (LA10_0==33) ) { } - pushFollow(FOLLOW_tipo_in_membroClasse645); + pushFollow(FOLLOW_tipo_in_membroClasse653); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE39=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse647); - stream_NEWLINE.add(NEWLINE39); + NEWLINE38=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse655); + stream_NEWLINE.add(NEWLINE38); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:75: ( limite NEWLINE )? @@ -1504,15 +1512,15 @@ else if ( (LA10_0==33) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:76: limite NEWLINE { - pushFollow(FOLLOW_limite_in_membroClasse650); - limite40=limite(); + pushFollow(FOLLOW_limite_in_membroClasse658); + limite39=limite(); state._fsp--; - stream_limite.add(limite40.getTree()); + stream_limite.add(limite39.getTree()); - NEWLINE41=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse652); - stream_NEWLINE.add(NEWLINE41); + NEWLINE40=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse660); + stream_NEWLINE.add(NEWLINE40); } @@ -1536,12 +1544,12 @@ else if ( (LA10_0==33) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:93: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse656); - operacao42=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse664); + operacao41=operacao(); state._fsp--; - stream_operacao.add(operacao42.getTree()); + stream_operacao.add(operacao41.getTree()); } break; @@ -1552,12 +1560,12 @@ else if ( (LA10_0==33) ) { } while (true); - string_literal43=(Token)match(input,38,FOLLOW_38_in_membroClasse659); - stream_38.add(string_literal43); + string_literal42=(Token)match(input,38,FOLLOW_38_in_membroClasse667); + stream_38.add(string_literal42); // AST REWRITE - // elements: INIT, operacao, limite, ret, parametros + // elements: INIT, ret, operacao, parametros, limite // token labels: // rule labels: ret, retval // token list labels: @@ -1622,8 +1630,8 @@ else if ( (LA10_0==33) ) { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:7: '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal44=(Token)match(input,41,FOLLOW_41_in_membroClasse691); - stream_41.add(string_literal44); + string_literal43=(Token)match(input,41,FOLLOW_41_in_membroClasse699); + stream_41.add(string_literal43); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:17: ( 'static' )? @@ -1637,8 +1645,8 @@ else if ( (LA10_0==33) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:17: 'static' { - string_literal45=(Token)match(input,111,FOLLOW_111_in_membroClasse693); - stream_111.add(string_literal45); + string_literal44=(Token)match(input,111,FOLLOW_111_in_membroClasse701); + stream_111.add(string_literal44); } @@ -1647,15 +1655,15 @@ else if ( (LA10_0==33) ) { } - ID46=(Token)match(input,ID,FOLLOW_ID_in_membroClasse696); - stream_ID.add(ID46); + ID45=(Token)match(input,ID,FOLLOW_ID_in_membroClasse704); + stream_ID.add(ID45); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:30: ( parametros | '(' parametros ')' ) int alt14=2; int LA14_0 = input.LA(1); - if ( (LA14_0==TIPO_REF||LA14_0==34) ) { + if ( (LA14_0==INT||LA14_0==TIPO_REF||LA14_0==34) ) { alt14=1; } else if ( (LA14_0==33) ) { @@ -1672,31 +1680,31 @@ else if ( (LA14_0==33) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:31: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse699); - parametros47=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse707); + parametros46=parametros(); state._fsp--; - stream_parametros.add(parametros47.getTree()); + stream_parametros.add(parametros46.getTree()); } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:44: '(' parametros ')' { - char_literal48=(Token)match(input,33,FOLLOW_33_in_membroClasse703); - stream_33.add(char_literal48); + char_literal47=(Token)match(input,33,FOLLOW_33_in_membroClasse711); + stream_33.add(char_literal47); - pushFollow(FOLLOW_parametros_in_membroClasse705); - parametros49=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse713); + parametros48=parametros(); state._fsp--; - stream_parametros.add(parametros49.getTree()); + stream_parametros.add(parametros48.getTree()); - char_literal50=(Token)match(input,35,FOLLOW_35_in_membroClasse707); - stream_35.add(char_literal50); + char_literal49=(Token)match(input,35,FOLLOW_35_in_membroClasse715); + stream_35.add(char_literal49); } @@ -1705,15 +1713,15 @@ else if ( (LA14_0==33) ) { } - pushFollow(FOLLOW_tipo_in_membroClasse714); + pushFollow(FOLLOW_tipo_in_membroClasse722); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE51=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse716); - stream_NEWLINE.add(NEWLINE51); + NEWLINE50=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse724); + stream_NEWLINE.add(NEWLINE50); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:83: ( limite NEWLINE )? @@ -1727,15 +1735,15 @@ else if ( (LA14_0==33) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:84: limite NEWLINE { - pushFollow(FOLLOW_limite_in_membroClasse719); - limite52=limite(); + pushFollow(FOLLOW_limite_in_membroClasse727); + limite51=limite(); state._fsp--; - stream_limite.add(limite52.getTree()); + stream_limite.add(limite51.getTree()); - NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse721); - stream_NEWLINE.add(NEWLINE53); + NEWLINE52=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse729); + stream_NEWLINE.add(NEWLINE52); } @@ -1759,12 +1767,12 @@ else if ( (LA14_0==33) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:101: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse725); - operacao54=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse733); + operacao53=operacao(); state._fsp--; - stream_operacao.add(operacao54.getTree()); + stream_operacao.add(operacao53.getTree()); } break; @@ -1775,12 +1783,12 @@ else if ( (LA14_0==33) ) { } while (true); - string_literal55=(Token)match(input,38,FOLLOW_38_in_membroClasse728); - stream_38.add(string_literal55); + string_literal54=(Token)match(input,38,FOLLOW_38_in_membroClasse736); + stream_38.add(string_literal54); // AST REWRITE - // elements: limite, parametros, ID, operacao, ret + // elements: operacao, limite, ret, ID, parametros // token labels: // rule labels: ret, retval // token list labels: @@ -1881,11 +1889,11 @@ public final AssemblerParser.limite_return limite() throws RecognitionException BytecodesAST root_0 = null; - Token string_literal56=null; - Token INTEIRO57=null; + Token string_literal55=null; + Token INTEIRO56=null; - BytecodesAST string_literal56_tree=null; - BytecodesAST INTEIRO57_tree=null; + BytecodesAST string_literal55_tree=null; + BytecodesAST INTEIRO56_tree=null; RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); @@ -1893,12 +1901,12 @@ public final AssemblerParser.limite_return limite() throws RecognitionException // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: ( '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:11: '.limit locals' INTEIRO { - string_literal56=(Token)match(input,40,FOLLOW_40_in_limite777); - stream_40.add(string_literal56); + string_literal55=(Token)match(input,40,FOLLOW_40_in_limite785); + stream_40.add(string_literal55); - INTEIRO57=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite779); - stream_INTEIRO.add(INTEIRO57); + INTEIRO56=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite787); + stream_INTEIRO.add(INTEIRO56); // AST REWRITE @@ -1964,7 +1972,7 @@ public static class parametros_return extends ParserRuleReturnScope { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= INT |a= TIPO_REF ) -> ( ^( PARAMS $a) )+ ); public final AssemblerParser.parametros_return parametros() throws RecognitionException { AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); @@ -1973,22 +1981,23 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx BytecodesAST root_0 = null; Token a=null; - Token string_literal58=null; + Token string_literal57=null; BytecodesAST a_tree=null; - BytecodesAST string_literal58_tree=null; + BytecodesAST string_literal57_tree=null; + RewriteRuleTokenStream stream_INT=new RewriteRuleTokenStream(adaptor,"token INT"); RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:2: ( '()' -> ^( PARAMS VOID ) | (a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:2: ( '()' -> ^( PARAMS VOID ) | (a= INT |a= TIPO_REF ) -> ( ^( PARAMS $a) )+ ) int alt19=2; int LA19_0 = input.LA(1); if ( (LA19_0==34) ) { alt19=1; } - else if ( (LA19_0==TIPO_REF) ) { + else if ( (LA19_0==INT||LA19_0==TIPO_REF) ) { alt19=2; } else { @@ -2002,8 +2011,8 @@ else if ( (LA19_0==TIPO_REF) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:4: '()' { - string_literal58=(Token)match(input,34,FOLLOW_34_in_parametros801); - stream_34.add(string_literal58); + string_literal57=(Token)match(input,34,FOLLOW_34_in_parametros809); + stream_34.add(string_literal57); // AST REWRITE @@ -2041,45 +2050,46 @@ else if ( (LA19_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= INT |a= TIPO_REF ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= TIPO_REF )+ - int cnt18=0; - loop18: - do { - int alt18=2; - int LA18_0 = input.LA(1); - - if ( (LA18_0==TIPO_REF) ) { - int LA18_1 = input.LA(2); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= INT |a= TIPO_REF ) + int alt18=2; + int LA18_0 = input.LA(1); - if ( (LA18_1==INT||(LA18_1 >= TIPO_REF && LA18_1 <= VOID)||LA18_1==35) ) { - alt18=1; - } + if ( (LA18_0==INT) ) { + alt18=1; + } + else if ( (LA18_0==TIPO_REF) ) { + alt18=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + throw nvae; - } + } + switch (alt18) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:6: a= INT + { + a=(Token)match(input,INT,FOLLOW_INT_in_parametros828); + stream_INT.add(a); - switch (alt18) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: a= TIPO_REF - { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros827); - stream_TIPO_REF.add(a); + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:16: a= TIPO_REF + { + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros836); + stream_TIPO_REF.add(a); - } - break; + } + break; - default : - if ( cnt18 >= 1 ) break loop18; - EarlyExitException eee = - new EarlyExitException(18, input); - throw eee; - } - cnt18++; - } while (true); + } // AST REWRITE @@ -2094,13 +2104,13 @@ else if ( (LA19_0==TIPO_REF) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 97:4: -> ( ^( PARAMS $a) )+ + // 95:4: -> ( ^( PARAMS $a) )+ { if ( !(stream_a.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:7: ^( PARAMS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:7: ^( PARAMS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2153,7 +2163,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: retorno : (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:1: retorno : (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ; public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -2169,10 +2179,10 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: ( (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:9: ( (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) int alt20=3; switch ( input.LA(1) ) { case 50: @@ -2200,27 +2210,27 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'areturn' { - a=(Token)match(input,50,FOLLOW_50_in_retorno873); + a=(Token)match(input,50,FOLLOW_50_in_retorno877); stream_50.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'ireturn' { - a=(Token)match(input,95,FOLLOW_95_in_retorno891); + a=(Token)match(input,95,FOLLOW_95_in_retorno895); stream_95.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'return' { - a=(Token)match(input,110,FOLLOW_110_in_retorno909); + a=(Token)match(input,110,FOLLOW_110_in_retorno913); stream_110.add(a); @@ -2242,9 +2252,9 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 105:10: -> ^( RETURN $a) + // 103:10: -> ^( RETURN $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: ^( RETURN $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: ^( RETURN $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2292,7 +2302,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:1: manipulacaoObjetos : (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:1: manipulacaoObjetos : (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -2302,33 +2312,33 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro Token a=null; Token b=null; - Token REF59=null; - Token REF61=null; - Token REF63=null; - Token REF65=null; + Token REF58=null; + Token REF60=null; + Token REF62=null; + Token REF64=null; + Token REF66=null; Token REF67=null; Token REF68=null; - Token REF69=null; AssemblerParser.parametrosRetorno_return d =null; - AssemblerParser.tipo_return tipo60 =null; + AssemblerParser.tipo_return tipo59 =null; - AssemblerParser.tipo_return tipo62 =null; + AssemblerParser.tipo_return tipo61 =null; - AssemblerParser.tipo_return tipo64 =null; + AssemblerParser.tipo_return tipo63 =null; - AssemblerParser.tipo_return tipo66 =null; + AssemblerParser.tipo_return tipo65 =null; BytecodesAST a_tree=null; BytecodesAST b_tree=null; - BytecodesAST REF59_tree=null; - BytecodesAST REF61_tree=null; - BytecodesAST REF63_tree=null; - BytecodesAST REF65_tree=null; + BytecodesAST REF58_tree=null; + BytecodesAST REF60_tree=null; + BytecodesAST REF62_tree=null; + BytecodesAST REF64_tree=null; + BytecodesAST REF66_tree=null; BytecodesAST REF67_tree=null; BytecodesAST REF68_tree=null; - BytecodesAST REF69_tree=null; RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); RewriteRuleTokenStream stream_109=new RewriteRuleTokenStream(adaptor,"token 109"); RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); @@ -2342,7 +2352,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_parametrosRetorno=new RewriteRuleSubtreeStream(adaptor,"rule parametrosRetorno"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:20: (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:20: (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ) int alt22=8; switch ( input.LA(1) ) { case 57: @@ -2395,22 +2405,22 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'getfield' REF tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:22: a= 'getfield' REF tipo { - a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos988); + a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos992); stream_57.add(a); - REF59=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos990); - stream_REF.add(REF59); + REF58=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos994); + stream_REF.add(REF58); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos992); - tipo60=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos996); + tipo59=tipo(); state._fsp--; - stream_tipo.add(tipo60.getTree()); + stream_tipo.add(tipo59.getTree()); // AST REWRITE // elements: REF, tipo, 57 @@ -2423,9 +2433,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 108:46: -> ^( 'getfield' REF tipo ) + // 106:46: -> ^( 'getfield' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:49: ^( 'getfield' REF tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:49: ^( 'getfield' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2449,22 +2459,22 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:8: a= 'getstatic' REF tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:8: a= 'getstatic' REF tipo { - a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1015); + a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1019); stream_58.add(a); - REF61=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1017); - stream_REF.add(REF61); + REF60=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1021); + stream_REF.add(REF60); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1019); - tipo62=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1023); + tipo61=tipo(); state._fsp--; - stream_tipo.add(tipo62.getTree()); + stream_tipo.add(tipo61.getTree()); // AST REWRITE // elements: tipo, REF, 58 @@ -2477,9 +2487,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 109:33: -> ^( 'getstatic' REF tipo ) + // 107:33: -> ^( 'getstatic' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:36: ^( 'getstatic' REF tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:36: ^( 'getstatic' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2503,22 +2513,22 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:22: a= 'putfield' REF tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'putfield' REF tipo { - a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1056); + a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1060); stream_108.add(a); - REF63=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1058); - stream_REF.add(REF63); + REF62=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1062); + stream_REF.add(REF62); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1060); - tipo64=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1064); + tipo63=tipo(); state._fsp--; - stream_tipo.add(tipo64.getTree()); + stream_tipo.add(tipo63.getTree()); // AST REWRITE // elements: 108, tipo, REF @@ -2531,9 +2541,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 110:46: -> ^( 'putfield' REF tipo ) + // 108:46: -> ^( 'putfield' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:49: ^( 'putfield' REF tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:49: ^( 'putfield' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2557,22 +2567,22 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:22: a= 'putstatic' REF tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:22: a= 'putstatic' REF tipo { - a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1097); + a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1101); stream_109.add(a); - REF65=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1099); - stream_REF.add(REF65); + REF64=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1103); + stream_REF.add(REF64); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1101); - tipo66=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1105); + tipo65=tipo(); state._fsp--; - stream_tipo.add(tipo66.getTree()); + stream_tipo.add(tipo65.getTree()); // AST REWRITE // elements: REF, tipo, 109 @@ -2585,9 +2595,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 111:47: -> ^( 'putstatic' REF tipo ) + // 109:47: -> ^( 'putstatic' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:50: ^( 'putstatic' REF tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:50: ^( 'putstatic' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2611,17 +2621,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'invokespecial' REF d= parametrosRetorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:22: a= 'invokespecial' REF d= parametrosRetorno { - a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1138); + a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1142); stream_90.add(a); - REF67=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1140); - stream_REF.add(REF67); + REF66=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1144); + stream_REF.add(REF66); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1146); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1150); d=parametrosRetorno(); state._fsp--; @@ -2640,9 +2650,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 113:23: -> ^( 'invokespecial' REF $d) + // 111:23: -> ^( 'invokespecial' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:26: ^( 'invokespecial' REF $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:26: ^( 'invokespecial' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2666,17 +2676,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:22: a= 'invokestatic' REF d= parametrosRetorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'invokestatic' REF d= parametrosRetorno { - a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1206); + a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1210); stream_91.add(a); - REF68=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1208); - stream_REF.add(REF68); + REF67=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1212); + stream_REF.add(REF67); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1214); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1218); d=parametrosRetorno(); state._fsp--; @@ -2695,9 +2705,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 115:23: -> ^( 'invokestatic' REF $d) + // 113:23: -> ^( 'invokestatic' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:26: ^( 'invokestatic' REF $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:26: ^( 'invokestatic' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2721,17 +2731,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:23: a= 'invokevirtual' REF d= parametrosRetorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:23: a= 'invokevirtual' REF d= parametrosRetorno { - a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1275); + a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1279); stream_92.add(a); - REF69=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1277); - stream_REF.add(REF69); + REF68=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1281); + stream_REF.add(REF68); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1283); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1287); d=parametrosRetorno(); state._fsp--; @@ -2750,9 +2760,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 117:23: -> ^( 'invokevirtual' REF $d) + // 115:23: -> ^( 'invokevirtual' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:26: ^( 'invokevirtual' REF $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:26: ^( 'invokevirtual' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2776,13 +2786,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:22: a= 'new' (b= ID |b= REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:22: a= 'new' (b= ID |b= REF ) { - a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1343); + a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1347); stream_104.add(a); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:32: (b= ID |b= REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:32: (b= ID |b= REF ) int alt21=2; int LA21_0 = input.LA(1); @@ -2801,18 +2811,18 @@ else if ( (LA21_0==REF) ) { } switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:33: b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:33: b= ID { - b=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos1350); + b=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos1354); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:42: b= REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:42: b= REF { - b=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1358); + b=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1362); stream_REF.add(b); @@ -2834,9 +2844,9 @@ else if ( (LA21_0==REF) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 118:51: -> ^( NEW $b) + // 116:51: -> ^( NEW $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:54: ^( NEW $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:54: ^( NEW $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2886,7 +2896,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2894,23 +2904,23 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set70=null; + Token set69=null; - BytecodesAST set70_tree=null; + BytecodesAST set69_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set70=(Token)input.LT(1); + set69=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set70) + (BytecodesAST)adaptor.create(set69) ); state.errorRecovery=false; } @@ -2951,7 +2961,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2971,10 +2981,10 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt23=7; switch ( input.LA(1) ) { case 60: @@ -3022,63 +3032,63 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:16: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:16: a= 'iadd' { - a=(Token)match(input,60,FOLLOW_60_in_aritmetica1437); + a=(Token)match(input,60,FOLLOW_60_in_aritmetica1441); stream_60.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:19: a= 'isub' { - a=(Token)match(input,101,FOLLOW_101_in_aritmetica1461); + a=(Token)match(input,101,FOLLOW_101_in_aritmetica1465); stream_101.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:19: a= 'imul' { - a=(Token)match(input,88,FOLLOW_88_in_aritmetica1485); + a=(Token)match(input,88,FOLLOW_88_in_aritmetica1489); stream_88.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:19: a= 'idiv' { - a=(Token)match(input,69,FOLLOW_69_in_aritmetica1509); + a=(Token)match(input,69,FOLLOW_69_in_aritmetica1513); stream_69.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:19: a= 'irem' { - a=(Token)match(input,94,FOLLOW_94_in_aritmetica1533); + a=(Token)match(input,94,FOLLOW_94_in_aritmetica1537); stream_94.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:19: a= 'iinc' { - a=(Token)match(input,82,FOLLOW_82_in_aritmetica1557); + a=(Token)match(input,82,FOLLOW_82_in_aritmetica1561); stream_82.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:19: a= 'ineg' { - a=(Token)match(input,89,FOLLOW_89_in_aritmetica1581); + a=(Token)match(input,89,FOLLOW_89_in_aritmetica1585); stream_89.add(a); @@ -3100,9 +3110,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 132:14: -> ^( ARITMETICA $a) + // 130:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3150,7 +3160,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -3179,10 +3189,10 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt24=16; switch ( input.LA(1) ) { case 68: @@ -3275,144 +3285,144 @@ public final AssemblerParser.load_return load() throws RecognitionException { switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:10: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:10: a= 'iconst_m1' { - a=(Token)match(input,68,FOLLOW_68_in_load1655); + a=(Token)match(input,68,FOLLOW_68_in_load1659); stream_68.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'iconst_0' { - a=(Token)match(input,62,FOLLOW_62_in_load1673); + a=(Token)match(input,62,FOLLOW_62_in_load1677); stream_62.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'iconst_1' { - a=(Token)match(input,63,FOLLOW_63_in_load1691); + a=(Token)match(input,63,FOLLOW_63_in_load1695); stream_63.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'iconst_2' { - a=(Token)match(input,64,FOLLOW_64_in_load1709); + a=(Token)match(input,64,FOLLOW_64_in_load1713); stream_64.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iconst_3' { - a=(Token)match(input,65,FOLLOW_65_in_load1727); + a=(Token)match(input,65,FOLLOW_65_in_load1731); stream_65.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iconst_4' { - a=(Token)match(input,66,FOLLOW_66_in_load1745); + a=(Token)match(input,66,FOLLOW_66_in_load1749); stream_66.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iconst_5' { - a=(Token)match(input,67,FOLLOW_67_in_load1763); + a=(Token)match(input,67,FOLLOW_67_in_load1767); stream_67.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'aconst_null' { - a=(Token)match(input,44,FOLLOW_44_in_load1781); + a=(Token)match(input,44,FOLLOW_44_in_load1785); stream_44.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'iload_0' { - a=(Token)match(input,84,FOLLOW_84_in_load1799); + a=(Token)match(input,84,FOLLOW_84_in_load1803); stream_84.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'iload_1' { - a=(Token)match(input,85,FOLLOW_85_in_load1817); + a=(Token)match(input,85,FOLLOW_85_in_load1821); stream_85.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'iload_2' { - a=(Token)match(input,86,FOLLOW_86_in_load1835); + a=(Token)match(input,86,FOLLOW_86_in_load1839); stream_86.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'iload_3' { - a=(Token)match(input,87,FOLLOW_87_in_load1853); + a=(Token)match(input,87,FOLLOW_87_in_load1857); stream_87.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'aload_0' { - a=(Token)match(input,46,FOLLOW_46_in_load1871); + a=(Token)match(input,46,FOLLOW_46_in_load1875); stream_46.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'aload_1' { - a=(Token)match(input,47,FOLLOW_47_in_load1889); + a=(Token)match(input,47,FOLLOW_47_in_load1893); stream_47.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'aload_2' { - a=(Token)match(input,48,FOLLOW_48_in_load1907); + a=(Token)match(input,48,FOLLOW_48_in_load1911); stream_48.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'aload_3' { - a=(Token)match(input,49,FOLLOW_49_in_load1925); + a=(Token)match(input,49,FOLLOW_49_in_load1929); stream_49.add(a); @@ -3434,9 +3444,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 152:8: -> ^( LOAD $a) + // 150:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3484,7 +3494,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -3503,10 +3513,10 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleTokenStream stream_103=new RewriteRuleTokenStream(adaptor,"token 103"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) int alt25=3; switch ( input.LA(1) ) { case 83: @@ -3534,39 +3544,39 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio switch (alt25) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:13: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,83,FOLLOW_83_in_loadint1975); + a=(Token)match(input,83,FOLLOW_83_in_loadint1979); stream_83.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1981); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1985); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,103,FOLLOW_103_in_loadint2001); + a=(Token)match(input,103,FOLLOW_103_in_loadint2005); stream_103.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2007); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2011); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,45,FOLLOW_45_in_loadint2027); + a=(Token)match(input,45,FOLLOW_45_in_loadint2031); stream_45.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2033); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2037); stream_INTEIRO.add(b); @@ -3589,9 +3599,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 159:11: -> ^( LOAD $a $b) + // 157:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3641,7 +3651,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -3662,10 +3672,10 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleTokenStream stream_100=new RewriteRuleTokenStream(adaptor,"token 100"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt26=8; switch ( input.LA(1) ) { case 97: @@ -3718,72 +3728,72 @@ public final AssemblerParser.store_return store() throws RecognitionException { switch (alt26) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:11: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:11: a= 'istore_0' { - a=(Token)match(input,97,FOLLOW_97_in_store2095); + a=(Token)match(input,97,FOLLOW_97_in_store2099); stream_97.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:13: a= 'istore_1' { - a=(Token)match(input,98,FOLLOW_98_in_store2113); + a=(Token)match(input,98,FOLLOW_98_in_store2117); stream_98.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:13: a= 'istore_2' { - a=(Token)match(input,99,FOLLOW_99_in_store2131); + a=(Token)match(input,99,FOLLOW_99_in_store2135); stream_99.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:13: a= 'istore_3' { - a=(Token)match(input,100,FOLLOW_100_in_store2149); + a=(Token)match(input,100,FOLLOW_100_in_store2153); stream_100.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'astore_0' { - a=(Token)match(input,52,FOLLOW_52_in_store2167); + a=(Token)match(input,52,FOLLOW_52_in_store2171); stream_52.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'astore_1' { - a=(Token)match(input,53,FOLLOW_53_in_store2185); + a=(Token)match(input,53,FOLLOW_53_in_store2189); stream_53.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:13: a= 'astore_2' { - a=(Token)match(input,54,FOLLOW_54_in_store2203); + a=(Token)match(input,54,FOLLOW_54_in_store2207); stream_54.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'astore_3' { - a=(Token)match(input,55,FOLLOW_55_in_store2221); + a=(Token)match(input,55,FOLLOW_55_in_store2225); stream_55.add(a); @@ -3805,9 +3815,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 171:9: -> ^( STORE $a) + // 169:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3855,7 +3865,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3873,10 +3883,10 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) int alt27=2; int LA27_0 = input.LA(1); @@ -3895,26 +3905,26 @@ else if ( (LA27_0==51) ) { } switch (alt27) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,96,FOLLOW_96_in_storeint2275); + a=(Token)match(input,96,FOLLOW_96_in_storeint2279); stream_96.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2281); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2285); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,51,FOLLOW_51_in_storeint2302); + a=(Token)match(input,51,FOLLOW_51_in_storeint2306); stream_51.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2308); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2312); stream_INTEIRO.add(b); @@ -3937,9 +3947,9 @@ else if ( (LA27_0==51) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 177:12: -> ^( STORE $a $b) + // 175:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3989,7 +3999,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -4005,10 +4015,10 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt28=3; switch ( input.LA(1) ) { case 61: @@ -4036,27 +4046,27 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt28) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:12: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:12: a= 'iand' { - a=(Token)match(input,61,FOLLOW_61_in_logica2368); + a=(Token)match(input,61,FOLLOW_61_in_logica2372); stream_61.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'ior' { - a=(Token)match(input,93,FOLLOW_93_in_logica2387); + a=(Token)match(input,93,FOLLOW_93_in_logica2391); stream_93.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'ixor' { - a=(Token)match(input,102,FOLLOW_102_in_logica2406); + a=(Token)match(input,102,FOLLOW_102_in_logica2410); stream_102.add(a); @@ -4078,9 +4088,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 184:10: -> ^( LOGICA $a) + // 182:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4128,7 +4138,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -4157,10 +4167,10 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt29=13; switch ( input.LA(1) ) { case 76: @@ -4238,169 +4248,169 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException switch (alt29) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:12: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:12: a= 'ifeq' b= ID { - a=(Token)match(input,76,FOLLOW_76_in_desvio2457); + a=(Token)match(input,76,FOLLOW_76_in_desvio2461); stream_76.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2463); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2467); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:14: a= 'ifne' b= ID { - a=(Token)match(input,81,FOLLOW_81_in_desvio2482); + a=(Token)match(input,81,FOLLOW_81_in_desvio2486); stream_81.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2488); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2492); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:14: a= 'iflt' b= ID { - a=(Token)match(input,80,FOLLOW_80_in_desvio2507); + a=(Token)match(input,80,FOLLOW_80_in_desvio2511); stream_80.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2513); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2517); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'ifge' b= ID { - a=(Token)match(input,77,FOLLOW_77_in_desvio2532); + a=(Token)match(input,77,FOLLOW_77_in_desvio2536); stream_77.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2538); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2542); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'ifgt' b= ID { - a=(Token)match(input,78,FOLLOW_78_in_desvio2557); + a=(Token)match(input,78,FOLLOW_78_in_desvio2561); stream_78.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2563); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2567); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'ifle' b= ID { - a=(Token)match(input,79,FOLLOW_79_in_desvio2582); + a=(Token)match(input,79,FOLLOW_79_in_desvio2586); stream_79.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2588); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2592); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2607); + a=(Token)match(input,70,FOLLOW_70_in_desvio2611); stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2613); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2617); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,75,FOLLOW_75_in_desvio2632); + a=(Token)match(input,75,FOLLOW_75_in_desvio2636); stream_75.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2638); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2642); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,74,FOLLOW_74_in_desvio2657); + a=(Token)match(input,74,FOLLOW_74_in_desvio2661); stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2663); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2667); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2682); + a=(Token)match(input,71,FOLLOW_71_in_desvio2686); stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2688); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2692); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:197:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2707); + a=(Token)match(input,72,FOLLOW_72_in_desvio2711); stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2713); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2717); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:14: a= 'if_icmple' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2732); + a=(Token)match(input,73,FOLLOW_73_in_desvio2736); stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2738); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2742); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:197:14: a= 'goto' b= ID { - a=(Token)match(input,59,FOLLOW_59_in_desvio2757); + a=(Token)match(input,59,FOLLOW_59_in_desvio2761); stream_59.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2763); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2767); stream_ID.add(b); @@ -4423,9 +4433,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 201:10: -> ^( DESVIO $a $b) + // 199:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4475,7 +4485,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -4491,10 +4501,10 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleTokenStream stream_106=new RewriteRuleTokenStream(adaptor,"token 106"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) int alt30=3; switch ( input.LA(1) ) { case 106: @@ -4522,27 +4532,27 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { switch (alt30) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:11: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:11: a= 'pop' { - a=(Token)match(input,106,FOLLOW_106_in_pilha2824); + a=(Token)match(input,106,FOLLOW_106_in_pilha2828); stream_106.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:203:13: a= 'pop2' { - a=(Token)match(input,107,FOLLOW_107_in_pilha2842); + a=(Token)match(input,107,FOLLOW_107_in_pilha2846); stream_107.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:13: a= 'dup' { - a=(Token)match(input,56,FOLLOW_56_in_pilha2860); + a=(Token)match(input,56,FOLLOW_56_in_pilha2864); stream_56.add(a); @@ -4564,9 +4574,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 208:9: -> ^( PILHA $a) + // 206:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4614,7 +4624,7 @@ public static class parametrosRetorno_return extends ParserRuleReturnScope { // $ANTLR start "parametrosRetorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:211:1: parametrosRetorno : ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:1: parametrosRetorno : ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ; public final AssemblerParser.parametrosRetorno_return parametrosRetorno() throws RecognitionException { AssemblerParser.parametrosRetorno_return retval = new AssemblerParser.parametrosRetorno_return(); retval.start = input.LT(1); @@ -4622,30 +4632,30 @@ public final AssemblerParser.parametrosRetorno_return parametrosRetorno() throws BytecodesAST root_0 = null; - Token char_literal72=null; - Token char_literal74=null; + Token char_literal71=null; + Token char_literal73=null; AssemblerParser.tipo_return tip =null; - AssemblerParser.parametros_return parametros71 =null; + AssemblerParser.parametros_return parametros70 =null; - AssemblerParser.parametros_return parametros73 =null; + AssemblerParser.parametros_return parametros72 =null; - BytecodesAST char_literal72_tree=null; - BytecodesAST char_literal74_tree=null; + BytecodesAST char_literal71_tree=null; + BytecodesAST char_literal73_tree=null; RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:6: ( ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:10: ( parametros | '(' parametros ')' ) tip= tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:6: ( ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:10: ( parametros | '(' parametros ')' ) tip= tipo { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:10: ( parametros | '(' parametros ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:10: ( parametros | '(' parametros ')' ) int alt31=2; int LA31_0 = input.LA(1); - if ( (LA31_0==TIPO_REF||LA31_0==34) ) { + if ( (LA31_0==INT||LA31_0==TIPO_REF||LA31_0==34) ) { alt31=1; } else if ( (LA31_0==33) ) { @@ -4660,33 +4670,33 @@ else if ( (LA31_0==33) ) { } switch (alt31) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:11: parametros { - pushFollow(FOLLOW_parametros_in_parametrosRetorno2915); - parametros71=parametros(); + pushFollow(FOLLOW_parametros_in_parametrosRetorno2919); + parametros70=parametros(); state._fsp--; - stream_parametros.add(parametros71.getTree()); + stream_parametros.add(parametros70.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:24: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:24: '(' parametros ')' { - char_literal72=(Token)match(input,33,FOLLOW_33_in_parametrosRetorno2919); - stream_33.add(char_literal72); + char_literal71=(Token)match(input,33,FOLLOW_33_in_parametrosRetorno2923); + stream_33.add(char_literal71); - pushFollow(FOLLOW_parametros_in_parametrosRetorno2921); - parametros73=parametros(); + pushFollow(FOLLOW_parametros_in_parametrosRetorno2925); + parametros72=parametros(); state._fsp--; - stream_parametros.add(parametros73.getTree()); + stream_parametros.add(parametros72.getTree()); - char_literal74=(Token)match(input,35,FOLLOW_35_in_parametrosRetorno2923); - stream_35.add(char_literal74); + char_literal73=(Token)match(input,35,FOLLOW_35_in_parametrosRetorno2927); + stream_35.add(char_literal73); } @@ -4695,7 +4705,7 @@ else if ( (LA31_0==33) ) { } - pushFollow(FOLLOW_tipo_in_parametrosRetorno2931); + pushFollow(FOLLOW_tipo_in_parametrosRetorno2935); tip=tipo(); state._fsp--; @@ -4714,9 +4724,9 @@ else if ( (LA31_0==33) ) { RewriteRuleSubtreeStream stream_tip=new RewriteRuleSubtreeStream(adaptor,"rule tip",tip!=null?tip.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 213:12: -> ^( METHOD_CALL parametros $tip) + // 211:12: -> ^( METHOD_CALL parametros $tip) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:15: ^( METHOD_CALL parametros $tip) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:211:15: ^( METHOD_CALL parametros $tip) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4795,142 +4805,143 @@ else if ( (LA31_0==33) ) { public static final BitSet FOLLOW_ID_in_superClasse570 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_REF_in_superClasse578 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_39_in_membroClasse600 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); - public static final BitSet FOLLOW_111_in_membroClasse602 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_membroClasse605 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse607 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_membroClasse625 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INIT_in_membroClasse627 = new BitSet(new long[]{0x0000000640000000L}); - public static final BitSet FOLLOW_parametros_in_membroClasse630 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_33_in_membroClasse634 = new BitSet(new long[]{0x0000000440000000L}); - public static final BitSet FOLLOW_parametros_in_membroClasse636 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_membroClasse638 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse645 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse647 = new BitSet(new long[]{0xFFFFF14000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_limite_in_membroClasse650 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse652 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse656 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_38_in_membroClasse659 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_41_in_membroClasse691 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); - public static final BitSet FOLLOW_111_in_membroClasse693 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_membroClasse696 = new BitSet(new long[]{0x0000000640000000L}); - public static final BitSet FOLLOW_parametros_in_membroClasse699 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_33_in_membroClasse703 = new BitSet(new long[]{0x0000000440000000L}); - public static final BitSet FOLLOW_parametros_in_membroClasse705 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_membroClasse707 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse714 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse716 = new BitSet(new long[]{0xFFFFF14000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_limite_in_membroClasse719 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse721 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse725 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_38_in_membroClasse728 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_limite777 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_limite779 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_parametros801 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TIPO_REF_in_parametros827 = new BitSet(new long[]{0x0000000040000002L}); - public static final BitSet FOLLOW_50_in_retorno873 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_retorno891 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_110_in_retorno909 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_manipulacaoObjetos988 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos990 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos992 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_manipulacaoObjetos1015 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1017 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1019 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_108_in_manipulacaoObjetos1056 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1058 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1060 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_109_in_manipulacaoObjetos1097 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1099 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1101 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_manipulacaoObjetos1138 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1140 = new BitSet(new long[]{0x0000000640000000L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1146 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_manipulacaoObjetos1206 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1208 = new BitSet(new long[]{0x0000000640000000L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1214 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_manipulacaoObjetos1275 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1277 = new BitSet(new long[]{0x0000000640000000L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1283 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_104_in_manipulacaoObjetos1343 = new BitSet(new long[]{0x0000000008000800L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos1350 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1358 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_aritmetica1437 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_101_in_aritmetica1461 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_aritmetica1485 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_aritmetica1509 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_aritmetica1533 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_aritmetica1557 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_aritmetica1581 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_load1655 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load1673 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load1691 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_load1709 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_load1727 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_load1745 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_load1763 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load1781 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_load1799 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_load1817 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_load1835 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_load1853 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load1871 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1889 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load1907 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load1925 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_loadint1975 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1981 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_103_in_loadint2001 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2007 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_loadint2027 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2033 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_store2095 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_store2113 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_99_in_store2131 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_100_in_store2149 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_store2167 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_store2185 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_store2203 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_store2221 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_storeint2275 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2281 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_storeint2302 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2308 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_logica2368 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_logica2387 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_102_in_logica2406 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_desvio2457 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2463 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_desvio2482 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2488 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_desvio2507 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2513 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_desvio2532 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2538 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_desvio2557 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2563 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_desvio2582 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2588 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2607 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2613 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_desvio2632 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2638 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_desvio2657 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2663 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2682 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2688 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2707 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2713 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2732 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2738 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio2757 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2763 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_106_in_pilha2824 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_107_in_pilha2842 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_pilha2860 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_parametros_in_parametrosRetorno2915 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_33_in_parametrosRetorno2919 = new BitSet(new long[]{0x0000000440000000L}); - public static final BitSet FOLLOW_parametros_in_parametrosRetorno2921 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_parametrosRetorno2923 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_parametrosRetorno2931 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_111_in_membroClasse606 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse609 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse611 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_membroClasse633 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INIT_in_membroClasse635 = new BitSet(new long[]{0x0000000640002000L}); + public static final BitSet FOLLOW_parametros_in_membroClasse638 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_33_in_membroClasse642 = new BitSet(new long[]{0x0000000440002000L}); + public static final BitSet FOLLOW_parametros_in_membroClasse644 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_membroClasse646 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse653 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse655 = new BitSet(new long[]{0xFFFFF14000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse658 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse660 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse664 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_38_in_membroClasse667 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_membroClasse699 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); + public static final BitSet FOLLOW_111_in_membroClasse701 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse704 = new BitSet(new long[]{0x0000000640002000L}); + public static final BitSet FOLLOW_parametros_in_membroClasse707 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_33_in_membroClasse711 = new BitSet(new long[]{0x0000000440002000L}); + public static final BitSet FOLLOW_parametros_in_membroClasse713 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_membroClasse715 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse722 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse724 = new BitSet(new long[]{0xFFFFF14000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse727 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse729 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse733 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_38_in_membroClasse736 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_limite785 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_limite787 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_parametros809 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_parametros828 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros836 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_retorno877 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_retorno895 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_110_in_retorno913 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_manipulacaoObjetos992 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos994 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos996 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_manipulacaoObjetos1019 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1021 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1023 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_108_in_manipulacaoObjetos1060 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1062 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1064 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_109_in_manipulacaoObjetos1101 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1103 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1105 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_manipulacaoObjetos1142 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1144 = new BitSet(new long[]{0x0000000640002000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1150 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_manipulacaoObjetos1210 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1212 = new BitSet(new long[]{0x0000000640002000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1218 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_manipulacaoObjetos1279 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1281 = new BitSet(new long[]{0x0000000640002000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1287 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_104_in_manipulacaoObjetos1347 = new BitSet(new long[]{0x0000000008000800L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos1354 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1362 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_aritmetica1441 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_101_in_aritmetica1465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_aritmetica1489 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_aritmetica1513 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_aritmetica1537 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_aritmetica1561 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_aritmetica1585 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_load1659 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load1677 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load1695 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_load1713 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_load1731 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_load1749 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_load1767 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load1785 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_load1803 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_load1821 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_load1839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_load1857 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load1875 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1893 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1911 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1929 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_loadint1979 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1985 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_103_in_loadint2005 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2011 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_loadint2031 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2037 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_store2099 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_store2117 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_store2135 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_100_in_store2153 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_store2171 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_store2189 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_store2207 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_store2225 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_storeint2279 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2285 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_storeint2306 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2312 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_logica2372 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_logica2391 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_102_in_logica2410 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_desvio2461 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2467 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_desvio2486 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2492 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_desvio2511 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2517 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_desvio2536 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2542 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_desvio2561 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2567 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_desvio2586 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2592 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2611 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2617 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_desvio2636 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2642 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2661 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2667 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2686 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2692 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2711 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2717 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2736 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2742 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio2761 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2767 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_106_in_pilha2828 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_107_in_pilha2846 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_pilha2864 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parametros_in_parametrosRetorno2919 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_33_in_parametrosRetorno2923 = new BitSet(new long[]{0x0000000440002000L}); + public static final BitSet FOLLOW_parametros_in_parametrosRetorno2925 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_parametrosRetorno2927 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_parametrosRetorno2935 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 7835f71..eb1caa3 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-25 15:56:08 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-26 21:32:09 package br.ufpb.iged.interpretador.parser; @@ -507,33 +507,77 @@ else if ( (LA3_4==UP) ) { // $ANTLR end "entraNaClasse" + public static class declaracaoVariavel_return extends TreeRuleReturnScope { + }; + // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:66:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; - public final void declaracaoVariavel() throws RecognitionException { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:66:1: declaracaoVariavel : ^( FIELD_DECL (st= . )? ID tipo= . ) ; + public final Def.declaracaoVariavel_return declaracaoVariavel() throws RecognitionException { + Def.declaracaoVariavel_return retval = new Def.declaracaoVariavel_return(); + retval.start = input.LT(1); + + BytecodesAST ID1=null; + BytecodesAST st=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:7: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:5: ( ^( FIELD_DECL (st= . )? ID tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:7: ^( FIELD_DECL (st= . )? ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel305); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel305); if (state.failed) return retval; - match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel307); if (state.failed) return ; + match(input, Token.DOWN, null); if (state.failed) return retval; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:20: (st= . )? + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==ID) ) { + int LA4_1 = input.LA(2); + + if ( (LA4_1==DOWN) ) { + alt4=1; + } + else if ( (LA4_1==ID) ) { + int LA4_3 = input.LA(3); + + if ( ((LA4_3 >= ARGS && LA4_3 <= 111)) ) { + alt4=1; + } + } + } + else if ( ((LA4_0 >= ARGS && LA4_0 <= FIELD_DECL)||(LA4_0 >= INIT && LA4_0 <= 111)) ) { + alt4=1; + } + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:21: st= . + { + st=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return retval; + + } + break; + + } + + + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel315); if (state.failed) return retval; tipo=(BytecodesAST)input.LT(1); - matchAny(input); if (state.failed) return ; + matchAny(input); if (state.failed) return retval; - match(input, Token.UP, null); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return retval; if ( state.backtracking==1 ) { System.out.println("linha "+ID1.getLine()+": def "+(ID1!=null?ID1.getText():null)); tipo.escopo = escopoAtual; - SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),null); + boolean estatico = st != null; + SimboloVariavel variavel = new SimboloVariavel((ID1!=null?ID1.getText():null),null,estatico); variavel.def = ID1; ID1.simbolo = variavel; escopoAtual.definir(variavel); @@ -551,47 +595,47 @@ public final void declaracaoVariavel() throws RecognitionException { finally { // do for sure before leaving } - return ; + return retval; } // $ANTLR end "declaracaoVariavel" // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:79:1: entraNoConstrutor : ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:1: entraNoConstrutor : ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:2: ( ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:4: ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:2: ( ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:4: ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor342); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor350); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor344); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor352); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:34: ( . )+ - int cnt4=0; - loop4: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:34: ( . )+ + int cnt5=0; + loop5: do { - int alt4=2; + int alt5=2; switch ( input.LA(1) ) { case LIMIT: { - int LA4_1 = input.LA(2); + int LA5_1 = input.LA(2); if ( (true) ) { - alt4=1; + alt5=1; } else if ( (true) ) { - alt4=2; + alt5=2; } @@ -705,20 +749,20 @@ else if ( (true) ) { case 110: case 111: { - alt4=1; + alt5=1; } break; case UP: { - alt4=2; + alt5=2; } break; } - switch (alt4) { + switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:34: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:34: . { matchAny(input); if (state.failed) return ; @@ -726,31 +770,31 @@ else if ( (true) ) { break; default : - if ( cnt4 >= 1 ) break loop4; + if ( cnt5 >= 1 ) break loop5; if (state.backtracking>0) {state.failed=true; return ;} EarlyExitException eee = - new EarlyExitException(4, input); + new EarlyExitException(5, input); throw eee; } - cnt4++; + cnt5++; } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:37: ( ^( LIMIT lim= INTEIRO ) )? - int alt5=2; - int LA5_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:37: ( ^( LIMIT lim= INTEIRO ) )? + int alt6=2; + int LA6_0 = input.LA(1); - if ( (LA5_0==LIMIT) ) { - alt5=1; + if ( (LA6_0==LIMIT) ) { + alt6=1; } - switch (alt5) { + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:38: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:38: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor356); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor364); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor360); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor368); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -796,40 +840,40 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:96:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo380); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo388); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo382); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo390); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:32: ( . )+ - int cnt6=0; - loop6: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:32: ( . )+ + int cnt7=0; + loop7: do { - int alt6=2; + int alt7=2; switch ( input.LA(1) ) { case LIMIT: { - int LA6_1 = input.LA(2); + int LA7_1 = input.LA(2); if ( (true) ) { - alt6=1; + alt7=1; } else if ( (true) ) { - alt6=2; + alt7=2; } @@ -943,20 +987,20 @@ else if ( (true) ) { case 110: case 111: { - alt6=1; + alt7=1; } break; case UP: { - alt6=2; + alt7=2; } break; } - switch (alt6) { + switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:32: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:32: . { matchAny(input); if (state.failed) return ; @@ -964,31 +1008,31 @@ else if ( (true) ) { break; default : - if ( cnt6 >= 1 ) break loop6; + if ( cnt7 >= 1 ) break loop7; if (state.backtracking>0) {state.failed=true; return ;} EarlyExitException eee = - new EarlyExitException(6, input); + new EarlyExitException(7, input); throw eee; } - cnt6++; + cnt7++; } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:35: ( ^( LIMIT lim= INTEIRO ) )? - int alt7=2; - int LA7_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:35: ( ^( LIMIT lim= INTEIRO ) )? + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA7_0==LIMIT) ) { - alt7=1; + if ( (LA8_0==LIMIT) ) { + alt8=1; } - switch (alt7) { + switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:36: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:36: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo394); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo402); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo398); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo406); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1034,15 +1078,15 @@ else if ( (true) ) { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:1: parametros : ^( PARAMS pars= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:1: parametros : ^( PARAMS pars= . ) ; public final void parametros() throws RecognitionException { BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:4: ^( PARAMS pars= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:4: ^( PARAMS pars= . ) { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros418); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros426); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; pars=(BytecodesAST)input.LT(1); @@ -1079,13 +1123,13 @@ public final void parametros() throws RecognitionException { // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:125:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo446); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo454); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -1107,13 +1151,13 @@ public final void entraNoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:129:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo472); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo480); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -1138,13 +1182,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:137:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:137:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:137:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:15: '.class' { - match(input,36,FOLLOW_36_in_saiDaClasse499); if (state.failed) return ; + match(input,36,FOLLOW_36_in_saiDaClasse507); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -1169,13 +1213,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:144:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:146:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:146:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo549); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo557); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -1201,13 +1245,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:153:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:155:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:155:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor565); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor573); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); @@ -1232,72 +1276,72 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "field" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:1: field : ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:1: field : ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ; public final void field() throws RecognitionException { BytecodesAST a=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:7: ( ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:9: ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:7: ( ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:9: ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:11: (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) - int alt8=4; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:11: (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) + int alt9=4; switch ( input.LA(1) ) { case 57: { - alt8=1; + alt9=1; } break; case 58: { - alt8=2; + alt9=2; } break; case 108: { - alt8=3; + alt9=3; } break; case 109: { - alt8=4; + alt9=4; } break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); + new NoViableAltException("", 9, 0, input); throw nvae; } - switch (alt8) { + switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:12: a= 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:12: a= 'getfield' { - a=(BytecodesAST)match(input,57,FOLLOW_57_in_field587); if (state.failed) return ; + a=(BytecodesAST)match(input,57,FOLLOW_57_in_field595); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:29: a= 'getstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:29: a= 'getstatic' { - a=(BytecodesAST)match(input,58,FOLLOW_58_in_field595); if (state.failed) return ; + a=(BytecodesAST)match(input,58,FOLLOW_58_in_field603); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:47: a= 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:47: a= 'putfield' { - a=(BytecodesAST)match(input,108,FOLLOW_108_in_field603); if (state.failed) return ; + a=(BytecodesAST)match(input,108,FOLLOW_108_in_field611); if (state.failed) return ; } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:64: a= 'putstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:64: a= 'putstatic' { - a=(BytecodesAST)match(input,109,FOLLOW_109_in_field611); if (state.failed) return ; + a=(BytecodesAST)match(input,109,FOLLOW_109_in_field619); if (state.failed) return ; } break; @@ -1338,11 +1382,11 @@ public final void field() throws RecognitionException { // $ANTLR start "invoke" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:171:1: invoke : ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:172:1: invoke : ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ; public final void invoke() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:171:9: ( ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:171:11: ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:172:9: ( ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:172:11: ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) { if ( (input.LA(1) >= 90 && input.LA(1) <= 92) ) { input.consume(); @@ -1359,10 +1403,10 @@ public final void invoke() throws RecognitionException { match(input, Token.DOWN, null); if (state.failed) return ; matchAny(input); if (state.failed) return ; - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke669); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke677); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - match(input,PARAMS,FOLLOW_PARAMS_in_invoke672); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_invoke680); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; matchAny(input); if (state.failed) return ; @@ -1400,11 +1444,11 @@ public final void invoke() throws RecognitionException { // $ANTLR start "nenhumoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:177:1: nenhumoperando : ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:178:1: nenhumoperando : ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ; public final void nenhumoperando() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:178:2: ( ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:178:4: ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:179:2: ( ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:179:4: ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) { if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||input.LA(1)==NEW||input.LA(1)==PILHA||(input.LA(1) >= RETURN && input.LA(1) <= STORE) ) { input.consume(); @@ -1446,11 +1490,11 @@ public final void nenhumoperando() throws RecognitionException { // $ANTLR start "umoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:184:1: umoperando : ^( ( DESVIO | LOAD | STORE ) . . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:185:1: umoperando : ^( ( DESVIO | LOAD | STORE ) . . ) ; public final void umoperando() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:185:9: ( ^( ( DESVIO | LOAD | STORE ) . . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:185:11: ^( ( DESVIO | LOAD | STORE ) . . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:186:9: ( ^( ( DESVIO | LOAD | STORE ) . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:186:11: ^( ( DESVIO | LOAD | STORE ) . . ) { if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { input.consume(); @@ -1494,15 +1538,15 @@ public final void umoperando() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:190:1: label : ^( LABEL id= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:191:1: label : ^( LABEL id= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST id=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:191:4: ( ^( LABEL id= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:191:6: ^( LABEL id= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:192:4: ( ^( LABEL id= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:192:6: ^( LABEL id= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label823); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label831); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; id=(BytecodesAST)input.LT(1); @@ -1627,30 +1671,30 @@ public String getDescription() { public static final BitSet FOLLOW_ID_in_entraNaClasse261 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse265 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel305 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel307 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor342 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor344 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor356 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor360 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo380 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo382 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo394 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo398 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_PARAMS_in_parametros418 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo446 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo472 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_saiDaClasse499 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo549 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor565 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_field587 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_58_in_field595 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_108_in_field603 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_109_in_field611 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_invoke654 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invoke669 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PARAMS_in_invoke672 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_nenhumoperando717 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_umoperando771 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label823 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel315 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor350 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor352 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor364 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor368 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo388 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo390 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo402 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo406 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_PARAMS_in_parametros426 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo454 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo480 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_saiDaClasse507 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo557 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor573 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_field595 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_58_in_field603 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_108_in_field611 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_109_in_field619 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_invoke662 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invoke677 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PARAMS_in_invoke680 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_nenhumoperando725 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_umoperando779 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label831 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 8f2088e..907ea66 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-25 15:56:08 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-26 21:32:09 package br.ufpb.iged.interpretador.parser; @@ -201,7 +201,7 @@ private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, - simboloClasse.getConstantPool().indexOf(simboloVariavel)); + simboloClasse.obterIdentificadorVariavel(simboloVariavel)); } @@ -542,19 +542,52 @@ else if ( (LA3_4==UP) ) { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:156:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:156:1: declaracaoVariavel : ^( FIELD_DECL ( . )? ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( FIELD_DECL ( . )? ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( FIELD_DECL ( . )? ID tip= . ) { match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel245); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel247); if (state.failed) return ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:20: ( . )? + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==ID) ) { + int LA4_1 = input.LA(2); + + if ( (LA4_1==DOWN) ) { + alt4=1; + } + else if ( (LA4_1==ID) ) { + int LA4_3 = input.LA(3); + + if ( ((LA4_3 >= ARGS && LA4_3 <= 111)) ) { + alt4=1; + } + } + } + else if ( ((LA4_0 >= ARGS && LA4_0 <= FIELD_DECL)||(LA4_0 >= INIT && LA4_0 <= 111)) ) { + alt4=1; + } + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:20: . + { + matchAny(input); if (state.failed) return ; + + } + break; + + } + + + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel250); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -598,26 +631,26 @@ public final void entraNoConstrutor() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor282); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor285); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor284); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor287); if (state.failed) return ; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: ( . )+ - int cnt4=0; - loop4: + int cnt5=0; + loop5: do { - int alt4=2; + int alt5=2; switch ( input.LA(1) ) { case LIMIT: { - int LA4_1 = input.LA(2); + int LA5_1 = input.LA(2); if ( (true) ) { - alt4=1; + alt5=1; } else if ( (true) ) { - alt4=2; + alt5=2; } @@ -731,18 +764,18 @@ else if ( (true) ) { case 110: case 111: { - alt4=1; + alt5=1; } break; case UP: { - alt4=2; + alt5=2; } break; } - switch (alt4) { + switch (alt5) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: . { @@ -752,31 +785,31 @@ else if ( (true) ) { break; default : - if ( cnt4 >= 1 ) break loop4; + if ( cnt5 >= 1 ) break loop5; if (state.backtracking>0) {state.failed=true; return ;} EarlyExitException eee = - new EarlyExitException(4, input); + new EarlyExitException(5, input); throw eee; } - cnt4++; + cnt5++; } while (true); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:26: ( ^( LIMIT lim= INTEIRO ) )? - int alt5=2; - int LA5_0 = input.LA(1); + int alt6=2; + int LA6_0 = input.LA(1); - if ( (LA5_0==LIMIT) ) { - alt5=1; + if ( (LA6_0==LIMIT) ) { + alt6=1; } - switch (alt5) { + switch (alt6) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor291); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor294); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor295); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor298); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -825,28 +858,28 @@ public final void entraNoMetodo() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo318); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo321); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo320); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo323); if (state.failed) return ; matchAny(input); if (state.failed) return ; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: ( . )+ - int cnt6=0; - loop6: + int cnt7=0; + loop7: do { - int alt6=2; + int alt7=2; switch ( input.LA(1) ) { case LIMIT: { - int LA6_1 = input.LA(2); + int LA7_1 = input.LA(2); if ( (true) ) { - alt6=1; + alt7=1; } else if ( (true) ) { - alt6=2; + alt7=2; } @@ -960,18 +993,18 @@ else if ( (true) ) { case 110: case 111: { - alt6=1; + alt7=1; } break; case UP: { - alt6=2; + alt7=2; } break; } - switch (alt6) { + switch (alt7) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: . { @@ -981,31 +1014,31 @@ else if ( (true) ) { break; default : - if ( cnt6 >= 1 ) break loop6; + if ( cnt7 >= 1 ) break loop7; if (state.backtracking>0) {state.failed=true; return ;} EarlyExitException eee = - new EarlyExitException(6, input); + new EarlyExitException(7, input); throw eee; } - cnt6++; + cnt7++; } while (true); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:26: ( ^( LIMIT lim= INTEIRO ) )? - int alt7=2; - int LA7_0 = input.LA(1); + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA7_0==LIMIT) ) { - alt7=1; + if ( (LA8_0==LIMIT) ) { + alt8=1; } - switch (alt7) { + switch (alt8) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo329); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo332); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo333); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo336); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1051,7 +1084,7 @@ public final void saiDoMetodo() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( METHOD_DECL ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo353); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo356); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do metodo... "); @@ -1083,7 +1116,7 @@ public final void saiDoConstrutor() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:2: ( CONSTR_DECL ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor369); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor372); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do construtor... "); @@ -1120,63 +1153,63 @@ public final void field() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:10: ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:12: (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) - int alt8=4; + int alt9=4; switch ( input.LA(1) ) { case 57: { - alt8=1; + alt9=1; } break; case 58: { - alt8=2; + alt9=2; } break; case 108: { - alt8=3; + alt9=3; } break; case 109: { - alt8=4; + alt9=4; } break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); + new NoViableAltException("", 9, 0, input); throw nvae; } - switch (alt8) { + switch (alt9) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:13: op= 'getfield' { - op=(BytecodesAST)match(input,57,FOLLOW_57_in_field390); if (state.failed) return ; + op=(BytecodesAST)match(input,57,FOLLOW_57_in_field393); if (state.failed) return ; } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:31: op= 'getstatic' { - op=(BytecodesAST)match(input,58,FOLLOW_58_in_field398); if (state.failed) return ; + op=(BytecodesAST)match(input,58,FOLLOW_58_in_field401); if (state.failed) return ; } break; case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:50: op= 'putfield' { - op=(BytecodesAST)match(input,108,FOLLOW_108_in_field406); if (state.failed) return ; + op=(BytecodesAST)match(input,108,FOLLOW_108_in_field409); if (state.failed) return ; } break; case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:68: op= 'putstatic' { - op=(BytecodesAST)match(input,109,FOLLOW_109_in_field414); if (state.failed) return ; + op=(BytecodesAST)match(input,109,FOLLOW_109_in_field417); if (state.failed) return ; } break; @@ -1243,51 +1276,51 @@ public final void invoke() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:12: ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:14: (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) - int alt9=3; + int alt10=3; switch ( input.LA(1) ) { case 90: { - alt9=1; + alt10=1; } break; case 91: { - alt9=2; + alt10=2; } break; case 92: { - alt9=3; + alt10=3; } break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 10, 0, input); throw nvae; } - switch (alt9) { + switch (alt10) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:15: op= 'invokespecial' { - op=(BytecodesAST)match(input,90,FOLLOW_90_in_invoke471); if (state.failed) return ; + op=(BytecodesAST)match(input,90,FOLLOW_90_in_invoke474); if (state.failed) return ; } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:38: op= 'invokestatic' { - op=(BytecodesAST)match(input,91,FOLLOW_91_in_invoke479); if (state.failed) return ; + op=(BytecodesAST)match(input,91,FOLLOW_91_in_invoke482); if (state.failed) return ; } break; case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:60: op= 'invokevirtual' { - op=(BytecodesAST)match(input,92,FOLLOW_92_in_invoke487); if (state.failed) return ; + op=(BytecodesAST)match(input,92,FOLLOW_92_in_invoke490); if (state.failed) return ; } break; @@ -1300,10 +1333,10 @@ public final void invoke() throws RecognitionException { matchAny(input); if (state.failed) return ; - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke497); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke500); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - match(input,PARAMS,FOLLOW_PARAMS_in_invoke500); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_invoke503); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; a=(BytecodesAST)input.LT(1); @@ -1368,7 +1401,7 @@ public final void novaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:3: ( ^( NEW classe= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:5: ^( NEW classe= . ) { - match(input,NEW,FOLLOW_NEW_in_novaClasse549); if (state.failed) return ; + match(input,NEW,FOLLOW_NEW_in_novaClasse552); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1589,28 +1622,28 @@ public String getDescription() { public static final BitSet FOLLOW_ID_in_entraNaClasse197 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse201 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel245 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel247 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor282 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor291 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor295 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo318 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo320 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo329 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo333 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo353 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor369 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_field390 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_58_in_field398 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_108_in_field406 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_109_in_field414 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_90_in_invoke471 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_91_in_invoke479 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_92_in_invoke487 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invoke497 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PARAMS_in_invoke500 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_NEW_in_novaClasse549 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_nenhumoperando576 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_umoperando630 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel250 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor285 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor287 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor294 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor298 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo321 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo323 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo332 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo336 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor372 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_field393 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_58_in_field401 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_108_in_field409 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_109_in_field417 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_90_in_invoke474 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_91_in_invoke482 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_92_in_invoke490 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invoke500 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PARAMS_in_invoke503 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_NEW_in_novaClasse552 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_nenhumoperando579 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_umoperando633 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java index 379b81a..4feedbf 100644 --- a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java +++ b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java @@ -16,7 +16,7 @@ public static SimboloClasse carregarClasse(String nome) throws ClassNotFoundExce for(SimboloClasse classe: classes){ if (classe.nome.equals(nome)){ - classe.alocarMemoriaFields(); + classe.alocarMemoriaVariaveis(null, true); return classe; } @@ -32,7 +32,7 @@ public static SimboloClasse carregarClasse(int index) throws ClassNotFoundExcept SimboloClasse classe = Interpretador.getAssembler().getConstantPool().get(index); if (classe != null){ - classe.alocarMemoriaFields(); + classe.alocarMemoriaVariaveis(null, true); return classe; } @@ -47,7 +47,7 @@ public static SimboloClasse carregarClasseMain() throws ClassNotFoundException{ for(SimboloClasse classe: classes){ if (classe.possuiMetodo(METODO_MAIN, "main")){ - classe.alocarMemoriaFields(); + classe.alocarMemoriaVariaveis(null, true); return classe; } diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 412f0e7..b21c3e5 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -157,7 +157,7 @@ public static BytecodeAssembler carregarClasses() throws RecognitionException, L CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); nos.setTokenStream(tokens); Def def = new Def(nos, tabelaSimbolos); - def.downup(tree); + def.downup(tree); nos.reset(); Ref ref = new Ref(nos, tabelaSimbolos, parser); ref.downup(tree); diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java index 4875eac..44a1ac4 100644 --- a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -960,8 +960,8 @@ public void executarInstrucao() throws ClassNotFoundException { SimboloClasse simboloClasse = ClassLoader.carregarClasse(op1); - simboloClasse.getFields()[op2] = frameAtual.pilhaOperandos[frameAtual.sp--]; - + simboloClasse.alterarCampo(op2, frameAtual.pilhaOperandos[frameAtual.sp--]); + } ; diff --git a/src/br/ufpb/iged/interpretador/principal/Objeto.java b/src/br/ufpb/iged/interpretador/principal/Objeto.java index 2269c25..1cb7532 100644 --- a/src/br/ufpb/iged/interpretador/principal/Objeto.java +++ b/src/br/ufpb/iged/interpretador/principal/Objeto.java @@ -10,10 +10,12 @@ public class Objeto { public Objeto(SimboloClasse simboloClasse) { - nome = simboloClasse.obterNome(); + memoriaLocal = new Object[0]; - memoriaLocal = new Object[simboloClasse.getFields().length]; + nome = simboloClasse.obterNome(); + simboloClasse.alocarMemoriaVariaveis(this, false); + } public String getNome() { diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java index 3653897..0479f0d 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -2,6 +2,7 @@ import java.util.*; +import br.ufpb.iged.interpretador.principal.Objeto; import br.ufpb.iged.interpretador.principal.Referencia; public class SimboloClasse extends SimboloComEscopo implements Tipo { @@ -13,11 +14,11 @@ public class SimboloClasse extends SimboloComEscopo implements Tipo { /** List of all fields and methods */ public Map membros=new LinkedHashMap(); - protected List constantPool = new ArrayList (); + protected List constantPool = new ArrayList (); protected List methodArea = new ArrayList(); - private Object[] fields; + private Object[] fields = null; protected int proximoElementoConstPool = 0; @@ -27,6 +28,8 @@ public SimboloClasse(String nome, Escopo escopoEnvolvente, SimboloClasse superCl this.superClasse = superClasse; + fields = null; + } public Escopo obterEscopoPai() { @@ -80,8 +83,82 @@ public boolean possuiMetodo(String assinatura, String nome) { } + public void alocarMemoriaVariaveis(Objeto objeto, boolean estaticas) { + + if (!estaticas || (estaticas && (fields == null))) { + + Object[] variaveis = new Object[obterQuantidadeVariaveis(estaticas)]; + + definirTiposVariaveis(variaveis, 0, estaticas); + + + if (estaticas) + fields = variaveis; + else { + objeto.setMemoriaLocal(variaveis); + } + + + } + + + } + + public int definirTiposVariaveis(Object[] vars, int i, boolean estaticas) { + + for (SimboloVariavel variavel : constantPool) { + + if (variavel.isEstatico() == estaticas) { + + String nomeTipo = variavel.getTipo().obterNome(); + + if(nomeTipo.equals("I")) { + + vars[i] = new Integer(0); + + i++; + + } else if (nomeTipo.startsWith("L")) { + + vars[i] = new Referencia(new Integer(0)); + + i++; + + } + + } + + } + + return i; + + } + + public int obterIdentificadorVariavel(SimboloVariavel variavel) { + + int i = 0; + + boolean estatico = variavel.isEstatico(); + + for (SimboloVariavel var : constantPool) { + + if (var.isEstatico() == estatico){ + + if (var == variavel) + return i; + else + i++; + } + + } + + return i; + + } + public void alocarMemoriaFields() { + fields = new Object[constantPool.size()]; int i; @@ -105,7 +182,7 @@ else if (nomeTipo.startsWith("L")) while(parent != null) { - List constantPoolParent = parent.getConstantPool(); + List constantPoolParent = parent.getConstantPool(); fields = Arrays.copyOf( @@ -133,6 +210,27 @@ else if (nomeTipo.startsWith("L")) } } + + public int obterQuantidadeVariaveis(boolean estaticas) { + + int c = 0; + + for (SimboloVariavel variavel : constantPool) { + + if (variavel.isEstatico() == estaticas) + c++; + + } + + return c; + + } + + public void alterarCampo(int index, Object valor) { + + fields[index] = valor; + + } public Map obterMembros() { @@ -151,11 +249,11 @@ public String obterNome() { return nome; } - public List getConstantPool() { + public List getConstantPool() { return constantPool; } - public void setConstantPool(List constantPool) { + public void setConstantPool(List constantPool) { this.constantPool = constantPool; } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.java index e830ba2..5cbe42a 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloVariavel.java @@ -2,10 +2,30 @@ public class SimboloVariavel extends Simbolo { + private boolean estatico; + public SimboloVariavel(String nome, Tipo tipo) { super(nome, tipo); + this.estatico = false; + + } + + public SimboloVariavel(String nome, Tipo tipo, boolean estatico) { + + super(nome, tipo); + + this.estatico = estatico; + + } + + public boolean isEstatico() { + return estatico; + } + + public void setEstatico(boolean estatico) { + this.estatico = estatico; } } From 086fb12cea6a0661c1fc7239b0737e5b1d956c68 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Sat, 29 Sep 2012 22:15:23 -0300 Subject: [PATCH 77/79] commit --- .../AcessoIndevidoMemoriaException.class | Bin 620 -> 620 bytes .../excecoes/LabelException.class | Bin 547 -> 547 bytes .../iged/interpretador/gramaticas/Assembler.g | 2 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 22 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 6 +- .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 76565 -> 76475 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 28569 -> 27249 bytes .../iged/interpretador/parser/Ref$DFA1.class | Bin 1311 -> 1311 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 28728 -> 27850 bytes .../principal/Interpretador.class | Bin 6953 -> 6967 bytes .../symboltable/classes/EscopoBase.class | Bin 1966 -> 1966 bytes .../symboltable/classes/Simbolo.class | Bin 2103 -> 2108 bytes .../symboltable/classes/SimboloClasse.class | Bin 7925 -> 7516 bytes .../classes/SimboloTipoPrimitvo.class | Bin 640 -> 640 bytes classes/Heranca.class | 12 + classes/Main.class | 15 + classes/Teste.class | 8 + .../AcessoIndevidoMemoriaException.java | 39 +- .../excecoes/ClassNotFoundException.java | 3 - .../excecoes/LabelException.java | 41 +- .../iged/interpretador/gramaticas/Assembler.g | 2 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 22 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 6 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 475 ++++++----- .../ufpb/iged/interpretador/parser/Def.java | 737 +++++------------- .../ufpb/iged/interpretador/parser/Ref.java | 495 +++--------- .../interpretador/principal/ClassLoader.java | 2 +- .../principal/Interpretador.java | 2 +- .../symboltable/classes/BytecodesAST.java | 4 +- .../classes/BytecodesErrorNode.java | 2 +- .../symboltable/classes/Escopo.java | 5 +- .../symboltable/classes/EscopoBase.java | 7 +- .../symboltable/classes/Simbolo.java | 2 +- .../symboltable/classes/SimboloClasse.java | 38 +- .../symboltable/classes/SimboloComEscopo.java | 5 +- .../symboltable/classes/SimboloLabel.java | 21 +- .../symboltable/classes/SimboloMetodo.java | 4 +- .../classes/SimboloTipoPrimitvo.java | 1 - .../interpretador/testes/InstrucaoTest.java | 75 -- 50 files changed, 674 insertions(+), 1381 deletions(-) delete mode 100644 src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java diff --git a/bin/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.class b/bin/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.class index d995c39b9ea91c9456778d4b76303231f64e9a61..eae665f92d065813125c473c7ef51da0a86d3a3c 100644 GIT binary patch delta 27 icmaFE@`h!@e@0eL1~vxn$t+B^to#hD41$y0nA8AhDh06s delta 27 icmaFE@`h!@e@0dw1~vxX$t+B^tU?T|48oJ$nA8AhrUknI diff --git a/bin/br/ufpb/iged/interpretador/excecoes/LabelException.class b/bin/br/ufpb/iged/interpretador/excecoes/LabelException.class index 85eff416b16d3dbefc53f07ed5fa646ddcdad8d3..201b79c6811e1e769b2642bb5f576533a4ac4151 100644 GIT binary patch delta 27 jcmZ3?vY2JVHbz!X1{MbH$-5bCS@{`Q83ZT)WmE$IUQh-= delta 27 jcmZ3?vY2JVHbzz+1{Mb1$-5bCS%nx_8H6YQWmE$IUd#qc diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index f61c987..cca44ae 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -92,7 +92,7 @@ limite : '.limit locals' INTEIRO -> ^(LIMIT INTEIRO); parametros : '()' -> ^(PARAMS VOID) | ( a = INT | a = TIPO_REF) - -> ^(PARAMS $a)+ + -> ^(PARAMS $a) ; retorno : diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index c108edd..0bda5a9 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -33,7 +33,7 @@ topdown : entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse - | parametros + //| parametros | declaracaoVariavel | field | invoke @@ -78,11 +78,11 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT tipoRet =. .+ (^(LIMIT lim=INTEIRO))?) + : ^(CONSTR_DECL INIT tipoRet =. ^(PARAMS a =.) (^(LIMIT lim=INTEIRO))? .) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); - SimboloMetodo metodo = new SimboloMetodo($INIT.text, null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($INIT.text+"("+a.getText()+")"+tipoRet.getText(), null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno($tipoRet.getText()); @@ -95,11 +95,11 @@ entraNoConstrutor ; entraNoMetodo - : ^(METHOD_DECL ID tipoRet =. .+ (^(LIMIT lim=INTEIRO))?) + : ^(METHOD_DECL ID tipoRet =. ^(PARAMS a =.) (^(LIMIT lim=INTEIRO))? .) { System.out.println("linha "+$ID.getLine()+ ": def method "+$ID.text); - SimboloMetodo metodo = new SimboloMetodo($ID.text, null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($ID.text+"("+a.getText()+")"+tipoRet.getText(), null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno($tipoRet.getText()); @@ -110,18 +110,6 @@ entraNoMetodo contador = 0; } ; - -parametros - : ^(PARAMS pars = .) - { - System.out.println("linha "+$pars.getLine()+": def "+$pars.getText()); - $pars.escopo = escopoAtual; - SimboloVariavel par = new SimboloVariavel($pars.getText(),null); - par.def = $pars; - $pars.simbolo = par; - escopoAtual.definir(par); - } - ; entraNoCorpoMetodo : BODY {escopoAtual = new EscopoLocal(escopoAtual);} diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index f9c14b0..b82cc27 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -81,7 +81,7 @@ options { assembler.getConstantPool().add(simboloClasse); SimboloMetodo simboloMetodo = - (SimboloMetodo) simboloClasse.resolverMetodo(nomeMetodo+"("+args+")"+tipoRetorno, nomeMetodo); + (SimboloMetodo) simboloClasse.resolver(nomeMetodo+"("+args+")"+tipoRetorno); if (!simboloClasse.getMethodArea().contains(simboloMetodo)) @@ -165,7 +165,7 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .+ (^(LIMIT lim=INTEIRO))?) + : ^(CONSTR_DECL INIT . ^(PARAMS .) (^(LIMIT lim=INTEIRO))? .) { System.out.println("Ref: Entrou no construtor "+$INIT.text); escopoAtual = (SimboloMetodo)$INIT.simbolo; @@ -176,7 +176,7 @@ entraNoConstrutor ; entraNoMetodo - : ^(METHOD_DECL ID . .+ (^(LIMIT lim=INTEIRO))?) + : ^(METHOD_DECL ID . ^(PARAMS .) (^(LIMIT lim=INTEIRO))? .) { System.out.println("Ref: Entrou no metodo "+$ID.text); escopoAtual = (SimboloMetodo)$ID.simbolo; diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index aaf513a4f0bab641d79c6c00523d87be4fa2c570..74df3f5589929960a76e39d41a1284e92da806da 100644 GIT binary patch delta 19 acmZ3-x{h^&3ln48WLG8|#*WENOgaEPv<1ch delta 19 acmZ3-x{h^&3ln4SWLG8|#{S7oOgaEQBn8v} diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class index ac45ea78c95c7d888ca2f6e3b3690cb7ec876543..31b1f888c687e8dca5edce2795beb1226dd7b0da 100644 GIT binary patch delta 19 acmZ3)x`=gy1rwwEWJ@L+M#afxOgaEGTm-xT delta 19 acmZ3)x`=gy1rwv%WJ@L+Mvcj3OgaEG%mm5+ diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index c8e9fdf416f07a8c16c3cb809026e74e4f19d25e..4efe769e7808e36722f68888c6a93f23c53074c9 100644 GIT binary patch delta 19 acmbQkI)`+jjB_VfGU)&SJk|xn delta 19 bcmZ3=x|DT;H522a$u>+jj7uh0GU)&SJw^r5 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class index 3b99d3177fc40627369c93a0f8a58f53fa1bd622..4b73b8d6300ea6625bf538f0fa7c37ba3c94c2d4 100644 GIT binary patch delta 19 bcmZ3)x`=gy1ry_x$(BqujMFBUG3fvRJFEq! delta 19 bcmZ3)x`=gy1ry`!$(BqujB_WKG3fvRJRAkI diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class index 43f15ac905dba2cc460e96924b31ecf9a80336d2..d0f96d168f49d18d883d317b3f0857992e045b16 100644 GIT binary patch delta 19 bcmX@cdW>~L3=`w$$+1i}j9(|uV$uNsN>m3J delta 19 bcmX@cdW>~L3=`w8$+1i}jDIH2V$uNsO2h{y diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index 6d357d34d283bbc38f4fa7a8fb72c6a3c90a2531..0cc9fe138ac3deffd2c871b3dd963d40bb7b157f 100644 GIT binary patch delta 19 acmbQwI-hleDHCJWWHTlk#+u2+OgaELQUzlG delta 19 acmbQwI-hleDHCJkWHTlk#^%YzOgaEL!Ub^v diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class index 93820f1f9e7f7e62f3638c0a1d221e8ee30f5169..90138dc5f10dd746bf949a8d77a76a694721232b 100644 GIT binary patch delta 19 acmbQwI-hleDHEf`WHTlkMytuiOgaEHG6dfM delta 19 acmbQwI-hleDHEgpWHTlkM#ss;OgaEHq6F;# diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class index 7fd5b4a55b2610ac65707b327395429f4a3c6ce3..3088343306ef23c6c27a97a20abd08c0949d7267 100644 GIT binary patch delta 19 acmZ3%x`K6s9TOwpWP2tXMuEvSOgaEGzy!De delta 19 acmZ3%x`K6s9TTJIWP2tXM)AotOgaEHFa*W` diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class index a3a4ea9a7ef49d85dc994a08a4e726cabb66e237..47147b64f39aa70dc97bee8effbf8f68bec25f7b 100644 GIT binary patch delta 19 acmbQkI)`|R;fY3WIUvQ`-S0yV8-asonZ;5Lu;q^Bn$6btz67%4qHIk4U; zj%k5RrHl=yrl?Rs_X-J?_Qt{vJXBqhZoM7%^3;uHQ2rz8a$x{*RkwrG8UaiUEL zEEjEjV6Ph)nuHMaiaITSZTIYU9TQTL(*iHt!lA;#ztO~hP+?$&LWM(pub~A77pzT9 zj1ROCXxeLN>fdWqQ&IvG1p3;(X-R*hY4N_m7J&*$ul7w#`3Fr*3)~XuYgr||hNdP3 ziUj??tdjmwlrE}MKd5ko$SUNe-n73JbCam+gT;?u=me**=X{0~S-czs2BzPy(}qS*P> zkxhs%sPs!D*%$aEI3!H?@`^FJAhDNlT3TRLa7fB)yvYRx`5)}_y{0I=z_9{A$oBb! z?B~JJD7-5ij>#g9k`faV0xb)NhKpnODx36|Hgpk3&X<@TADCD;H2*X&FB~dtXctmg zN)m-VCq~KnqsXN6*A}N0DCyYg!;iXV`;tW=+J%Hfc7MN}FD)tgwQ?4ehJPtl=JTb7e1X)FFO&xH zMbbpRSenn5NZ<0M(q6tyI?b0$xA<2w;a|%^e1%++uaqnDRq{K0wcL)ck$dx8c_jZv zp3c|GU-NI}tvpXY!q>^a^Y!v$zCqFXMx_Yfr1Oyk>? zWqgOSneSA7#4wh@KodbJT3TsPZmGm8OaZN=JG?HT>hhH zKR@g_$A9wNU#c%x}RTD&++T( zU4DZq{3Z?Iw`duDn^xv`XhVLNcI5YHUw)sC<`3vB{wH0w4A<_7DwTUd{EL-Z6kRDatI z(_6aXdbS&(4{;;)DQ=X$#4Vz4bp6r#K{rPK)h(*ucVi8&Tg(V^iyP(KI3v?7VKjD2 z8lBxzMnAW-G1e_(%yG*aYus|iF1Nh#i(A3C=EfV(-2~HdeP%H?(M)xd%-U|U*~(2Z zd%CISP&dt->ZY4Z-8allZbkEuTgm**%`hLhl`Yk+VuhD>Gp+J&RjaC7&1&LSx4O7B ztp4ts);RYqYpz?<%5`g5yWO{~6K?I?(80ytq*cHJ4gfh7cx(3@JRJCa_gV}M%=~_L zAnKkG@b9S{_+d{!Yc82Dn;=Q&0Wb<`1{&=>=dVIatC^&{T9s5$tC6ZAuA|lrSnBttaWC?A#Uq=5plWSysynCO8-vc!`i{{mj9 zPCoZk7Lf{#NsgzAh$u8A^*ov43xoEgYT(fiB^tP%YGSNoC-i!%i^#yqAjy;D$zb9= z=qH~P>r7%nEBTas8Z1&8GUPL2Cz~vUB)Nm!5t!Ubm{ASf7my8lz}_Dnn6U4b^a$GJ zuGrs|`2P#4+6#i!J`kezg)p@rM5_IvoH_t9)PYb>9SRN9VK7h~34V1H3{l6zaCJQ7 zsFPrf8i4WYRG6bqfqClZut1#&Th+O6Se*yQ)rD|UT?*IKWpGDb0r%B4sHnN9sXNeC zcVdjX3p3R3v36y3KQ>bjU`zEN_D~ODwut+whjEm81gEGcaJqU1m#F7)z4|L2Rxjca z^%9;?f5!{zW#UzDPW!7UhUVTll%e_6r$Wgy2&MobRFs5@Vo*^AD*UG&h@)O8MO7$E zDO8{gd{l#EYCsybpdxjkGIgOU4Tc)DFw~?WP@9HAJsJiLXgD;c5zv%I!h19dTGArW zokqhz8Utf#QJ6_%;VW7U{F`WT*iYl&G%W$wX-RlWOQB9nV+1XS(X>4FrU}@WCSre@ zf`e!peo8CiP?~`wXeN%L)o?6*6DQD`IGNVQskAPBLF?lz+7Rc`Cb)n$#l`eJTt}PX z2HFBQ(>8dWcED$}Bavtq5=7tklL*?4#M17h6wM+jv?s}={m7fNKWRq?k}Nuy45UNI zr*tS8PKS|^BA!G?kZE)znJM~tbTnB_$CAx-GTBb2kX`f(a*R$Vr|B$mlg=g&=sfb2 zekl>UK(go}DU`01qUb8=4Z23EN%N$4sehgH9$hcBrW>TTbe;48-6Zv-o25RY?@zZ% zqv>{OD%~T^p!=lR^pLcY{wS@bN2KrR&(cA9TslgBkxtQ*(iM7Ix=Sxf59#l+ORvb$ z^oCrX-jsdxmYhm&%jqJnPVdTZ(|hteqHj$9lsnKza<-p7mwPjm`!Yq&VIFxrqw-wF zgaS9i41S_c&Wu=r7qA$zJ zDwSAyr4~z4>akR%0jsFAW0jOHtcuc)Wh$St>dHt~Lm9{3QvB0dEoA{~s4QiTlwGW` za)G_8+-A*{=d6W?u$CS#YvrLLc3B%wC~ND95`8S|;7MeiJXKgXPYssksmXeInz0W( zt=UJOo~*B@FYE95gbnZvV}m@CnBOyl<#^_@QJzg~wC5xn>$%J(c^8E`fQo^UG}xN3tQpMVynG<*c$Hu z_Ki1(ee0dfws@zpt=?R=&3l;b@SbIRyw}-Y?``&j_W|4IeaQBz$PTDpc2Lzt@36ya z3_GHhWBwDWkDXSN*?ILX_N!W#T~h0_-_;iEirSuCRo`dV)NFQL?Za-XBiJo9huu}j zum|b__E`OvJyAEa=jv9Cs6T0vdO~y6vsxkbwiZNntuPJMB4`OMl9th;XeF%(tt{eN zS`2Nb#nO&iDcV)5K>LPiKANK?(z#j+{ZdP%OSCk)MoXv1w9MQ}=hoTpy#uONAA+?; z5TZ4KFs&&>YAvC()&`QbcF>kQ+xt}sLU0A_1F;VbP!*sS%2 zqgr1$u6+z=w0>||>yMf?IJe&IMUsDlpr0t{1A=~vpr0n_KZkPK7m%S%hkDu!Xr;}B z9@;EHKU+{Qgh|>WIIS&(bJ}wFO~-r`i>qq+P{n z+6|np-NEJBU0kjGiQi~XaF_NM?$ci2L0!Ugx{Q}}6|d+zKGqFO5t5+C zkji=-sjHVD4fK+vtzL?>7jbvJ3>m1GBRP5^DKbt^B{TFl$X9wrvQw{2cI#Ehem#>M z)2osvdaYdh!E=wlDX98?AXsk>A$m&)(_2HN-UiC)Z6QN%2le#!&`R$BJ#JBV^Yj6@LH`6d>!0FQ zeJJkGhvRNN2lwiualbwe5Bc>8_>(>vkLjP`34I!#(Z9g+`b@m2&&JF8JiMmQ$D8^h zysIz42l{eh#Mk&#UqwJ)LnM7I@#=Ym=^KctZz7JqMVPaVgy=g-gua^;(f5*geGl>J z`$)2Whz!$@kSY4l!joUfZ2dG@sh=VKwfe7Qoqmbz)qf|4^gqZ?`b}~{zeTR<_sDhq zA$g`hk|h19TnbHxXhIGuRC0#b&mTnmJ zq}xVA8I4A=*Jvs;qq!Vzw2)(rZgQN_T~0N6$c>F`xvkM#&NBMQy^N3Kp+;YMxQHhh z{p2~u0C~AFSYBlem%lS|l=6QUE@A>F&p~wD5pw<6+am-%O4dMSRmN zgwM@jVwxc&%#0#M%%Y^6S)5ch<49Ap6lrFbCaujf-xeHdgmfN^F+m}NGD zdFFd?-)spF&DQY5YzNQG4hUvvl+5?hV|GJo_CVe2iI&+5x!DJU&Au3F_QyzbAV!;h zEM^YI66P>W^P5BQ4RZu$n4__~IUWa@6L6>*z!By&oMwKGv&@+|*PM&1&3Tw-F2oJy zQru@Q6K<@)pUpLR$;`!TW}a|lBfc;<5yjj}RC6Z@HFpVD_L8FJ0g`AQBb&C6tjd4;5oHm{Ny<{xC17%VoglRWb#*!JdRtk)>l3{|C29vFd@Rd~sHd~pn!>SHPtr~FJss-n)x^Ua7 z2Y*@(P_-JOWwpaXR(p)II$&yTt0OkHI%8X_8)jMEv6s~Yhgw-UT*MQso;b(qg)6Pz zxY6p5Tdhym=N_&Z1(8OJUtY+q#W0)*Z~S?ulo(^$43;kFllo1bbM2 zVYZ0-S~!v(tv+_N)LvTLH(u7v~bI_S6S;Sjq44!0X&j{Po8y7gWuX8;|9AwZng*EHrtOo?IF0w9)|nu zk$A`+g+JM2g|abt$sUha?8&68J(XnG(@1rDI(gTgL0Z~#NE>@T>1i(@AK8mZj=h9T zu)iXc?N!7--(F3Y+TW0k_FA&tUQc$}o5?ZzJ966IMsC{M$pd>gd1U_}QG1_c*$1T< z`;b)9J|dN|k4u&8U!-dGDXEElT54gRms;BwrEL3>)W^OejkK>yRr^rF~ag zVn2{J*ndjf>?hJr`?++~ej%N5h+n$lNYZ`BD?M~HS#@;TbSydAvE>p@A-S{@B3E=m z<*H7E+}Mefn>#UbE2p@e<;2Oool^1$r?foIDKAfSeDXXeQC{q%$m^X{d8<=X-sRMi zk2`P6SDf04?9^2pr=e2BX{5wDjg=&)iIO7XOs8B^rGe8-Y3npsx;t%^|2iENztcsT z=)A8iak?qXobJjhr-!n^$x_Zbee!xm;(pmb6jWyz1Un-k#2E!)&KQVv#zHw~9Ar4- zp`J4Z8aPv7pz{Uzof$C1nGM68xsc<`hcV7V81F2BInH93=PZK-&I;J-tbxN$E*y9A z;H0w=t~s0Fjc*J>#C!9xk!Ff!)9P-4UP%8UPP`L%coI?mN1YtY~ zB6%=G^AL#TVGze7p%jmTvb+dX;?Yo-$3RP76uR@0kj+cM0A2%lv^ECL8SAyd_1J3X&@CUC7_jwI?$ZMg>-$s+y#UMYghvB?FmgEi5#~Wh} z-URFLR@jKQ#%8=NcH-?Zn|H(BygN?hJ#Yoj#*Mr;?&W>(0RITj^1gUp#DDO9_=FE2 yj1MBgd?*R$BS|Sfn!LfskVbqwX~HLv=6oXQ$S08;{&~S~+|LjMd88z|(*FSol%zEP delta 6526 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 delta 12165 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 4e64606a29e4f1f75df20151fa6b3c8aaeedfd62..9d9ed7e68296e432bc7d3ffeedadf5287a48a1e8 100644 GIT binary patch delta 61 zcmbQwHJ@uk3yT)30RtziAp;+)5rZ(RF@qGV34T3ZDP~ diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index bab3798d9d6afc2f2f62e4650b030f6bd2d05113..7f8f5127c72dc24b133397e171bc80fd6a6aa217 100644 GIT binary patch literal 27850 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 r_JQMI*5?PkiZItjFb>8I1iOEKX3U literal 28728 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 X<-?!~ZK`$@D1JvlT#Z|4(-`|72Av)c diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index ab3c88c38609a39d428a69af26dfbb68fca8c97b..785c9efdb21d957f371a2a47fbc956201fdbdb3b 100644 GIT binary patch delta 1311 zcmXX_32+oe6n%e>ncdmW?j)OQ!V(}{VFPT5MG6x`6^B$Imq>xNiltk)#Kn+=-4I1I zQN#-b3||El5j;Q+HEd)ivfLsHc;I~yZ@~jEycG=gEOyoOpML%S`~Us!-dt%_>PNbF z?g4Ni87drvVLVC?vF`NpR!7eE(T9|xSp?tQSfajs#+3162hGqBN3Dw4oU4v}F%!xI} zB8i5`xI|rC!$PzO^uQ?l?>2$kv53cb`-B%0l%ccgVyTpdyKs++y9s(WvMyF%8=2OW zOw`v3+>0f=+}oe-<7)#2eAt^y%lWuB)boCVHZ+orkEbFUmZ8O-Sl|IX$oX1zco|j+ ztVT7#)6{UDPQy~$Z7EjSb+5I3A0-Ut-r7K3uc@xb2sN@+|9u4ykyFP?fEv#^1{=@G@TEwK-AGejKsm zk8-14#6xt!z5Np;_?p1$c!N{^8o78=;4Qq(o&M>{yLey4d)eNV2XdVs;6uJR(3g%& zWPs~qLIoeo>%%>Rnx>%(pW4))@!r5lPZz!r_!3{STOUCud88ipoWM8s{9jXbYtXif@E^8Wh~Kwr$~ZAIaDbJW639axaT!f2j6ms=-I+JsZv) z$zYwNUEhHXop_=Xo4C68(weQgZf1}CD1lEwxLUstJyYPd~&XDB9q%;5C- zov?*pt2~C{vG@MqgmG2tpR$F3E?;gt{*q!0B=I-?kz&e_z!{vCVybZ&{zW%jxCG;H zjsQ2NVFVF5pr980$Vo1!SOhP*Nr6XN6&od6q2%r-tvy_6^0Z6qK&hOSEV{*yURemT zJN8SPS`s7=$4kOajeNYaB;pj5!v{-74)oi86d+yN5;!Rr2Pr5Ma7X)M72AEr(!1 z5HCa#pCTwIRS_v7lIm`4q!!VtRT1$(the<5MXTbit^ca7RORTcvF9Pf`%oCxIwr(Y)%4`g#qw;5HSv5&{F2)fF|Bi8&2*RW+3Yx8n}p z<{m|Na-KhjkGZqxERDD9j1~gi?dj%NxN$85&+EmSa!dPCc=I}Nx zIKHZSeyXn2O4=;&07?n2hDC#IG_1GE*JHD#=OGJY8)3{)sqT1~P$maAeAD54UBmW4 z#Z3YlJet)0n84%M$$rmVWtYH{*v$7(dAuf& z&F2I?uENVzyg(@6CK2M}BIwDW-Aa0qkUx;5c>{EiH#$aexi8GKy&?A@yrSY|LWxC7 zde4-*)`?fS*_(8A;B~9Ii&q75xilcS$X70%ZwkDH!@R~AOsM4HUAK~i87Xn}6 zD-H!FIld;0lBDvzQ&S5x^x#`7{X5B}#?^z90^j2YJ{>3scjHHapO8av)}`uG4Jv*f zs^r;OPERj>wF*xY_R2n$+?jQey%#52vVvQPT-+Qw;K(9O9g<(j`?7tM&F$IK9AUyZ z=^ocIIj7hbn%9A<8EM4h4g=RoYhV$t&MorRp?1AM(TYb~@dRHyY8kX5%S&k(4;ThO* zcy2}pMlx=qb!G;cWONglMH1SD^qAQa4=Na@QbtR1*CcY_Abyas7 zIH4;BPG!(L7>SwqrNpHxE-UsMFVnB8`CX0>2w_DE^1H)*^hlCXP7@X^S*XM1JTMn1AgMqsA^4pC6ThbV_~7DzKPcmqi$1|I+!E(*N> delta 77 zcmZ3-zm9){4;!lpgBpYAgGh2Ys>()1`DYG delta 34 pcmdlZuw7t72#X+ZaY<2Tfm2apa&~G-F(ZT8prFX+l&RBg&Q07v$JpjJak2?|#zDL1erajPai{0p-n{p{ z@6Yo-?|Z+~bw_GkuYIxa0D!OJQymt8N%EL$(vF5P+7-r#K&BZ|XDr-S*$|G#40K?Ld^K(SxCml8q5|$=h5A@15{z|340NJP zW;w@+WwOe7^;f#F+`tN~WSHUTHPKiw7M{m^ttBeEZmcp8$7=bo^E&tK2JXOGfwYdf zwAIwHI3z#Pa*7=AIB_?=qvP8GuJb`Ma1XvKi}j-G?-Lj`d|KZg3oQsmoVXYF8yJJ{ z3)o8POQ$=qUO+S`iw_uh5H~O`1{H}#XM|%5b!-r*97Mz^SEU|Zw>qo@5oEDYHxm5z*4g!9h30~14nR_mluV4nnN+7RZ^Pb zoLOLsYMp4o`vzXaT1C8L2L6QOEOMwVyqNroObtdtgf$wH2eQhYe<6;yDR1xZJe9S{ zB0N&Mg9W+JU|Y?6sWNJllaCA ze=pJl6}u5gz)@C_#J6@(Efq*UbndTa0N2pSwG7~T=5YhFYGgpu@xp;+#7EpxxUxD)*=!pXB<%ja zkQ3?o!0+Te+8PcOufrMO?>y1ApKwgu`)=3FW zQ~CS)(PvRy8lq2Q`4D+{9PkbCqd9?s@*(OBo}9-XA$%!B>1E5n6WmW|OyHjKB!1i! zP*(zRE(a?5L4`Scu~Wq{(U!o>3XkplFly{x`~M51kVk_g{_;p{VyzG!TguaxfyWs_ ze`EQff%r1jxHfZww6Y0-`#7f75m|{cJ_ps~lfqL{W66!vX1)3R za)c?mEBf5e(m1$VjoWd6thZt#neZZmv(bF2E$pn6niwLbC8v({#P2?XJj+>Rv*w?p zKt~&ATO}Lf4D#*&;an2xD`2n#611;4c(JuERVp=8SOKq>1xU@5CeF7W-)3lv@|2p> z;P?p2k2QPfC0cr!Q~Qv?k??bj=Z`8rQ5<(Us;3pHtMC)E&wU&p>~5Lw%W<-OJv{s= zUXqi27uLQ-VBR(%N)2wux!!Q#XQrka)-U4~niDugM;3DyS@5dd;wuz~eft$&^=(&zq{DP+tYIIQjQC3(bngjtGKDL%2PGBG(oS9&d z!caq6l_Ki3S_GA7B~+;mzl0c}w6>u3hpnxjVq0pfwZ*ogv?Yb6`@We;QkJe+>%BMU z-h0kI`|Nw}JyUjJPRh&weeO7bt1zg;A|Kag%gS`^KuxCRN(}|Vtxf9#q1r&C_10E_ zTjdE$hMZ@wmdzHu#)&G_8mPkp0Y{{DaU>LMStXD$wXkN5f4#r7$=|Z7G-fS#Vj&jm zSR{~s<(Pq+@Oe3uR3MfxdS#�?Q0sj~fJ>{%|xI&6C74jo(p|;XM1M%OWPZEuCot~wwHW0)bxm}-`)Pxot%>qU8tlcB) z9O-rgtym}jqj!4Safgl#0;y)8wn(t4v?dsi7}$s}%iWI2RhzLzM^wNyGNC#W2>Bze zAp>8*odUL&Kzrm$UKXre6KIH(>)0w#!ML;Jy~&O#PITa_2EK;7n0qihFC6hlf(>Ne zI<;`Q8obBAHhf*KO`3o6y#{tD>XTYmGG1M4bHD+&jt2zBjF3{@5(%sdgq*k^4;skC zHwb5Hbz!{&4+{vEa3OXYcm%r`kHJEb@RDF;wQSY0H64!%l*TD>Ub86B7zhPg8iIZ& zcH?p7Y>zPu0VkSCq8oyEqf6Yv?-1SM6)awQ%ezh8T)4*?VM%Jg6r~g*KQnoP}mH54Z zv-pGTO3n2KP^&cfCj;-`U4fJ^g}rWW$ltIw5Rvbs7CYY~b(@r@+C$#7$1EaK4vg{V zd7vQ;WBBu8ET+JXVr1dd7>`-VMLF{199N_LQ!p?^?sGMcnTAwMM+RoVLu8XMQ|6AH z8+`^=*ti|9@f}89aX%_7IDx9Vl2fpYo|0bF6!qf9op6+#Kz$GAOgo7b^(rdv#nK+p z!=+Zb1@htGvz$TZz=aA1x|T4mW1uP&VIF4Ua|8$YV&Mow&5trNmg8#XufE6_EOb$b z`KYGja$23RUP6YBs@x*1>KGn@9?;>go{CYHLAld#+NTlaG)hR9_`s)ddPNXCsw z!J<(J(o6(baW+{@AV`ZN&hG@%Iw{^CCA>6O@fu}D6{3* zdeJ$4531G2-Tm0kIa-e9y3Z_hMv->__b;>dK`!2E5#7k=&_liW=1yd*q20^O;WUo- z;W0Hu`RTP(6 z+O?QpDqAbPEWloLGqqBbVV~UM&MaFm1QXi~3{e!i4#DIFA00I6>?*WR0DDNx9-B({ z-^SDOwAZsX4Zyy|8=tCz29)Watg=h@d7Ti72-b>vjg%fjo9OA0*}f zAZzvzCBB0@dzW08nH5#|x!L(YmYvQ_o-wn_ zg`eUjyoMj+9PO8JT3FC0G`wnV=lQHdR0%QG;#|03YJlfGKEu$e!?jZ>FR;g080b#? zkR8v;Lvb~oy9xN9Qa$I{agv}7mNzylEx!MKa9)C&J*kw+AH;Zz*&oGa zV86(=Bg}iq2ie(C)eOjgP7djhHG?|#s!q=yXiD+4b}7ZbJxcN8l%ViBalXk@;|%xq zTbRu6={&qfn)&F?rFO8={dAI~cD0ACSM3EWCMda&g=L6Euydm(wC?8o7x9wZn=_^S zT~ha+>3JeofDFYrR9`RCpXwJ5(*6^A7A(Tg_)ezHf}cyrxP0-xJmGOic|+u=IwMxn zi&`^%0H>F^e$j_lDWTVT@rLUyKKPy2kKYOO;_ajOqcZ=Qk6!#m9cwBFn3Vy}Gxmq< z+2>7csv`6m$0pRZC?2nrZ=sZCS8+zXXy%HG3SA0s9mA;qDhG-BvS~ku_lNC&la-!) zjSSg^MXvIU&q@dZEJ%u3RiQ2() V return .end method +.method ashdhdf(III) V + iload_1 + iload_2 + imul + iload_3 + iadd + istore 4 + iload_0 + iload 4 + putfield Heranca/lovxfd I + return +.end method .end class \ No newline at end of file diff --git a/classes/Main.class b/classes/Main.class index 945e228..522fbc6 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -1,6 +1,21 @@ .class Main .method static main() V .limit locals 100 + new Heranca + invokespecial Heranca/() V + ldc 6 + iconst_3 + iconst_2 + invokevirtual Heranca/ashdhdf(III)V + pop2 + pop + dup + getfield Heranca/lovxfd I + iconst_2 + ldc 24 + invokevirtual Heranca/jdkfjkd(III)I + pop2 + pop2 ldc 3 ldc 6 iadd diff --git a/classes/Teste.class b/classes/Teste.class index ed1a5d9..020daec 100644 --- a/classes/Teste.class +++ b/classes/Teste.class @@ -6,4 +6,12 @@ .method () V return .end method +.method jdkfjkd(III) I + iload_1 + iload_2 + idiv + iload_3 + isub + ireturn +.end method .end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.java b/src/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.java index 0082f6e..bc4f4c9 100755 --- a/src/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.java +++ b/src/br/ufpb/iged/interpretador/excecoes/AcessoIndevidoMemoriaException.java @@ -1,22 +1,19 @@ -package br.ufpb.iged.interpretador.excecoes; - -public class AcessoIndevidoMemoriaException extends Exception{ - -/** -* -*/ -private static final long serialVersionUID = 2321754267568937083L; - -public AcessoIndevidoMemoriaException() { - -super("Acesso indevido ŕ memória"); - -} - -public AcessoIndevidoMemoriaException(String msg) { - -super(msg); - -} - +package br.ufpb.iged.interpretador.excecoes; + +public class AcessoIndevidoMemoriaException extends Exception{ + + private static final long serialVersionUID = 2321754267568937083L; + + public AcessoIndevidoMemoriaException() { + + super("Acesso indevido ŕ memória"); + + } + + public AcessoIndevidoMemoriaException(String msg) { + + super(msg); + + } + } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/excecoes/ClassNotFoundException.java b/src/br/ufpb/iged/interpretador/excecoes/ClassNotFoundException.java index 1697b6b..8f0c76b 100644 --- a/src/br/ufpb/iged/interpretador/excecoes/ClassNotFoundException.java +++ b/src/br/ufpb/iged/interpretador/excecoes/ClassNotFoundException.java @@ -2,9 +2,6 @@ public class ClassNotFoundException extends Exception{ - /** - * - */ private static final long serialVersionUID = 6082261366668401927L; public ClassNotFoundException() { diff --git a/src/br/ufpb/iged/interpretador/excecoes/LabelException.java b/src/br/ufpb/iged/interpretador/excecoes/LabelException.java index 906d2f2..7cf7305 100755 --- a/src/br/ufpb/iged/interpretador/excecoes/LabelException.java +++ b/src/br/ufpb/iged/interpretador/excecoes/LabelException.java @@ -1,22 +1,19 @@ -package br.ufpb.iged.interpretador.excecoes; - -public class LabelException extends Exception{ - -/** -* -*/ -private static final long serialVersionUID = -8079795783286968296L; - -public LabelException() { - -super(); - -} - -public LabelException(String msg) { - -super(msg); - -} - -} +package br.ufpb.iged.interpretador.excecoes; + +public class LabelException extends Exception{ + + private static final long serialVersionUID = -8079795783286968296L; + + public LabelException() { + + super(); + + } + + public LabelException(String msg) { + + super(msg); + + } + +} diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index f61c987..cca44ae 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -92,7 +92,7 @@ limite : '.limit locals' INTEIRO -> ^(LIMIT INTEIRO); parametros : '()' -> ^(PARAMS VOID) | ( a = INT | a = TIPO_REF) - -> ^(PARAMS $a)+ + -> ^(PARAMS $a) ; retorno : diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index c108edd..0bda5a9 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -33,7 +33,7 @@ topdown : entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse - | parametros + //| parametros | declaracaoVariavel | field | invoke @@ -78,11 +78,11 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT tipoRet =. .+ (^(LIMIT lim=INTEIRO))?) + : ^(CONSTR_DECL INIT tipoRet =. ^(PARAMS a =.) (^(LIMIT lim=INTEIRO))? .) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); - SimboloMetodo metodo = new SimboloMetodo($INIT.text, null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($INIT.text+"("+a.getText()+")"+tipoRet.getText(), null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno($tipoRet.getText()); @@ -95,11 +95,11 @@ entraNoConstrutor ; entraNoMetodo - : ^(METHOD_DECL ID tipoRet =. .+ (^(LIMIT lim=INTEIRO))?) + : ^(METHOD_DECL ID tipoRet =. ^(PARAMS a =.) (^(LIMIT lim=INTEIRO))? .) { System.out.println("linha "+$ID.getLine()+ ": def method "+$ID.text); - SimboloMetodo metodo = new SimboloMetodo($ID.text, null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo($ID.text+"("+a.getText()+")"+tipoRet.getText(), null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno($tipoRet.getText()); @@ -110,18 +110,6 @@ entraNoMetodo contador = 0; } ; - -parametros - : ^(PARAMS pars = .) - { - System.out.println("linha "+$pars.getLine()+": def "+$pars.getText()); - $pars.escopo = escopoAtual; - SimboloVariavel par = new SimboloVariavel($pars.getText(),null); - par.def = $pars; - $pars.simbolo = par; - escopoAtual.definir(par); - } - ; entraNoCorpoMetodo : BODY {escopoAtual = new EscopoLocal(escopoAtual);} diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index f9c14b0..b82cc27 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -81,7 +81,7 @@ options { assembler.getConstantPool().add(simboloClasse); SimboloMetodo simboloMetodo = - (SimboloMetodo) simboloClasse.resolverMetodo(nomeMetodo+"("+args+")"+tipoRetorno, nomeMetodo); + (SimboloMetodo) simboloClasse.resolver(nomeMetodo+"("+args+")"+tipoRetorno); if (!simboloClasse.getMethodArea().contains(simboloMetodo)) @@ -165,7 +165,7 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .+ (^(LIMIT lim=INTEIRO))?) + : ^(CONSTR_DECL INIT . ^(PARAMS .) (^(LIMIT lim=INTEIRO))? .) { System.out.println("Ref: Entrou no construtor "+$INIT.text); escopoAtual = (SimboloMetodo)$INIT.simbolo; @@ -176,7 +176,7 @@ entraNoConstrutor ; entraNoMetodo - : ^(METHOD_DECL ID . .+ (^(LIMIT lim=INTEIRO))?) + : ^(METHOD_DECL ID . ^(PARAMS .) (^(LIMIT lim=INTEIRO))? .) { System.out.println("Ref: Entrou no metodo "+$ID.text); escopoAtual = (SimboloMetodo)$ID.simbolo; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index a0f6c67..de976de 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-26 21:32:08 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-29 22:01:22 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 1bd9562..e9a164b 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-26 21:32:07 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-29 22:01:21 package br.ufpb.iged.interpretador.parser; @@ -1016,7 +1016,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: membroClasse, 36, ID, superClasse + // elements: 36, ID, superClasse, membroClasse // token labels: // rule labels: retval // token list labels: @@ -1382,7 +1382,7 @@ else if ( (LA17_2==ID||LA17_2==111) ) { stream_tipo.add(tipo31.getTree()); // AST REWRITE - // elements: ID, tipo, st + // elements: tipo, ID, st // token labels: st // rule labels: retval // token list labels: @@ -1565,7 +1565,7 @@ else if ( (LA10_0==33) ) { // AST REWRITE - // elements: INIT, ret, operacao, parametros, limite + // elements: ret, INIT, parametros, limite, operacao // token labels: // rule labels: ret, retval // token list labels: @@ -1788,7 +1788,7 @@ else if ( (LA14_0==33) ) { // AST REWRITE - // elements: operacao, limite, ret, ID, parametros + // elements: operacao, parametros, ret, ID, limite // token labels: // rule labels: ret, retval // token list labels: @@ -1972,7 +1972,7 @@ public static class parametros_return extends ParserRuleReturnScope { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= INT |a= TIPO_REF ) -> ( ^( PARAMS $a) )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= INT |a= TIPO_REF ) -> ^( PARAMS $a) ); public final AssemblerParser.parametros_return parametros() throws RecognitionException { AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); @@ -1990,7 +1990,7 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:2: ( '()' -> ^( PARAMS VOID ) | (a= INT |a= TIPO_REF ) -> ( ^( PARAMS $a) )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:2: ( '()' -> ^( PARAMS VOID ) | (a= INT |a= TIPO_REF ) -> ^( PARAMS $a) ) int alt19=2; int LA19_0 = input.LA(1); @@ -2104,26 +2104,19 @@ else if ( (LA18_0==TIPO_REF) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 95:4: -> ( ^( PARAMS $a) )+ + // 95:4: -> ^( PARAMS $a) { - if ( !(stream_a.hasNext()) ) { - throw new RewriteEarlyExitException(); - } - while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:7: ^( PARAMS $a) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(PARAMS, "PARAMS") - , root_1); - - adaptor.addChild(root_1, stream_a.nextNode()); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:7: ^( PARAMS $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(PARAMS, "PARAMS") + , root_1); - adaptor.addChild(root_0, root_1); - } + adaptor.addChild(root_1, stream_a.nextNode()); + adaptor.addChild(root_0, root_1); } - stream_a.reset(); } @@ -2212,7 +2205,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:99:13: a= 'areturn' { - a=(Token)match(input,50,FOLLOW_50_in_retorno877); + a=(Token)match(input,50,FOLLOW_50_in_retorno876); stream_50.add(a); @@ -2221,7 +2214,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:13: a= 'ireturn' { - a=(Token)match(input,95,FOLLOW_95_in_retorno895); + a=(Token)match(input,95,FOLLOW_95_in_retorno894); stream_95.add(a); @@ -2230,7 +2223,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'return' { - a=(Token)match(input,110,FOLLOW_110_in_retorno913); + a=(Token)match(input,110,FOLLOW_110_in_retorno912); stream_110.add(a); @@ -2407,15 +2400,15 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:22: a= 'getfield' REF tipo { - a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos992); + a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos991); stream_57.add(a); - REF58=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos994); + REF58=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos993); stream_REF.add(REF58); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos996); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos995); tipo59=tipo(); state._fsp--; @@ -2423,7 +2416,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo59.getTree()); // AST REWRITE - // elements: REF, tipo, 57 + // elements: 57, tipo, REF // token labels: // rule labels: retval // token list labels: @@ -2461,15 +2454,15 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:8: a= 'getstatic' REF tipo { - a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1019); + a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1018); stream_58.add(a); - REF60=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1021); + REF60=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1020); stream_REF.add(REF60); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1023); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1022); tipo61=tipo(); state._fsp--; @@ -2477,7 +2470,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo61.getTree()); // AST REWRITE - // elements: tipo, REF, 58 + // elements: tipo, 58, REF // token labels: // rule labels: retval // token list labels: @@ -2515,15 +2508,15 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'putfield' REF tipo { - a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1060); + a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1059); stream_108.add(a); - REF62=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1062); + REF62=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1061); stream_REF.add(REF62); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1064); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1063); tipo63=tipo(); state._fsp--; @@ -2531,7 +2524,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo63.getTree()); // AST REWRITE - // elements: 108, tipo, REF + // elements: 108, REF, tipo // token labels: // rule labels: retval // token list labels: @@ -2569,15 +2562,15 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:22: a= 'putstatic' REF tipo { - a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1101); + a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1100); stream_109.add(a); - REF64=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1103); + REF64=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1102); stream_REF.add(REF64); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1105); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1104); tipo65=tipo(); state._fsp--; @@ -2585,7 +2578,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo65.getTree()); // AST REWRITE - // elements: REF, tipo, 109 + // elements: tipo, 109, REF // token labels: // rule labels: retval // token list labels: @@ -2623,15 +2616,15 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:22: a= 'invokespecial' REF d= parametrosRetorno { - a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1142); + a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1141); stream_90.add(a); - REF66=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1144); + REF66=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1143); stream_REF.add(REF66); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1150); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1149); d=parametrosRetorno(); state._fsp--; @@ -2678,15 +2671,15 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'invokestatic' REF d= parametrosRetorno { - a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1210); + a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1209); stream_91.add(a); - REF67=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1212); + REF67=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1211); stream_REF.add(REF67); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1218); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1217); d=parametrosRetorno(); state._fsp--; @@ -2694,7 +2687,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: d, REF, 91 + // elements: d, 91, REF // token labels: // rule labels: retval, d // token list labels: @@ -2733,15 +2726,15 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:23: a= 'invokevirtual' REF d= parametrosRetorno { - a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1279); + a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1278); stream_92.add(a); - REF68=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1281); + REF68=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1280); stream_REF.add(REF68); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1287); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1286); d=parametrosRetorno(); state._fsp--; @@ -2749,7 +2742,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: REF, d, 92 + // elements: d, REF, 92 // token labels: // rule labels: retval, d // token list labels: @@ -2788,7 +2781,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:22: a= 'new' (b= ID |b= REF ) { - a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1347); + a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1346); stream_104.add(a); @@ -2813,7 +2806,7 @@ else if ( (LA21_0==REF) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:33: b= ID { - b=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos1354); + b=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos1353); stream_ID.add(b); @@ -2822,7 +2815,7 @@ else if ( (LA21_0==REF) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:42: b= REF { - b=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1362); + b=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1361); stream_REF.add(b); @@ -3034,7 +3027,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:16: a= 'iadd' { - a=(Token)match(input,60,FOLLOW_60_in_aritmetica1441); + a=(Token)match(input,60,FOLLOW_60_in_aritmetica1440); stream_60.add(a); @@ -3043,7 +3036,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:19: a= 'isub' { - a=(Token)match(input,101,FOLLOW_101_in_aritmetica1465); + a=(Token)match(input,101,FOLLOW_101_in_aritmetica1464); stream_101.add(a); @@ -3052,7 +3045,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:19: a= 'imul' { - a=(Token)match(input,88,FOLLOW_88_in_aritmetica1489); + a=(Token)match(input,88,FOLLOW_88_in_aritmetica1488); stream_88.add(a); @@ -3061,7 +3054,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:19: a= 'idiv' { - a=(Token)match(input,69,FOLLOW_69_in_aritmetica1513); + a=(Token)match(input,69,FOLLOW_69_in_aritmetica1512); stream_69.add(a); @@ -3070,7 +3063,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:19: a= 'irem' { - a=(Token)match(input,94,FOLLOW_94_in_aritmetica1537); + a=(Token)match(input,94,FOLLOW_94_in_aritmetica1536); stream_94.add(a); @@ -3079,7 +3072,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:19: a= 'iinc' { - a=(Token)match(input,82,FOLLOW_82_in_aritmetica1561); + a=(Token)match(input,82,FOLLOW_82_in_aritmetica1560); stream_82.add(a); @@ -3088,7 +3081,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:19: a= 'ineg' { - a=(Token)match(input,89,FOLLOW_89_in_aritmetica1585); + a=(Token)match(input,89,FOLLOW_89_in_aritmetica1584); stream_89.add(a); @@ -3287,7 +3280,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:10: a= 'iconst_m1' { - a=(Token)match(input,68,FOLLOW_68_in_load1659); + a=(Token)match(input,68,FOLLOW_68_in_load1658); stream_68.add(a); @@ -3296,7 +3289,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'iconst_0' { - a=(Token)match(input,62,FOLLOW_62_in_load1677); + a=(Token)match(input,62,FOLLOW_62_in_load1676); stream_62.add(a); @@ -3305,7 +3298,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'iconst_1' { - a=(Token)match(input,63,FOLLOW_63_in_load1695); + a=(Token)match(input,63,FOLLOW_63_in_load1694); stream_63.add(a); @@ -3314,7 +3307,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'iconst_2' { - a=(Token)match(input,64,FOLLOW_64_in_load1713); + a=(Token)match(input,64,FOLLOW_64_in_load1712); stream_64.add(a); @@ -3323,7 +3316,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iconst_3' { - a=(Token)match(input,65,FOLLOW_65_in_load1731); + a=(Token)match(input,65,FOLLOW_65_in_load1730); stream_65.add(a); @@ -3332,7 +3325,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iconst_4' { - a=(Token)match(input,66,FOLLOW_66_in_load1749); + a=(Token)match(input,66,FOLLOW_66_in_load1748); stream_66.add(a); @@ -3341,7 +3334,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iconst_5' { - a=(Token)match(input,67,FOLLOW_67_in_load1767); + a=(Token)match(input,67,FOLLOW_67_in_load1766); stream_67.add(a); @@ -3350,7 +3343,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'aconst_null' { - a=(Token)match(input,44,FOLLOW_44_in_load1785); + a=(Token)match(input,44,FOLLOW_44_in_load1784); stream_44.add(a); @@ -3359,7 +3352,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'iload_0' { - a=(Token)match(input,84,FOLLOW_84_in_load1803); + a=(Token)match(input,84,FOLLOW_84_in_load1802); stream_84.add(a); @@ -3368,7 +3361,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'iload_1' { - a=(Token)match(input,85,FOLLOW_85_in_load1821); + a=(Token)match(input,85,FOLLOW_85_in_load1820); stream_85.add(a); @@ -3377,7 +3370,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'iload_2' { - a=(Token)match(input,86,FOLLOW_86_in_load1839); + a=(Token)match(input,86,FOLLOW_86_in_load1838); stream_86.add(a); @@ -3386,7 +3379,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'iload_3' { - a=(Token)match(input,87,FOLLOW_87_in_load1857); + a=(Token)match(input,87,FOLLOW_87_in_load1856); stream_87.add(a); @@ -3395,7 +3388,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'aload_0' { - a=(Token)match(input,46,FOLLOW_46_in_load1875); + a=(Token)match(input,46,FOLLOW_46_in_load1874); stream_46.add(a); @@ -3404,7 +3397,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 14 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'aload_1' { - a=(Token)match(input,47,FOLLOW_47_in_load1893); + a=(Token)match(input,47,FOLLOW_47_in_load1892); stream_47.add(a); @@ -3413,7 +3406,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 15 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'aload_2' { - a=(Token)match(input,48,FOLLOW_48_in_load1911); + a=(Token)match(input,48,FOLLOW_48_in_load1910); stream_48.add(a); @@ -3422,7 +3415,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 16 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'aload_3' { - a=(Token)match(input,49,FOLLOW_49_in_load1929); + a=(Token)match(input,49,FOLLOW_49_in_load1928); stream_49.add(a); @@ -3546,11 +3539,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,83,FOLLOW_83_in_loadint1979); + a=(Token)match(input,83,FOLLOW_83_in_loadint1978); stream_83.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1985); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1984); stream_INTEIRO.add(b); @@ -3559,11 +3552,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:154:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,103,FOLLOW_103_in_loadint2005); + a=(Token)match(input,103,FOLLOW_103_in_loadint2004); stream_103.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2011); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2010); stream_INTEIRO.add(b); @@ -3572,11 +3565,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,45,FOLLOW_45_in_loadint2031); + a=(Token)match(input,45,FOLLOW_45_in_loadint2030); stream_45.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2037); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2036); stream_INTEIRO.add(b); @@ -3730,7 +3723,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:11: a= 'istore_0' { - a=(Token)match(input,97,FOLLOW_97_in_store2099); + a=(Token)match(input,97,FOLLOW_97_in_store2098); stream_97.add(a); @@ -3739,7 +3732,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:13: a= 'istore_1' { - a=(Token)match(input,98,FOLLOW_98_in_store2117); + a=(Token)match(input,98,FOLLOW_98_in_store2116); stream_98.add(a); @@ -3748,7 +3741,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:13: a= 'istore_2' { - a=(Token)match(input,99,FOLLOW_99_in_store2135); + a=(Token)match(input,99,FOLLOW_99_in_store2134); stream_99.add(a); @@ -3757,7 +3750,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:13: a= 'istore_3' { - a=(Token)match(input,100,FOLLOW_100_in_store2153); + a=(Token)match(input,100,FOLLOW_100_in_store2152); stream_100.add(a); @@ -3766,7 +3759,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'astore_0' { - a=(Token)match(input,52,FOLLOW_52_in_store2171); + a=(Token)match(input,52,FOLLOW_52_in_store2170); stream_52.add(a); @@ -3775,7 +3768,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'astore_1' { - a=(Token)match(input,53,FOLLOW_53_in_store2189); + a=(Token)match(input,53,FOLLOW_53_in_store2188); stream_53.add(a); @@ -3784,7 +3777,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:13: a= 'astore_2' { - a=(Token)match(input,54,FOLLOW_54_in_store2207); + a=(Token)match(input,54,FOLLOW_54_in_store2206); stream_54.add(a); @@ -3793,7 +3786,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'astore_3' { - a=(Token)match(input,55,FOLLOW_55_in_store2225); + a=(Token)match(input,55,FOLLOW_55_in_store2224); stream_55.add(a); @@ -3907,11 +3900,11 @@ else if ( (LA27_0==51) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,96,FOLLOW_96_in_storeint2279); + a=(Token)match(input,96,FOLLOW_96_in_storeint2278); stream_96.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2285); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2284); stream_INTEIRO.add(b); @@ -3920,11 +3913,11 @@ else if ( (LA27_0==51) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:173:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,51,FOLLOW_51_in_storeint2306); + a=(Token)match(input,51,FOLLOW_51_in_storeint2305); stream_51.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2312); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2311); stream_INTEIRO.add(b); @@ -3935,7 +3928,7 @@ else if ( (LA27_0==51) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -4048,7 +4041,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:12: a= 'iand' { - a=(Token)match(input,61,FOLLOW_61_in_logica2372); + a=(Token)match(input,61,FOLLOW_61_in_logica2371); stream_61.add(a); @@ -4057,7 +4050,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:179:14: a= 'ior' { - a=(Token)match(input,93,FOLLOW_93_in_logica2391); + a=(Token)match(input,93,FOLLOW_93_in_logica2390); stream_93.add(a); @@ -4066,7 +4059,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:14: a= 'ixor' { - a=(Token)match(input,102,FOLLOW_102_in_logica2410); + a=(Token)match(input,102,FOLLOW_102_in_logica2409); stream_102.add(a); @@ -4250,11 +4243,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:12: a= 'ifeq' b= ID { - a=(Token)match(input,76,FOLLOW_76_in_desvio2461); + a=(Token)match(input,76,FOLLOW_76_in_desvio2460); stream_76.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2467); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2466); stream_ID.add(b); @@ -4263,11 +4256,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:14: a= 'ifne' b= ID { - a=(Token)match(input,81,FOLLOW_81_in_desvio2486); + a=(Token)match(input,81,FOLLOW_81_in_desvio2485); stream_81.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2492); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2491); stream_ID.add(b); @@ -4276,11 +4269,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:14: a= 'iflt' b= ID { - a=(Token)match(input,80,FOLLOW_80_in_desvio2511); + a=(Token)match(input,80,FOLLOW_80_in_desvio2510); stream_80.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2517); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2516); stream_ID.add(b); @@ -4289,11 +4282,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'ifge' b= ID { - a=(Token)match(input,77,FOLLOW_77_in_desvio2536); + a=(Token)match(input,77,FOLLOW_77_in_desvio2535); stream_77.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2542); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2541); stream_ID.add(b); @@ -4302,11 +4295,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'ifgt' b= ID { - a=(Token)match(input,78,FOLLOW_78_in_desvio2561); + a=(Token)match(input,78,FOLLOW_78_in_desvio2560); stream_78.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2567); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2566); stream_ID.add(b); @@ -4315,11 +4308,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'ifle' b= ID { - a=(Token)match(input,79,FOLLOW_79_in_desvio2586); + a=(Token)match(input,79,FOLLOW_79_in_desvio2585); stream_79.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2592); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2591); stream_ID.add(b); @@ -4328,11 +4321,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2611); + a=(Token)match(input,70,FOLLOW_70_in_desvio2610); stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2617); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2616); stream_ID.add(b); @@ -4341,11 +4334,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,75,FOLLOW_75_in_desvio2636); + a=(Token)match(input,75,FOLLOW_75_in_desvio2635); stream_75.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2642); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2641); stream_ID.add(b); @@ -4354,11 +4347,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,74,FOLLOW_74_in_desvio2661); + a=(Token)match(input,74,FOLLOW_74_in_desvio2660); stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2667); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2666); stream_ID.add(b); @@ -4367,11 +4360,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2686); + a=(Token)match(input,71,FOLLOW_71_in_desvio2685); stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2692); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2691); stream_ID.add(b); @@ -4380,11 +4373,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2711); + a=(Token)match(input,72,FOLLOW_72_in_desvio2710); stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2717); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2716); stream_ID.add(b); @@ -4393,11 +4386,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:14: a= 'if_icmple' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2736); + a=(Token)match(input,73,FOLLOW_73_in_desvio2735); stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2742); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2741); stream_ID.add(b); @@ -4406,11 +4399,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:197:14: a= 'goto' b= ID { - a=(Token)match(input,59,FOLLOW_59_in_desvio2761); + a=(Token)match(input,59,FOLLOW_59_in_desvio2760); stream_59.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2767); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2766); stream_ID.add(b); @@ -4421,7 +4414,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -4534,7 +4527,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:11: a= 'pop' { - a=(Token)match(input,106,FOLLOW_106_in_pilha2828); + a=(Token)match(input,106,FOLLOW_106_in_pilha2827); stream_106.add(a); @@ -4543,7 +4536,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:203:13: a= 'pop2' { - a=(Token)match(input,107,FOLLOW_107_in_pilha2846); + a=(Token)match(input,107,FOLLOW_107_in_pilha2845); stream_107.add(a); @@ -4552,7 +4545,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:13: a= 'dup' { - a=(Token)match(input,56,FOLLOW_56_in_pilha2864); + a=(Token)match(input,56,FOLLOW_56_in_pilha2863); stream_56.add(a); @@ -4672,7 +4665,7 @@ else if ( (LA31_0==33) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:11: parametros { - pushFollow(FOLLOW_parametros_in_parametrosRetorno2919); + pushFollow(FOLLOW_parametros_in_parametrosRetorno2918); parametros70=parametros(); state._fsp--; @@ -4684,18 +4677,18 @@ else if ( (LA31_0==33) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:210:24: '(' parametros ')' { - char_literal71=(Token)match(input,33,FOLLOW_33_in_parametrosRetorno2923); + char_literal71=(Token)match(input,33,FOLLOW_33_in_parametrosRetorno2922); stream_33.add(char_literal71); - pushFollow(FOLLOW_parametros_in_parametrosRetorno2925); + pushFollow(FOLLOW_parametros_in_parametrosRetorno2924); parametros72=parametros(); state._fsp--; stream_parametros.add(parametros72.getTree()); - char_literal73=(Token)match(input,35,FOLLOW_35_in_parametrosRetorno2927); + char_literal73=(Token)match(input,35,FOLLOW_35_in_parametrosRetorno2926); stream_35.add(char_literal73); @@ -4705,7 +4698,7 @@ else if ( (LA31_0==33) ) { } - pushFollow(FOLLOW_tipo_in_parametrosRetorno2935); + pushFollow(FOLLOW_tipo_in_parametrosRetorno2934); tip=tipo(); state._fsp--; @@ -4838,110 +4831,110 @@ else if ( (LA31_0==33) ) { public static final BitSet FOLLOW_34_in_parametros809 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INT_in_parametros828 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_TIPO_REF_in_parametros836 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_retorno877 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_retorno895 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_110_in_retorno913 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_manipulacaoObjetos992 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos994 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos996 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_manipulacaoObjetos1019 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1021 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1023 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_108_in_manipulacaoObjetos1060 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1062 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1064 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_109_in_manipulacaoObjetos1101 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1103 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1105 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_manipulacaoObjetos1142 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1144 = new BitSet(new long[]{0x0000000640002000L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1150 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_manipulacaoObjetos1210 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1212 = new BitSet(new long[]{0x0000000640002000L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1218 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_manipulacaoObjetos1279 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1281 = new BitSet(new long[]{0x0000000640002000L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1287 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_104_in_manipulacaoObjetos1347 = new BitSet(new long[]{0x0000000008000800L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos1354 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1362 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_aritmetica1441 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_101_in_aritmetica1465 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_aritmetica1489 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_aritmetica1513 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_aritmetica1537 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_aritmetica1561 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_aritmetica1585 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_load1659 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load1677 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load1695 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_load1713 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_load1731 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_load1749 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_load1767 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load1785 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_load1803 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_load1821 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_load1839 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_load1857 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load1875 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1893 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load1911 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load1929 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_loadint1979 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1985 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_103_in_loadint2005 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2011 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_loadint2031 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2037 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_store2099 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_store2117 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_99_in_store2135 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_100_in_store2153 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_store2171 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_store2189 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_store2207 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_store2225 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_storeint2279 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2285 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_storeint2306 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2312 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_logica2372 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_logica2391 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_102_in_logica2410 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_desvio2461 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2467 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_desvio2486 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2492 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_desvio2511 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2517 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_desvio2536 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2542 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_desvio2561 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2567 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_desvio2586 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2592 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2611 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2617 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_desvio2636 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2642 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_desvio2661 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2667 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2686 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2692 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2711 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2717 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2736 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2742 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio2761 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2767 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_106_in_pilha2828 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_107_in_pilha2846 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_pilha2864 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_parametros_in_parametrosRetorno2919 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_33_in_parametrosRetorno2923 = new BitSet(new long[]{0x0000000440002000L}); - public static final BitSet FOLLOW_parametros_in_parametrosRetorno2925 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_parametrosRetorno2927 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_parametrosRetorno2935 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_50_in_retorno876 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_retorno894 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_110_in_retorno912 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_manipulacaoObjetos991 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos993 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos995 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_manipulacaoObjetos1018 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1020 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1022 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_108_in_manipulacaoObjetos1059 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1061 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1063 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_109_in_manipulacaoObjetos1100 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1102 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1104 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_manipulacaoObjetos1141 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1143 = new BitSet(new long[]{0x0000000640002000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1149 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_manipulacaoObjetos1209 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1211 = new BitSet(new long[]{0x0000000640002000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1217 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_manipulacaoObjetos1278 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1280 = new BitSet(new long[]{0x0000000640002000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1286 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_104_in_manipulacaoObjetos1346 = new BitSet(new long[]{0x0000000008000800L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos1353 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1361 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_aritmetica1440 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_101_in_aritmetica1464 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_aritmetica1488 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_aritmetica1512 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_aritmetica1536 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_aritmetica1560 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_aritmetica1584 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_load1658 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load1676 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load1694 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_load1712 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_load1730 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_load1748 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_load1766 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load1784 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_load1802 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_load1820 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_load1838 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_load1856 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load1874 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1892 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1910 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1928 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_loadint1978 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1984 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_103_in_loadint2004 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2010 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_loadint2030 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2036 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_store2098 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_store2116 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_store2134 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_100_in_store2152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_store2170 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_store2188 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_store2206 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_store2224 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_storeint2278 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2284 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_storeint2305 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2311 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_logica2371 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_logica2390 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_102_in_logica2409 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_desvio2460 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2466 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_desvio2485 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2491 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_desvio2510 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2516 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_desvio2535 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2541 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_desvio2560 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2566 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_desvio2585 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2591 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2610 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2616 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_desvio2635 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2641 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2660 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2666 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2685 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2691 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2710 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2716 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2735 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2741 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio2760 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2766 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_106_in_pilha2827 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_107_in_pilha2845 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_pilha2863 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parametros_in_parametrosRetorno2918 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_33_in_parametrosRetorno2922 = new BitSet(new long[]{0x0000000440002000L}); + public static final BitSet FOLLOW_parametros_in_parametrosRetorno2924 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_parametrosRetorno2926 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_parametrosRetorno2934 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index eb1caa3..0c65a2e 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-26 21:32:09 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-29 22:01:23 package br.ufpb.iged.interpretador.parser; @@ -167,11 +167,11 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | field | invoke | nenhumoperando | umoperando | label ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | declaracaoVariavel | field | invoke | nenhumoperando | umoperando | label ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | field | invoke | nenhumoperando | umoperando | label ) - int alt1=11; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | declaracaoVariavel | field | invoke | nenhumoperando | umoperando | label ) + int alt1=10; alt1 = dfa1.predict(input); switch (alt1) { case 1 : @@ -219,20 +219,9 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:11: parametros - { - pushFollow(FOLLOW_parametros_in_topdown97); - parametros(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:11: declaracaoVariavel { - pushFollow(FOLLOW_declaracaoVariavel_in_topdown109); + pushFollow(FOLLOW_declaracaoVariavel_in_topdown106); declaracaoVariavel(); state._fsp--; @@ -240,10 +229,10 @@ public final void topdown() throws RecognitionException { } break; - case 7 : + case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:38:11: field { - pushFollow(FOLLOW_field_in_topdown121); + pushFollow(FOLLOW_field_in_topdown118); field(); state._fsp--; @@ -251,10 +240,10 @@ public final void topdown() throws RecognitionException { } break; - case 8 : + case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:11: invoke { - pushFollow(FOLLOW_invoke_in_topdown133); + pushFollow(FOLLOW_invoke_in_topdown130); invoke(); state._fsp--; @@ -262,10 +251,10 @@ public final void topdown() throws RecognitionException { } break; - case 9 : + case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:11: nenhumoperando { - pushFollow(FOLLOW_nenhumoperando_in_topdown145); + pushFollow(FOLLOW_nenhumoperando_in_topdown142); nenhumoperando(); state._fsp--; @@ -273,10 +262,10 @@ public final void topdown() throws RecognitionException { } break; - case 10 : + case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:11: umoperando { - pushFollow(FOLLOW_umoperando_in_topdown157); + pushFollow(FOLLOW_umoperando_in_topdown154); umoperando(); state._fsp--; @@ -284,10 +273,10 @@ public final void topdown() throws RecognitionException { } break; - case 11 : + case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:11: label { - pushFollow(FOLLOW_label_in_topdown169); + pushFollow(FOLLOW_label_in_topdown166); label(); state._fsp--; @@ -302,8 +291,7 @@ public final void topdown() throws RecognitionException { reportError(re); recover(input,re); } catch (LabelException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + System.out.println(e.getMessage()); } finally { @@ -355,7 +343,7 @@ public final void bottomup() throws RecognitionException { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:12: saiDoCorpoMetodo { - pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup186); + pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup183); saiDoCorpoMetodo(); state._fsp--; @@ -366,7 +354,7 @@ public final void bottomup() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:12: saiDoMetodo { - pushFollow(FOLLOW_saiDoMetodo_in_bottomup199); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup196); saiDoMetodo(); state._fsp--; @@ -377,7 +365,7 @@ public final void bottomup() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:12: saiDoConstrutor { - pushFollow(FOLLOW_saiDoConstrutor_in_bottomup212); + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup209); saiDoConstrutor(); state._fsp--; @@ -388,7 +376,7 @@ public final void bottomup() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:48:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup225); + pushFollow(FOLLOW_saiDaClasse_in_bottomup222); saiDaClasse(); state._fsp--; @@ -423,10 +411,10 @@ public final void entraNaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= . ) )? . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:7: ^( '.class' nome= ID ( ^( EXTENDS sup= . ) )? . ) { - match(input,36,FOLLOW_36_in_entraNaClasse257); if (state.failed) return ; + match(input,36,FOLLOW_36_in_entraNaClasse254); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse261); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse258); if (state.failed) return ; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:26: ( ^( EXTENDS sup= . ) )? int alt3=2; @@ -458,7 +446,7 @@ else if ( (LA3_4==UP) ) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:27: ^( EXTENDS sup= . ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse265); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse262); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; sup=(BytecodesAST)input.LT(1); @@ -526,7 +514,7 @@ public final Def.declaracaoVariavel_return declaracaoVariavel() throws Recogniti // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:5: ( ^( FIELD_DECL (st= . )? ID tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:7: ^( FIELD_DECL (st= . )? ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel305); if (state.failed) return retval; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel302); if (state.failed) return retval; match(input, Token.DOWN, null); if (state.failed) return retval; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:20: (st= . )? @@ -564,7 +552,7 @@ else if ( ((LA4_0 >= ARGS && LA4_0 <= FIELD_DECL)||(LA4_0 >= INIT && LA4_0 <= 11 } - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel315); if (state.failed) return retval; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel312); if (state.failed) return retval; tipo=(BytecodesAST)input.LT(1); @@ -602,199 +590,67 @@ else if ( ((LA4_0 >= ARGS && LA4_0 <= FIELD_DECL)||(LA4_0 >= INIT && LA4_0 <= 11 // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:1: entraNoConstrutor : ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:1: entraNoConstrutor : ^( CONSTR_DECL INIT tipoRet= . ^( PARAMS a= . ) ( ^( LIMIT lim= INTEIRO ) )? . ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; BytecodesAST tipoRet=null; + BytecodesAST a=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:2: ( ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:4: ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:2: ( ^( CONSTR_DECL INIT tipoRet= . ^( PARAMS a= . ) ( ^( LIMIT lim= INTEIRO ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:4: ^( CONSTR_DECL INIT tipoRet= . ^( PARAMS a= . ) ( ^( LIMIT lim= INTEIRO ) )? . ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor350); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor347); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor352); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor349); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:34: ( . )+ - int cnt5=0; - loop5: - do { - int alt5=2; - switch ( input.LA(1) ) { - case LIMIT: - { - int LA5_1 = input.LA(2); + match(input,PARAMS,FOLLOW_PARAMS_in_entraNoConstrutor357); if (state.failed) return ; - if ( (true) ) { - alt5=1; - } - else if ( (true) ) { - alt5=2; - } + match(input, Token.DOWN, null); if (state.failed) return ; + a=(BytecodesAST)input.LT(1); + matchAny(input); if (state.failed) return ; - } - break; - case ARGS: - case ARITMETICA: - case BODY: - case CONSTR_DECL: - case DESVIO: - case EXTENDS: - case FIELD_DECL: - case ID: - case INIT: - case INT: - case INTEIRO: - case LABEL: - case LOAD: - case LOGICA: - case MEMBRO_CLASSE: - case METHOD_CALL: - case METHOD_DECL: - case NEW: - case NEWLINE: - case NULL: - case PARAMS: - case PILHA: - case REF: - case RETURN: - case STORE: - case TIPO_REF: - case VOID: - case WS: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 93: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 106: - case 107: - case 108: - case 109: - case 110: - case 111: - { - alt5=1; - } - break; - case UP: - { - alt5=2; - } - break; + match(input, Token.UP, null); if (state.failed) return ; - } - switch (alt5) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:34: . - { - matchAny(input); if (state.failed) return ; - - } - break; - - default : - if ( cnt5 >= 1 ) break loop5; - if (state.backtracking>0) {state.failed=true; return ;} - EarlyExitException eee = - new EarlyExitException(5, input); - throw eee; - } - cnt5++; - } while (true); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:49: ( ^( LIMIT lim= INTEIRO ) )? + int alt5=2; + int LA5_0 = input.LA(1); + if ( (LA5_0==LIMIT) ) { + int LA5_1 = input.LA(2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:37: ( ^( LIMIT lim= INTEIRO ) )? - int alt6=2; - int LA6_0 = input.LA(1); + if ( (LA5_1==DOWN) ) { + int LA5_3 = input.LA(3); - if ( (LA6_0==LIMIT) ) { - alt6=1; + if ( (LA5_3==INTEIRO) ) { + int LA5_4 = input.LA(4); + + if ( (LA5_4==UP) ) { + int LA5_5 = input.LA(5); + + if ( ((LA5_5 >= ARGS && LA5_5 <= 111)) ) { + alt5=1; + } + } + } + } } - switch (alt6) { + switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:38: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:81:50: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor364); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor367); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor368); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor371); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -805,13 +661,15 @@ else if ( (true) ) { } + matchAny(input); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("linha "+INIT2.getLine()+ ": def method init "); - SimboloMetodo metodo = new SimboloMetodo((INIT2!=null?INIT2.getText():null), null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo((INIT2!=null?INIT2.getText():null)+"("+a.getText()+")"+tipoRet.getText(), null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno(tipoRet.getText()); @@ -840,199 +698,67 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ^( PARAMS a= . ) ( ^( LIMIT lim= INTEIRO ) )? . ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; BytecodesAST tipoRet=null; + BytecodesAST a=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:2: ( ^( METHOD_DECL ID tipoRet= . ^( PARAMS a= . ) ( ^( LIMIT lim= INTEIRO ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:4: ^( METHOD_DECL ID tipoRet= . ^( PARAMS a= . ) ( ^( LIMIT lim= INTEIRO ) )? . ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo388); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo393); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo390); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo395); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:32: ( . )+ - int cnt7=0; - loop7: - do { - int alt7=2; - switch ( input.LA(1) ) { - case LIMIT: - { - int LA7_1 = input.LA(2); + match(input,PARAMS,FOLLOW_PARAMS_in_entraNoMetodo403); if (state.failed) return ; - if ( (true) ) { - alt7=1; - } - else if ( (true) ) { - alt7=2; - } + match(input, Token.DOWN, null); if (state.failed) return ; + a=(BytecodesAST)input.LT(1); + matchAny(input); if (state.failed) return ; - } - break; - case ARGS: - case ARITMETICA: - case BODY: - case CONSTR_DECL: - case DESVIO: - case EXTENDS: - case FIELD_DECL: - case ID: - case INIT: - case INT: - case INTEIRO: - case LABEL: - case LOAD: - case LOGICA: - case MEMBRO_CLASSE: - case METHOD_CALL: - case METHOD_DECL: - case NEW: - case NEWLINE: - case NULL: - case PARAMS: - case PILHA: - case REF: - case RETURN: - case STORE: - case TIPO_REF: - case VOID: - case WS: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 93: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 106: - case 107: - case 108: - case 109: - case 110: - case 111: - { - alt7=1; - } - break; - case UP: - { - alt7=2; - } - break; + match(input, Token.UP, null); if (state.failed) return ; - } - switch (alt7) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:32: . - { - matchAny(input); if (state.failed) return ; - - } - break; - - default : - if ( cnt7 >= 1 ) break loop7; - if (state.backtracking>0) {state.failed=true; return ;} - EarlyExitException eee = - new EarlyExitException(7, input); - throw eee; - } - cnt7++; - } while (true); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:47: ( ^( LIMIT lim= INTEIRO ) )? + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==LIMIT) ) { + int LA6_1 = input.LA(2); + if ( (LA6_1==DOWN) ) { + int LA6_3 = input.LA(3); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:35: ( ^( LIMIT lim= INTEIRO ) )? - int alt8=2; - int LA8_0 = input.LA(1); + if ( (LA6_3==INTEIRO) ) { + int LA6_4 = input.LA(4); - if ( (LA8_0==LIMIT) ) { - alt8=1; + if ( (LA6_4==UP) ) { + int LA6_5 = input.LA(5); + + if ( ((LA6_5 >= ARGS && LA6_5 <= 111)) ) { + alt6=1; + } + } + } + } } - switch (alt8) { + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:36: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:98:48: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo402); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo413); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo406); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo417); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1043,13 +769,15 @@ else if ( (true) ) { } + matchAny(input); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("linha "+ID3.getLine()+ ": def method "+(ID3!=null?ID3.getText():null)); - SimboloMetodo metodo = new SimboloMetodo((ID3!=null?ID3.getText():null), null, escopoAtual); + SimboloMetodo metodo = new SimboloMetodo((ID3!=null?ID3.getText():null)+"("+a.getText()+")"+tipoRet.getText(), null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); metodo.setRetorno(tipoRet.getText()); @@ -1077,59 +805,14 @@ else if ( (true) ) { - // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:1: parametros : ^( PARAMS pars= . ) ; - public final void parametros() throws RecognitionException { - BytecodesAST pars=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:4: ^( PARAMS pars= . ) - { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros426); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - pars=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - System.out.println("linha "+pars.getLine()+": def "+pars.getText()); - pars.escopo = escopoAtual; - SimboloVariavel par = new SimboloVariavel(pars.getText(),null); - par.def = pars; - pars.simbolo = par; - escopoAtual.definir(par); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "parametros" - - - // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:115:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo454); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo444); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -1151,13 +834,13 @@ public final void entraNoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:118:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:131:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:119:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:119:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo480); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo470); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -1182,13 +865,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:138:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:15: '.class' { - match(input,36,FOLLOW_36_in_saiDaClasse507); if (state.failed) return ; + match(input,36,FOLLOW_36_in_saiDaClasse497); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -1213,13 +896,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:133:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:146:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:146:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:134:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:134:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo557); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo547); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -1245,13 +928,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:142:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:155:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:155:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:143:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:143:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor573); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor563); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); @@ -1276,72 +959,72 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "field" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:1: field : ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:1: field : ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ; public final void field() throws RecognitionException { BytecodesAST a=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:7: ( ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:9: ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:7: ( ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:9: ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:11: (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) - int alt9=4; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:11: (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) + int alt7=4; switch ( input.LA(1) ) { case 57: { - alt9=1; + alt7=1; } break; case 58: { - alt9=2; + alt7=2; } break; case 108: { - alt9=3; + alt7=3; } break; case 109: { - alt9=4; + alt7=4; } break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 7, 0, input); throw nvae; } - switch (alt9) { + switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:12: a= 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:12: a= 'getfield' { - a=(BytecodesAST)match(input,57,FOLLOW_57_in_field595); if (state.failed) return ; + a=(BytecodesAST)match(input,57,FOLLOW_57_in_field585); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:29: a= 'getstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:29: a= 'getstatic' { - a=(BytecodesAST)match(input,58,FOLLOW_58_in_field603); if (state.failed) return ; + a=(BytecodesAST)match(input,58,FOLLOW_58_in_field593); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:47: a= 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:47: a= 'putfield' { - a=(BytecodesAST)match(input,108,FOLLOW_108_in_field611); if (state.failed) return ; + a=(BytecodesAST)match(input,108,FOLLOW_108_in_field601); if (state.failed) return ; } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:163:64: a= 'putstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:64: a= 'putstatic' { - a=(BytecodesAST)match(input,109,FOLLOW_109_in_field619); if (state.failed) return ; + a=(BytecodesAST)match(input,109,FOLLOW_109_in_field609); if (state.failed) return ; } break; @@ -1382,11 +1065,11 @@ public final void field() throws RecognitionException { // $ANTLR start "invoke" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:172:1: invoke : ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:1: invoke : ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ; public final void invoke() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:172:9: ( ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:172:11: ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:9: ( ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:11: ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) { if ( (input.LA(1) >= 90 && input.LA(1) <= 92) ) { input.consume(); @@ -1403,10 +1086,10 @@ public final void invoke() throws RecognitionException { match(input, Token.DOWN, null); if (state.failed) return ; matchAny(input); if (state.failed) return ; - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke677); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke667); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - match(input,PARAMS,FOLLOW_PARAMS_in_invoke680); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_invoke670); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; matchAny(input); if (state.failed) return ; @@ -1444,11 +1127,11 @@ public final void invoke() throws RecognitionException { // $ANTLR start "nenhumoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:178:1: nenhumoperando : ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:166:1: nenhumoperando : ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ; public final void nenhumoperando() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:179:2: ( ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:179:4: ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:167:2: ( ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:167:4: ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) { if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||input.LA(1)==NEW||input.LA(1)==PILHA||(input.LA(1) >= RETURN && input.LA(1) <= STORE) ) { input.consume(); @@ -1490,11 +1173,11 @@ public final void nenhumoperando() throws RecognitionException { // $ANTLR start "umoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:185:1: umoperando : ^( ( DESVIO | LOAD | STORE ) . . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:173:1: umoperando : ^( ( DESVIO | LOAD | STORE ) . . ) ; public final void umoperando() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:186:9: ( ^( ( DESVIO | LOAD | STORE ) . . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:186:11: ^( ( DESVIO | LOAD | STORE ) . . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:174:9: ( ^( ( DESVIO | LOAD | STORE ) . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:174:11: ^( ( DESVIO | LOAD | STORE ) . . ) { if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { input.consume(); @@ -1538,15 +1221,15 @@ public final void umoperando() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:191:1: label : ^( LABEL id= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:179:1: label : ^( LABEL id= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST id=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:192:4: ( ^( LABEL id= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:192:6: ^( LABEL id= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:180:4: ( ^( LABEL id= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:180:6: ^( LABEL id= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label831); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label821); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; id=(BytecodesAST)input.LT(1); @@ -1582,23 +1265,21 @@ public final void label() throws RecognitionException, LabelException { protected DFA1 dfa1 = new DFA1(this); static final String DFA1_eotS = - "\22\uffff"; + "\21\uffff"; static final String DFA1_eofS = - "\22\uffff"; + "\21\uffff"; static final String DFA1_minS = - "\1\5\10\uffff\1\2\3\uffff\1\4\1\2\1\4\2\3"; + "\1\5\7\uffff\1\2\3\uffff\1\4\1\2\1\4\2\3"; static final String DFA1_maxS = - "\1\155\10\uffff\1\2\3\uffff\5\157"; + "\1\155\7\uffff\1\2\3\uffff\5\157"; static final String DFA1_acceptS = - "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\uffff\1\11\1\12\1\13"+ - "\5\uffff"; + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff\1\10\1\11\1\12\5\uffff"; static final String DFA1_specialS = - "\22\uffff}>"; + "\21\uffff}>"; static final String[] DFA1_transitionS = { - "\1\12\1\1\1\2\1\13\1\uffff\1\6\4\uffff\1\14\1\uffff\1\11\1\12"+ - "\2\uffff\1\3\1\12\2\uffff\1\5\1\12\1\uffff\1\12\1\11\6\uffff"+ - "\1\4\24\uffff\2\7\37\uffff\3\10\17\uffff\2\7", - "", + "\1\11\1\1\1\2\1\12\1\uffff\1\5\4\uffff\1\13\1\uffff\1\10\1\11"+ + "\2\uffff\1\3\1\11\3\uffff\1\11\1\uffff\1\11\1\10\6\uffff\1\4"+ + "\24\uffff\2\6\37\uffff\3\7\17\uffff\2\6", "", "", "", @@ -1606,15 +1287,15 @@ public final void label() throws RecognitionException, LabelException { "", "", "", - "\1\15", + "\1\14", "", "", "", - "\154\16", - "\1\17\1\12\154\13", - "\154\20", - "\1\21\154\20", - "\1\12\154\13" + "\154\15", + "\1\16\1\11\154\12", + "\154\17", + "\1\20\154\17", + "\1\11\154\12" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -1647,7 +1328,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "32:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | field | invoke | nenhumoperando | umoperando | label );"; + return "32:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | declaracaoVariavel | field | invoke | nenhumoperando | umoperando | label );"; } } @@ -1656,45 +1337,45 @@ public String getDescription() { public static final BitSet FOLLOW_entraNoConstrutor_in_topdown61 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_entraNoMetodo_in_topdown73 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_entraNaClasse_in_topdown85 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_parametros_in_topdown97 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_declaracaoVariavel_in_topdown109 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_field_in_topdown121 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invoke_in_topdown133 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_nenhumoperando_in_topdown145 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_umoperando_in_topdown157 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_topdown169 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoCorpoMetodo_in_bottomup186 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoMetodo_in_bottomup199 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup212 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDaClasse_in_bottomup225 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_entraNaClasse257 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse261 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse265 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel305 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel315 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor350 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor352 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor364 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor368 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo388 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo390 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo402 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo406 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_PARAMS_in_parametros426 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo454 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo480 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_saiDaClasse507 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo557 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor573 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_field595 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_58_in_field603 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_108_in_field611 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_109_in_field619 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_invoke662 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invoke677 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PARAMS_in_invoke680 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_nenhumoperando725 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_umoperando779 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label831 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_declaracaoVariavel_in_topdown106 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_field_in_topdown118 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invoke_in_topdown130 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_nenhumoperando_in_topdown142 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_umoperando_in_topdown154 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_topdown166 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoCorpoMetodo_in_bottomup183 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoMetodo_in_bottomup196 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup209 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDaClasse_in_bottomup222 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_entraNaClasse254 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse258 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse262 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel302 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel312 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor347 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor349 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_PARAMS_in_entraNoConstrutor357 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor367 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor371 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo393 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo395 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_PARAMS_in_entraNoMetodo403 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo413 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo417 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo444 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo470 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_saiDaClasse497 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo547 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor563 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_field585 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_58_in_field593 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_108_in_field601 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_109_in_field609 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_invoke652 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invoke667 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PARAMS_in_invoke670 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_nenhumoperando715 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_umoperando769 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label821 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 907ea66..f7438d7 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-26 21:32:09 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-29 22:01:23 package br.ufpb.iged.interpretador.parser; @@ -217,7 +217,7 @@ private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo assembler.getConstantPool().add(simboloClasse); SimboloMetodo simboloMetodo = - (SimboloMetodo) simboloClasse.resolverMetodo(nomeMetodo+"("+args+")"+tipoRetorno, nomeMetodo); + (SimboloMetodo) simboloClasse.resolver(nomeMetodo+"("+args+")"+tipoRetorno); if (!simboloClasse.getMethodArea().contains(simboloMetodo)) @@ -366,8 +366,7 @@ public final void topdown() throws RecognitionException { reportError(re); recover(input,re); } catch (LabelException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + System.out.println(e.getMessage()); } finally { @@ -622,194 +621,61 @@ else if ( ((LA4_0 >= ARGS && LA4_0 <= FIELD_DECL)||(LA4_0 >= INIT && LA4_0 <= 11 // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: entraNoConstrutor : ^( CONSTR_DECL INIT . ^( PARAMS . ) ( ^( LIMIT lim= INTEIRO ) )? . ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:2: ( ^( CONSTR_DECL INIT . ^( PARAMS . ) ( ^( LIMIT lim= INTEIRO ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ^( CONSTR_DECL INIT . ^( PARAMS . ) ( ^( LIMIT lim= INTEIRO ) )? . ) { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor285); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor287); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: ( . )+ - int cnt5=0; - loop5: - do { - int alt5=2; - switch ( input.LA(1) ) { - case LIMIT: - { - int LA5_1 = input.LA(2); + matchAny(input); if (state.failed) return ; - if ( (true) ) { - alt5=1; - } - else if ( (true) ) { - alt5=2; - } + match(input,PARAMS,FOLLOW_PARAMS_in_entraNoConstrutor292); if (state.failed) return ; + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; - } - break; - case ARGS: - case ARITMETICA: - case BODY: - case CONSTR_DECL: - case DESVIO: - case EXTENDS: - case FIELD_DECL: - case ID: - case INIT: - case INT: - case INTEIRO: - case LABEL: - case LOAD: - case LOGICA: - case MEMBRO_CLASSE: - case METHOD_CALL: - case METHOD_DECL: - case NEW: - case NEWLINE: - case NULL: - case PARAMS: - case PILHA: - case REF: - case RETURN: - case STORE: - case TIPO_REF: - case VOID: - case WS: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 93: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 106: - case 107: - case 108: - case 109: - case 110: - case 111: - { - alt5=1; - } - break; - case UP: - { - alt5=2; - } - break; + match(input, Token.UP, null); if (state.failed) return ; - } - switch (alt5) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: . - { - matchAny(input); if (state.failed) return ; - - } - break; - - default : - if ( cnt5 >= 1 ) break loop5; - if (state.backtracking>0) {state.failed=true; return ;} - EarlyExitException eee = - new EarlyExitException(5, input); - throw eee; - } - cnt5++; - } while (true); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:37: ( ^( LIMIT lim= INTEIRO ) )? + int alt5=2; + int LA5_0 = input.LA(1); + if ( (LA5_0==LIMIT) ) { + int LA5_1 = input.LA(2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:26: ( ^( LIMIT lim= INTEIRO ) )? - int alt6=2; - int LA6_0 = input.LA(1); + if ( (LA5_1==DOWN) ) { + int LA5_3 = input.LA(3); - if ( (LA6_0==LIMIT) ) { - alt6=1; + if ( (LA5_3==INTEIRO) ) { + int LA5_4 = input.LA(4); + + if ( (LA5_4==UP) ) { + int LA5_5 = input.LA(5); + + if ( ((LA5_5 >= ARGS && LA5_5 <= 111)) ) { + alt5=1; + } + } + } + } } - switch (alt6) { + switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:38: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor294); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor299); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor298); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor303); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -820,6 +686,8 @@ else if ( (true) ) { } + matchAny(input); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; @@ -849,196 +717,61 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:1: entraNoMetodo : ^( METHOD_DECL ID . ^( PARAMS . ) ( ^( LIMIT lim= INTEIRO ) )? . ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:2: ( ^( METHOD_DECL ID . ^( PARAMS . ) ( ^( LIMIT lim= INTEIRO ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:4: ^( METHOD_DECL ID . ^( PARAMS . ) ( ^( LIMIT lim= INTEIRO ) )? . ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo321); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo328); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo323); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo330); if (state.failed) return ; matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: ( . )+ - int cnt7=0; - loop7: - do { - int alt7=2; - switch ( input.LA(1) ) { - case LIMIT: - { - int LA7_1 = input.LA(2); + match(input,PARAMS,FOLLOW_PARAMS_in_entraNoMetodo335); if (state.failed) return ; - if ( (true) ) { - alt7=1; - } - else if ( (true) ) { - alt7=2; - } + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; - } - break; - case ARGS: - case ARITMETICA: - case BODY: - case CONSTR_DECL: - case DESVIO: - case EXTENDS: - case FIELD_DECL: - case ID: - case INIT: - case INT: - case INTEIRO: - case LABEL: - case LOAD: - case LOGICA: - case MEMBRO_CLASSE: - case METHOD_CALL: - case METHOD_DECL: - case NEW: - case NEWLINE: - case NULL: - case PARAMS: - case PILHA: - case REF: - case RETURN: - case STORE: - case TIPO_REF: - case VOID: - case WS: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 93: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 106: - case 107: - case 108: - case 109: - case 110: - case 111: - { - alt7=1; - } - break; - case UP: - { - alt7=2; - } - break; - } + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:35: ( ^( LIMIT lim= INTEIRO ) )? + int alt6=2; + int LA6_0 = input.LA(1); - switch (alt7) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: . - { - matchAny(input); if (state.failed) return ; - - } - break; - - default : - if ( cnt7 >= 1 ) break loop7; - if (state.backtracking>0) {state.failed=true; return ;} - EarlyExitException eee = - new EarlyExitException(7, input); - throw eee; - } - cnt7++; - } while (true); + if ( (LA6_0==LIMIT) ) { + int LA6_1 = input.LA(2); + if ( (LA6_1==DOWN) ) { + int LA6_3 = input.LA(3); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:26: ( ^( LIMIT lim= INTEIRO ) )? - int alt8=2; - int LA8_0 = input.LA(1); + if ( (LA6_3==INTEIRO) ) { + int LA6_4 = input.LA(4); - if ( (LA8_0==LIMIT) ) { - alt8=1; + if ( (LA6_4==UP) ) { + int LA6_5 = input.LA(5); + + if ( ((LA6_5 >= ARGS && LA6_5 <= 111)) ) { + alt6=1; + } + } + } + } } - switch (alt8) { + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:36: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo332); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo342); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo336); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo346); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1049,6 +782,8 @@ else if ( (true) ) { } + matchAny(input); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; @@ -1084,7 +819,7 @@ public final void saiDoMetodo() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( METHOD_DECL ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo356); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo368); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do metodo... "); @@ -1116,7 +851,7 @@ public final void saiDoConstrutor() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:2: ( CONSTR_DECL ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor372); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor384); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do construtor... "); @@ -1153,63 +888,63 @@ public final void field() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:10: ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:12: (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) - int alt9=4; + int alt7=4; switch ( input.LA(1) ) { case 57: { - alt9=1; + alt7=1; } break; case 58: { - alt9=2; + alt7=2; } break; case 108: { - alt9=3; + alt7=3; } break; case 109: { - alt9=4; + alt7=4; } break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 7, 0, input); throw nvae; } - switch (alt9) { + switch (alt7) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:13: op= 'getfield' { - op=(BytecodesAST)match(input,57,FOLLOW_57_in_field393); if (state.failed) return ; + op=(BytecodesAST)match(input,57,FOLLOW_57_in_field405); if (state.failed) return ; } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:31: op= 'getstatic' { - op=(BytecodesAST)match(input,58,FOLLOW_58_in_field401); if (state.failed) return ; + op=(BytecodesAST)match(input,58,FOLLOW_58_in_field413); if (state.failed) return ; } break; case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:50: op= 'putfield' { - op=(BytecodesAST)match(input,108,FOLLOW_108_in_field409); if (state.failed) return ; + op=(BytecodesAST)match(input,108,FOLLOW_108_in_field421); if (state.failed) return ; } break; case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:68: op= 'putstatic' { - op=(BytecodesAST)match(input,109,FOLLOW_109_in_field417); if (state.failed) return ; + op=(BytecodesAST)match(input,109,FOLLOW_109_in_field429); if (state.failed) return ; } break; @@ -1276,51 +1011,51 @@ public final void invoke() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:12: ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:14: (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) - int alt10=3; + int alt8=3; switch ( input.LA(1) ) { case 90: { - alt10=1; + alt8=1; } break; case 91: { - alt10=2; + alt8=2; } break; case 92: { - alt10=3; + alt8=3; } break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 10, 0, input); + new NoViableAltException("", 8, 0, input); throw nvae; } - switch (alt10) { + switch (alt8) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:15: op= 'invokespecial' { - op=(BytecodesAST)match(input,90,FOLLOW_90_in_invoke474); if (state.failed) return ; + op=(BytecodesAST)match(input,90,FOLLOW_90_in_invoke486); if (state.failed) return ; } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:38: op= 'invokestatic' { - op=(BytecodesAST)match(input,91,FOLLOW_91_in_invoke482); if (state.failed) return ; + op=(BytecodesAST)match(input,91,FOLLOW_91_in_invoke494); if (state.failed) return ; } break; case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:60: op= 'invokevirtual' { - op=(BytecodesAST)match(input,92,FOLLOW_92_in_invoke490); if (state.failed) return ; + op=(BytecodesAST)match(input,92,FOLLOW_92_in_invoke502); if (state.failed) return ; } break; @@ -1333,10 +1068,10 @@ public final void invoke() throws RecognitionException { matchAny(input); if (state.failed) return ; - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke500); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke512); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - match(input,PARAMS,FOLLOW_PARAMS_in_invoke503); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_invoke515); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; a=(BytecodesAST)input.LT(1); @@ -1401,7 +1136,7 @@ public final void novaClasse() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:3: ( ^( NEW classe= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:5: ^( NEW classe= . ) { - match(input,NEW,FOLLOW_NEW_in_novaClasse552); if (state.failed) return ; + match(input,NEW,FOLLOW_NEW_in_novaClasse564); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1625,25 +1360,27 @@ public String getDescription() { public static final BitSet FOLLOW_ID_in_declaracaoVariavel250 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor285 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_INIT_in_entraNoConstrutor287 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor294 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor298 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo321 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo323 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo332 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo336 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo356 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor372 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_field393 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_58_in_field401 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_108_in_field409 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_109_in_field417 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_90_in_invoke474 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_91_in_invoke482 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_92_in_invoke490 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invoke500 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PARAMS_in_invoke503 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_NEW_in_novaClasse552 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_nenhumoperando579 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_umoperando633 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PARAMS_in_entraNoConstrutor292 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor299 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor303 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo328 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo330 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_PARAMS_in_entraNoMetodo335 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo342 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo346 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo368 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor384 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_field405 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_58_in_field413 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_108_in_field421 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_109_in_field429 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_90_in_invoke486 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_91_in_invoke494 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_92_in_invoke502 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invoke512 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PARAMS_in_invoke515 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_NEW_in_novaClasse564 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_nenhumoperando591 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_umoperando645 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java index 4feedbf..305f997 100644 --- a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java +++ b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java @@ -46,7 +46,7 @@ public static SimboloClasse carregarClasseMain() throws ClassNotFoundException{ for(SimboloClasse classe: classes){ - if (classe.possuiMetodo(METODO_MAIN, "main")){ + if (classe.possuiMetodo(METODO_MAIN)){ classe.alocarMemoriaVariaveis(null, true); return classe; } diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index b21c3e5..88d375f 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -102,7 +102,7 @@ public static void main(String[] args) { public static void executarMain() throws ClassNotFoundException { SimboloClasse principal = ClassLoader.carregarClasseMain(); - SimboloMetodo main = (SimboloMetodo) principal.resolver("main"); + SimboloMetodo main = (SimboloMetodo) principal.resolver("main(VOID)V"); vm.iniciarNovoMetodo(main, true); vm.cpu(); diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java index 36e3208..08de540 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesAST.java @@ -5,9 +5,9 @@ public class BytecodesAST extends CommonTree { - public Escopo escopo; // set by Def.g; ID lives in which scope? + public Escopo escopo; - public Simbolo simbolo; // set by Ref.g; point at def in symbol table + public Simbolo simbolo; public BytecodesAST(Token t) { super(t); diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.java b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.java index 277e948..824ad11 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/BytecodesErrorNode.java @@ -8,6 +8,6 @@ public class BytecodesErrorNode extends BytecodesAST { public BytecodesErrorNode(TokenStream input, Token start, Token stop, RecognitionException e) { - super(start); // no need to record anything for this example + super(start); } } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/Escopo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/Escopo.java index a5265df..3c131bb 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/Escopo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/Escopo.java @@ -4,15 +4,12 @@ public interface Escopo { public String obterNomeEscopo(); - /** Where to look next for symbols; superclass or enclosing scope */ public Escopo obterEscopoPai(); - /** Scope in which this scope defined. For global scope, it's null */ + public Escopo obterEscopoEnvolvente(); - /** Define a symbol in the current scope */ public void definir(Simbolo simbolo); - /** Look up name in this scope or in parent scope if not here */ public Simbolo resolver(String name); } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java index f8a0f0f..1b80b03 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/EscopoBase.java @@ -5,7 +5,7 @@ public abstract class EscopoBase implements Escopo { - private Escopo escopoEnvolvente; // null if global (outermost) scope + private Escopo escopoEnvolvente; public Map simbolos = new LinkedHashMap(); @@ -16,9 +16,8 @@ public Simbolo resolver(String nome) { Simbolo s = simbolos.get(nome); if ( s!=null ) return s; - // if not here, check any enclosing scope if ( obterEscopoPai() != null ) return obterEscopoPai().resolver(nome); - return null; // not found + return null; } @@ -26,7 +25,7 @@ public void definir(Simbolo simbolo) { simbolos.put(simbolo.nome, simbolo); - simbolo.escopo = this; // track the scope in each symbol + simbolo.escopo = this; } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java index f9469b2..74b0155 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/Simbolo.java @@ -30,7 +30,7 @@ public String toString() { return s+getNome(); } - public static String stripBrackets(String s) { + public static String eliminarParenteses(String s) { return s.substring(1,s.length()-1); } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java index 0479f0d..395ab61 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.java @@ -6,12 +6,9 @@ import br.ufpb.iged.interpretador.principal.Referencia; public class SimboloClasse extends SimboloComEscopo implements Tipo { - /** This is the superclass not escopoEnvolvente field. We still record - * the enclosing Escopo so we can push in and pop out of class defs. - */ + public SimboloClasse superClasse; - /** List of all fields and methods */ public Map membros=new LinkedHashMap(); protected List constantPool = new ArrayList (); @@ -34,47 +31,29 @@ public SimboloClasse(String nome, Escopo escopoEnvolvente, SimboloClasse superCl public Escopo obterEscopoPai() { - if ( superClasse==null ) return escopoEnvolvente; // globals + if ( superClasse==null ) return escopoEnvolvente; - return superClasse; // if not root object, return super + return superClasse; } - /** For a.b, only look in a's class hierarchy to resolve b, not globals */ public Simbolo resolverMembro(String nome) { Simbolo s = membros.get(nome); if ( s!=null ) return s; - // if not here, check just the superclass chain + if ( superClasse != null ) { return superClasse.resolverMembro(nome); } - return null; // not found + return null; } - public SimboloMetodo resolverMetodo(String assinatura, String nome) { - - Simbolo s = membros.get(nome); - - if (s == null) - return null; - - if (s.toString().equals(assinatura)) - return (SimboloMetodo)s; - - // if not here, check just the superclass chain - if ( superClasse != null ) { - return superClasse.resolverMetodo(assinatura, nome); - } - return null; // not found - - } - public boolean possuiMetodo(String assinatura, String nome) { + public boolean possuiMetodo(String assinatura) { - SimboloMetodo metodo = resolverMetodo(assinatura, nome); + Simbolo metodo = (SimboloMetodo)resolver(assinatura); if (metodo != null) return true; @@ -240,12 +219,11 @@ public Map obterMembros() { public String toString() { return "class "+nome+":{"+ - stripBrackets(membros.keySet().toString())+"}"; + eliminarParenteses(membros.keySet().toString())+"}"; } @Override public String obterNome() { - // TODO Auto-generated method stub return nome; } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.java index 632a8f3..b13a5a3 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloComEscopo.java @@ -38,7 +38,7 @@ public void definir(Simbolo simbolo) { obterMembros().put(simbolo.nome, simbolo); - simbolo.escopo = this; // track the Escopo in each Simbolo + simbolo.escopo = this; } @@ -60,9 +60,6 @@ public String obterNomeEscopo() { } - /** Indicate how subclasses store Escopo members. Allows us to - * factor out common code in this class. - */ public abstract Map obterMembros(); } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java index 0b13355..dd48da0 100755 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java @@ -1,12 +1,3 @@ -/*** - * Excerpted from "Language Implementation Patterns", - * published by The Pragmatic Bookshelf. - * Copyrights apply to this code. It may not be used to create training material, - * courses, books, articles, and the like. Contact us if you are in doubt. - * We make no guarantees that this code is fit for any purpose. - * Visit http://www.pragmaticprogrammer.com/titles/tpdsl for more book information. - ***/ - package br.ufpb.iged.interpretador.symboltable.classes; import java.util.*; @@ -16,16 +7,12 @@ public class SimboloLabel { String name; - /** Address in code memory */ public int endereco; - /** Is this ref'd before def'd. */ boolean isForwardRef = false; - /** Set when we see actual ID: definition */ boolean isDefined = true; - /** List of operands in memory we need to update after seeing def */ Vector forwardReferences = null; public SimboloLabel(String name) { @@ -57,14 +44,12 @@ public void addForwardReference(int address) { public void resolveForwardReferences(byte[] code) { isForwardRef = false; - // need to patch up all references to this symbol + Vector opndsToPatch = forwardReferences; for (int addrToPatch : opndsToPatch) { - /* - * System.out.println("updating operand at addr "+ - * addr+" to be "+getAddress()); - */ + BytecodeAssembler.escreverInteiro(code, addrToPatch, endereco); + } } diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index 5e960a7..8bd3d34 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -33,7 +33,7 @@ public Map obterMembros() { } public String obterNome() { - return nome+"("+stripBrackets(parametros.keySet().toString())+")"; + return nome; } public int obterTamanhoCodigo() { @@ -120,7 +120,7 @@ public void setLabels(Map labels) { } public String toString() { - return obterNome()+getRetorno(); + return obterNome(); } //para testes diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.java index 5030b72..d0401a0 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloTipoPrimitvo.java @@ -10,7 +10,6 @@ public SimboloTipoPrimitvo(String nome) { @Override public String obterNome() { - // TODO Auto-generated method stub return nome; } diff --git a/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java b/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java deleted file mode 100644 index e201cb4..0000000 --- a/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package br.ufpb.iged.interpretador.testes; - -import java.io.IOException; - -import org.antlr.runtime.RecognitionException; -import org.junit.Before; -import org.junit.Test; - -import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; -import br.ufpb.iged.interpretador.excecoes.ClassNotFoundException; -import br.ufpb.iged.interpretador.excecoes.LabelException; -import br.ufpb.iged.interpretador.principal.ClassLoader; -import br.ufpb.iged.interpretador.principal.Interpretador; -import br.ufpb.iged.interpretador.principal.MaquinaVirtual; -import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; -import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; - -public class InstrucaoTest { - - private MaquinaVirtual vm; - - @Before - public void setUp() { - - try { - - Interpretador.carregar(); - - Interpretador.setVm(new MaquinaVirtual()); - - vm = Interpretador.getVm(); - - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (RecognitionException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (LabelException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (AcessoIndevidoMemoriaException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - @Test - public void testarMetodoMain() throws ClassNotFoundException { - - SimboloClasse principal = ClassLoader.carregarClasseMain(); - - SimboloMetodo main = (SimboloMetodo) principal.resolver("main"); - - vm.iniciarNovoMetodo(main, true); - - vm.executarInstrucao(); - - //executar instruçőes - - vm.setTopoPilha(vm.getTopoPilha() - 1); - - } - - @Test - public void teste() throws ClassNotFoundException { - - vm.executarInstrucao(); - - } - - - -} From 43d4277a8ba921cf03eada2201c5528cf9317bee Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Wed, 6 Feb 2013 19:15:52 -0300 Subject: [PATCH 78/79] commit --- .classpath | 2 +- .../asm/BytecodeAssembler.class | Bin 6893 -> 6893 bytes .../bytecodeassembler/asm/Definicao.class | Bin 5090 -> 5090 bytes .../excecoes/ClassNotFoundException.class | Bin 0 -> 591 bytes .../parser/AssemblerLexer$DFA10.class | Bin 0 -> 1970 bytes .../parser/AssemblerLexer$DFA4.class | Bin 0 -> 1259 bytes .../interpretador/parser/AssemblerLexer.class | Bin 37183 -> 37219 bytes .../AssemblerParser$limite_return.class | Bin 0 -> 674 bytes ...mblerParser$parametrosRetorno_return.class | Bin 0 -> 707 bytes .../AssemblerParser$parametros_return.class | Bin 0 -> 686 bytes .../AssemblerParser$retorno_return.class | Bin 0 -> 677 bytes .../parser/AssemblerParser.class | Bin 76475 -> 76655 bytes .../iged/interpretador/parser/Def$DFA1.class | Bin 0 -> 1326 bytes .../Def$declaracaoVariavel_return.class | Bin 0 -> 482 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 27249 -> 27311 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 27850 -> 27908 bytes .../interpretador/principal/ClassLoader.class | Bin 0 -> 2633 bytes .../principal/Interpretador.class | Bin 6967 -> 7059 bytes .../principal/MaquinaVirtual.class | Bin 0 -> 13327 bytes .../principal/ProgramCounter.class | Bin 0 -> 1840 bytes .../interpretador/principal/StackFrame.class | Bin 0 -> 1029 bytes .../symboltable/classes/SimboloClasse.class | Bin 7516 -> 7516 bytes .../symboltable/classes/SimboloLabel.class | Bin 0 -> 2377 bytes .../symboltable/classes/SimboloMetodo.class | Bin 0 -> 4997 bytes .../parser/IntermediarioLexer.class | Bin 8941 -> 9089 bytes .../parser/IntermediarioParser.class | Bin 7079 -> 7059 bytes .../intermediario/principal/Main.class | Bin 2114 -> 2114 bytes .../principal/TradutorIntermediario.class | Bin 4310 -> 4316 bytes .../interpretador/principal/ClassLoader.java | 6 +++--- .../principal/Interpretador.java | 2 +- .../principal/MaquinaVirtual.java | 16 ++++++++++++++++ .../principal/ProgramCounter.java | 4 ++++ 32 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 bin/br/ufpb/iged/interpretador/excecoes/ClassNotFoundException.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA10.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA4.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$limite_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$parametrosRetorno_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$parametros_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$retorno_return.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/Def$DFA1.class create mode 100644 bin/br/ufpb/iged/interpretador/parser/Def$declaracaoVariavel_return.class create mode 100644 bin/br/ufpb/iged/interpretador/principal/ClassLoader.class create mode 100644 bin/br/ufpb/iged/interpretador/principal/MaquinaVirtual.class create mode 100644 bin/br/ufpb/iged/interpretador/principal/ProgramCounter.class create mode 100644 bin/br/ufpb/iged/interpretador/principal/StackFrame.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.class create mode 100644 bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.class diff --git a/.classpath b/.classpath index 86287dc..3e9bcf9 100755 --- a/.classpath +++ b/.classpath @@ -2,7 +2,7 @@ - + diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.class index b46f237ce391c0685d00f923a36cb8acd3aa1b55..55e2ddbf648720bfd9d047a7e3151974cf353ce5 100644 GIT binary patch delta 21 dcmaEB`qp&AZGJ}O&3E`&m>3l|KNRHQ1OQ{#2ZI0r delta 21 dcmaEB`qp&AZGJ}K&3E`&m>5+yKNRHQ1OQ_h2X+7e diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 73330b5c52e8999226f1c3db753f11f8881c30d4..3a716530bc58a4ec009ef275280ff20a95041dd4 100644 GIT binary patch delta 13 UcmaE){z!d8lQ84<$<4y?04q-gm;e9( delta 13 UcmaE){z!d8lQ1LeqQhCfO~KP zDkKUTIxfLY5VIkIf>ab9d&Y0Rd9vR>UtR(1qv{~Ra5yk-bTuBhawvRPDl5#`2+MtK zTyf_KPm9oP1w0J9+O~D1{1d8!BoF$+ge1H;J!W8M z4EdH;q2j8Icgvoma#&6j3`YJN2H9ksh!;!gaVB(O$e25)s#Sb ORIo}6hBfL=VEqe$_lZ~l literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA10.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA10.class new file mode 100644 index 0000000000000000000000000000000000000000..637275a4a45f410063dcb433d901f7d586b98294 GIT binary patch literal 1970 zcmb8w+j84P7zgnG+G$+7TQ#IMfw06auFABKnM^jqsorX4Pr+~}{}{r0ELMr-}__=g_>EMcdBoPc|n zm?sYghi24OM`jeKDj6gy4UhVXIS7-XO3bz4P#qukRMJupRWi4+xn^4hObA@-CtWj) z(_UgGCvh4bE0YEVCeu%&;hZI~*gCJiLbLBgag?qK?9ZQndh5SSx*HDFj_UNgarC81 zR;qgf6YKpWRfNDLi3^x4A&<)v1sDSP`Rbk?nUZ)8(*mXBY^uQQ|MPn8jKnou7ch=g zCmKfmc6L!xPg}hisSu1Q2kUOcYjwu?-hwx^-!KV^#fj$ zn0==7fv%d9c!R5`UB+7y^QfMI$5E`obzOQ>;+7uDQ>QLnkT9Pv4Ik<%TVgS*((N+p z5{`a=%vKn7I%+`c5%45@JurFNRmQT!itf6c)eZ-=Q(;dRzb&z$C8S(CmeA*W68$DDJLY#783c$X>RWEA9U0Djrsr zEAy51!NJl}<*RYlIUP=y)8q6xgDmS7r_H&@$zGkkI(v2Y>g?6otFz~@=dkCn=dkCn z=dkCn=dkCn=dkCp=d$Or=d$Or=d$Or=d$Or=d$Oq=dtIp=dtIp=dtIp=dtIp=dtIr z=d#vPM)r3rRXPi$-Tq0^QJaxIZ&#oFcr55MLB9~qI9ADeFQhLE9lQ(UV~q-( z{ycq}#MG4jRi?Wf^%QWCu0?8nO>I5CS-UwxsrEf&?bZlaYEz{VuGYT8^CP@WQ5oTN ziZ@57QQRKEqF5Tir3gm2L-EcC>)($3O}Z}N5@0++(fApL@e5{*Uvb0u4YS7Ys2YF3 zGX8{T{DoEHZ#0a5@E*;%PHUl+;C(bH^&NdJ#_Rn6AM$!{Qwkc(Pq)6I$WamK&!R5l Y-!USyVMcP;8dq)O9%X4fxr~p2C!1mK0RR91 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA4.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA4.class new file mode 100644 index 0000000000000000000000000000000000000000..ff3c533210d52ebd53148b5a86ed0f1c06cdee21 GIT binary patch literal 1259 zcmb7D*-{fh6g{29goGB5&4}BGC|Q8PuqXrdl=-NjIyaqMMd0 zWJ3zqsMu0(7}60^Uv?Z(FV%!Bid`Yc@@vbp5ri0qY+2O}%dJUWHZ9kz3!QQdVfTsY zj7>9Sik*sQsd~w@O!peYqeSQB#eXfW7>?KwWxHybFNDk{w-`b>yCR}s=;kO$a?I6bxh8cP)qHH>*ZLK%!B_SDDA&NLgA~?Y? z-Dzt$PT~|pmumlGVY>{0?M-#v8IH3m6QrQhKgTh8n7N}!V;mRSBs#}2&XGWJU#@Oi zN-n3EX^sh%2~toor#SROOk-D(E^%a9Bz2BsmSaxIcl+*)a#=LU3&UlOD=Hq|55=*_ zkyRn?Q=JC&$fzmqRgP;a5jlv(af4$SD-69p*_DRnm@ajc>}|KcKF_hL7_r02-lA!V zR@WaIG`S4@MZ0X&whU>ib2}JPgGwelo-=<3XjXfw!p#e(EX_vC)nFo7d}=&5^qOH+ z^-WirRyEs&yEHqAWLm4)cB5pJpK11vmdVU6E-Y#Zt&rEo^>HnkrjOXPo3bp{Ol5iC z@4cH+y41FUWeJ(98MKt-J){}~joKHarDlD7YM|*YK#>T#=ozKcOFFCkYAWp^mii8! zn()w@ig*}EeZz4NrwKF<=Ls%)ND)kWm?oI_ z_!|uHw;18?Xae6O!9PIfA2H8A(VzW{JpY25R5MIg$OvwsK&akm&wRVLai?u}l8{j@ j*kAlg5P-TYtU`Rx7vZgRTO@#WpLGxS31fb791nm$xkD$) literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index 9e4c0064db3ad110e7162c8ff7671a6e4e68d492..1b2e10764773b838c3f62c9aaee4a6bb5ca7469b 100644 GIT binary patch delta 216 zcmV;}04M*yq5|Wh0lktH~2apJn0G9}olTCug0s;M# z6@%N8?tumwz5oLVzW@aY!~h2f#{dcl$N&}y$^ab*%d-=N8UX=Hvo3{+0TWUH6aWAT z9RLFf9smUiA^=bcBa_aCDYN^A>Hz`eljewb6D|M?000S&00Rk+00jw?05S=bvvi5? E2Z%^NvH$=8 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$limite_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$limite_return.class new file mode 100644 index 0000000000000000000000000000000000000000..d2c8ddc819f2e64aa938520b61bd9052a30e29c8 GIT binary patch literal 674 zcma)3-)j>=5dJoaxh7s3t$M z*^I30Wf>(wO!m6;k7Au@N8cEgTjQZ7aGcsmD&t}+ZEl=SNG`F%Jf>lZ8-?kd1ZvI_ ztMkE@vDqRC(%2~;DZ^Ot^h|zUI11A#Wxdh(RG@yQjdmXeswdqEckOeki7KA@@USD$ z9%w^f@+2TTF8T=U4bo7>6J>Sb{}0yOcby6Jwy}B45txw|ksFu0bxyj2nfjq*tV|@Y zf*FPGv;lz^KAxa1&>W??4e3G`ygF;weOHtU_?O0z?Ju|Ya3Ju0%f&Wx6lkq{72Yt3 zD*wIU$4ppO*ye+=Y_KO;m$|n;(Y!CyKFfL$^ls2%+g}2(i#B@#&+we(YVia1?$(OG WZYZvxQ=(qt73(Iq5!lCTH2wji?W`gI literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$parametrosRetorno_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$parametrosRetorno_return.class new file mode 100644 index 0000000000000000000000000000000000000000..c60d16f56476ff5196ac380b8434d4dce00abfad GIT binary patch literal 707 zcmb7CU279T6g`uqS(9#Cn?`N>CJ1ePa43DO3N;`oi%JvvT4p!5amwyYxI0_uzfuqc zAN&FRQR3Z=FP0eaVeXy#aqgTsGk3p!`~+}<{Rl0E_bKb@YMyF4qp7wo5YL%{nR?c9 z!zHmkD@!WUocL1{Ka;d6D6lWjDR_4NQUDdZ2pxq3&ogaY$XRpcf-OidVCPj%(l34E z%+E=o6PU!kN>(r^Z;RCD!N}=4%Z(5z^_$y3nV(X5HlCa+bYEI$!)t~1;n9Um9Z9K= zHr8WAc%ZPASVteKA|;;Ga})-N&rE({*w*o%WG8&Kr9!fb&42142o9U0~HD%$n2Zfy&Yv?NU$G+l>-rAbt@Sf%`YN$f|&N<@ILWl^v3dbwNTTWMD z_g@c)r^2T#pF_zKQes=O7a7I&B+}xW+Vk(|e{IUK*lwL1tYJg;@uC5n*pf)$A-2W- d4gQ9~mwVu73Alw})Ab0C#rI{5!V~PF_Zz~TxuO67 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$parametros_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$parametros_return.class new file mode 100644 index 0000000000000000000000000000000000000000..0b0e3d2d4893f62df0552269f6b21257a0846d5e GIT binary patch literal 686 zcma)4-%A@o5dJnvb0$51M{WC75HvoxNFTL=4Hbl7iwVA#y~`L^?)JjmUcvuLrBLWY z|A78c;@qV#{vi0UGdnZi%zpdr{=5J47r-Zc2vAe#MXZa9Nu=$VM%p@0JYn)?l(C)| z&WZI=o>Lkn#NVrUQ_?0S&sqLMkOjK{4TY_Y$J#ibu;#*fo06X5&x(Z3D%>E>CZy2t zOyWNGXB?ehr%{%8Bgg7EF~T6%U#>mH*@*I^!Ej%pd0?IOhYI!W?zv3uNvVxG-i8P; zr?A+!j!ug-A|94=6ju6KY?5=swv7KL8~)Pf3SVcjd94t_Dj1U=R`=^{cl%f7r_qUV zWBo049{)LsB YC(U;+G}q9nP-|Eh-oc7A>{^Uds^zrTJ1IKobZn!@LVb@6SUXgj8nwk{CQnSvR4)^o!- zu|COjnk5Pj3UIenk1nV0f(1{9v68pA_nQ``6O-Oi~@xu^J;nOJTil z9bFW&gm_r?QRw!4YO-s?w)Fo88)0H|h0|qho^=JG6pbkitL1uo`~9i;ZgghcSYIYn zO2cs*3a?_UpsCOq_<~b9wqmH_@P5h3o+hcV_VBZ?D=g~r z{Ysut5m^&kPA0M~o)%r@4(`$US*2r<%`(`U;Dy-n0)REFi>L4s8zLVT-=X{CQStPN U;u?AtY7?(TcchKN7Pis;2Pk{3+yDRo literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser.class index 5e400c0788e0ec7fb0c98703403b9b40dc6969cd..234c77a5c308aabaf0ed5d041af18625783b833d 100644 GIT binary patch delta 909 zcmXxg|4&tQ9LMqZ>+?S6-org|58l2^bgpq#&=m?OEH-7jzD!yTo!Qb_?NVT|fV_O! z*nn_C;Jx11{0KK9*p*GMePK$U^k_)mVY`@DvgIaQq>Fx05h${?igjA+4|wkN+GF^8 zZT6~m`lTw2sF$l2Ej~+ws;v2Ap;jJvM&PchJ?ICQ(lXi8TFgnhDQ~pCivy~;?K=2N z%8`NgY-=Z$(bGt$=dhe!zzW&bUde}1D$!A9mTR44kel+bSMKlV!8K(bIto5P>*PQv z+j<<`RE(&Ty-fl1$g829ycL&ZW;lU7H5U$nL*$oDk^NjCveZmuI}ld|okuk1X{EX- z`@lt9qxN+j0`{u;?%m8mdR`U3vj+@qvpUv0BCuP%*uO;ZIOWNz*fy(83sQ$xL!DYJ z9ntFK*;s(jX~XLNWA6ct>hpmNlatt}rUz57Dx_y2qOZkKeH~)@gNW-7;e9l^T?o+GtWqt*reIDe*};4wYU3H_v+I8_O&$<^v^akaVIU2nQWu6Fh4P$Bq|`!Ut{ zQCOIJTwcef2rVg3Dc_k4ufx6Rs|N5}v`U`-x{lYlV`}wiIjV%byqbFs4qR@KH zeVMA=6V&AXmRj6bWL+X)RU4@Y8eTLQ78;E-`9mVWG2>aeW&EJ|glns_<;qWzgPb&eQstLxfDSb|F`vSI7%Dm0!&aH+rtymBmQn4wZ3I0tvT7>8 zeP+H&PW1v!s^Yrv3PGysPA0gV(q(iue?`dLM-lT?>NP8<-+Y}uG;3(Ytfebvz5H>u zAJeLN?mp&BDpuXUrh>m%vPBInd-iEd6C{wLx27Zo=y#`uD=HbHl29{alyaP z=ID&THQwc2YmYKUff75cV+V5)mDp1T)`0)=F51F_TfmTg$HaEQlT;8b^ukfIa;VzM zrFtum8mx`c1_z55tX6y8i}Q|&{XrW3Ly1oK;HacocH=#8SkBpV_u>!T@jq#5JTfnvU# R=0 z3bpcvf{Q})e4-GJ*t$&tl;3law&6Z6=&D11b5b66-ed%^+SZbPI0QL zA=&V0JE&6Isd^hSIpz3iAf5XfBTdfSzcp(DvY=b|i; z%nA3qfEfPsz$@e}idWvpE&S~9c3?Np>;4)fhePMtuZ~G$qwAw{i|do>eQo>R)BuIt z+aufpKl$C~iT~c@>6;!>VP;dUnM3vFRyt$upljw%wWhBgJv`VKCZ(6=^YH$m;Hd9U zfi@oaF;kZVRKU}JzXgvOJR=a_b{|bbex^BrJc*Z9nua^T0xR5sB~s3&MOID_CcsiI zd;m^b1w$}j$VZeA=yJoBd#2JZ&$K|W2l>`P4=&q2DD zE@P?8Dj$UiVKtA&C1K}l$NtZYy>>oh9JWE|Kdt8RXcQU^(A>b{D5M%khQ(6du(&`| L6soPHXvE3C8h-iq diff --git a/bin/br/ufpb/iged/interpretador/parser/Def$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Def$DFA1.class new file mode 100644 index 0000000000000000000000000000000000000000..5544b24681dec72dc36194eddfccc3619404060e GIT binary patch literal 1326 zcma)6*-{fh6g{0}2!s|8x41_|Ny0K9uHc4=C>n9W;>8E6lQgk)=$`7Cpk?_pKKZIv zO-kzYMKFCX-x#ym{^zH8X_WjFO0CRYpM~0!=w0?IzZ2GDr+rHAVw4s%; zXdCN?!bZ~ib-6xPUs{~aBge4M*p4rB99Z9Wb*wg|PdP4W*EjBJIc5~Ay<@E z@im4aR%at|f8R6KC zQHFy370Ph(|LI-qUXFd(&oI=MEfp!FSGpTbX&Kn^0E#%2$3ceEI~oGVVH{!Tchh|) zP0Wyay6S2i<2dd-St4E16C5YEE7zT9jN|l{i0mT9Im)Q~Ot+!5OILHs364qU$r9<5 z(;WUbrFiW`vm9r8B4-zIj^n&bKbUqWS}hq;FANtsE;+vMCso8e$AY7HDvd%Kj0l|e zD#tbF$p7MsxWTcAn+(ILIJQDZDyA_~dry12uXEgTio$m1a6@U?8}$>>3?##7!?Z-O zCaiMy7MXMRkYRFXH!8i?bQOm>GOo+0WmVW~WpBCCcp)~09|+y?S7WPmXQ3bW8Q#yG zou8dA#U^Zkt9Fes6bfJ z5+>c%rVNN&S2Ac5D!pl5I+d3Cd3VEvl17)7`ojoBlfo*rslux1+Ll~WZdm>Fil^O< z=#-YVmbO=vMwN5tfD)Znmi`NDWW+rh`pOWKM?b9tWW6KX`EOMx5)`VR!K;%AhO4;* zd#aysAi+_BQi4+iXA)EirV`8$%q6%$a5=#hg6j!tAJgmzu0z)4G7Gg`QLL>ih%=_b#3}2{a89gmX?Yw| zlo&RVNf(B#*--K*S0y_SErnsqD{Wknu;$Vgc1^lqB0U$FmI+Pk(^-^eq|mvv&K6e+ z&C|1mLTjAHeuo;?4$P$oydWz literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index b029c4986c5d832fa867e79096b5b8d78aa67cc6..bdbb0fcf45b2deaf22f7421c184d34f584c8c1fd 100644 GIT binary patch delta 648 zcmXxgUq};R5CHJI?>;bl(A=suHO0SCD$DjS$Rra_SgSA_vagb^mi zE_f(*LqwQ)-CIXrMFki60%+l|ubK3byzYylQB5`;Bw7J0$C{Vuj+j$JEk_Uo>eY$z zfBpE$C7LF)nm;v!xWGlN-KklS1V9!rQz=-<&W~D~@FV|dy=E$eWIgfdNdx4Q7hL26 z54G@cTSBb1ZHZnj`m{K&#RV+}xZ9r)Z~R+gT#MUUOlT3-g1NpuAtLQt;<*-4EoQZt z(_)cJJDPAq-RM9;Hz9||0{s-0nH&#{;{!E(_B)z-Azi=q5M)U!?2|UININ*CgNHjS zC?HRBtg{C{sN$|_G`Yc`=|u?1e(0B%U{DUgb$OXbgE_P*$M{+B94@Hj?m{$q!KmpJ tl*kA; delta 587 zcmY+?K}ge490&04@4bf;g6TFY%WP|9Qeo=aGAt(+Gt=6CX^F8-Ypl73g{wXOtY2s#vXEvO*y5Oj*r-iRIg9UhP0=l6c_`|%!spr7yQNu-gU z>HUqCO*SE{?*#p%Y|W_9A6r%ln$*8qH%aoaCsa%KIUI6VdSU;AcJi87TR6On5Fi@} z#3La$Mf7y&2hl|y+g;sTCF@XXXb3{q%LWMYz%I+B10*H@xC_m;kuu?QR{h`2Cg$vL zh%e-a5HC%!GLPmcU@m?w+6RSvh>e`>Xy&IKG41T!MYLS^?A;;c6l(ZJI8b(0I58?* z7#B-1DVFi)@E+c59VQ=-Tiw$88~oMEQJKCLsh9E%eEh0AuSX6v5ykb3gDwAZ3%z;$ z{LnDbEC-?kOID%;FjK9N4V;U1(OX`Ko_Bf8l#rb!yASJR7(r?AM696SV@1sv9W;8} z=m|a-FX+2?Q7;?4Vsy;tRZjI4G~ZX$8KXI)kBrW;)!#+m^zD8U@&Y`3??{#_6PM_^ zzMGgQR{|AgMLw)nTTr9?s8a!ckZk4oWSU;TEm}G w37XN{2iB9T4GvQ>g<5qJTh%QD)ij?@SMzi_NuykHY|(rdJC|lQa3FK$FM1%CRR910 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.class b/bin/br/ufpb/iged/interpretador/parser/Ref.class index 7f8f5127c72dc24b133397e171bc80fd6a6aa217..c94a38bca9ed2a2e9fc4d1ee8047325a24e170ea 100644 GIT binary patch delta 595 zcmXwzOGwml5XZmsn_r?U8|EWlmFt#~$|4!MYFH|jx~pvLf~mW{%FMR4pt@B=Za&gF z$lyVGk<}$6q91mMFrh;s_CADymjq88LW0N)`WrT<;WOWv&&d{TSB$wZOLj3 zJ5gh1_dCdZuha=15(2PGGJfD0dlU_ z3Y=9^@5!Qj(&PEMJ#5WEy-?P^o%)bO{Yaq!q|qR@(KR?|NWxw>O~|-6XYT{J}7Fp+GkH%K1LcNu{qN z-mPL)nX;*qD#1MTxru(5g~N-)LvYF~e{O0>6`@TPqf5DQR+ZwiD#I03F2DUnJfPa8 zAW%;(xfCem6=ciPKpth7g}{X3aqN=o4L3MJO-tI5WedkQuH)y;7G{SW3NBk;l!l_5 z2b;VMrLd1HPOp5~CfOKxe4sL>ro3W3B@Nv6LxA;k$q}B_HA0uBz+Q(S) zyvgk#B8SO8dW?Ang)(w{l3(bcIoOp>f4CuJ2%q($O!V=<*`z}MIjDrY?Nw!Pl&tcaY^Bydo!*lrNlkbyf=rg_kL{H0M>QHaO zi#F*;yDA^pLWb=dHmDzMH8!%;pTl#4&hu=0fChPO)Z_QUv4}(DTb?BdP!&iox%EVq z%-B&QFYv`|Esb#|I_u8B1<*AJD#Ae})Y5gh=ms{^P0pGjddv^ZhE?OTgq6C*ff1fI zJuWw@e``i|r?bxI`+tO&OgD`wckGLh&#;Ss9ox_Q;=M8=>}ot7BC4pb$LC01frqCO zJJ$4wX7q~?21E-6MTA#ad$`q#(QdwFHA(LRc+zU5I`!R}5ONgT`EGKUcb=Tr(WcIS zQMqfF)2Vs-!13;4y&u(pY{q&S#x~i4fQ+D3?&Y7|2`$>v%Oa^orxvHQ=+Yv^GwB3D z1y5fV@(~*ON$;J9u`@&)RY#^z$`=T-I`>=^`t{pKxRm`Uo3NUDa$X+F_0f!~z@tzZf J02d2a{{otAkL>^e diff --git a/bin/br/ufpb/iged/interpretador/principal/ClassLoader.class b/bin/br/ufpb/iged/interpretador/principal/ClassLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..252444dae0f54517e610c3c15ace9fcefa15405d GIT binary patch literal 2633 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 JE@wYK9|98w_3Hot delta 2150 zcmZWq33yXQ5dJsEd&%p|(Swwff&^Nq2~ZB9kW!=+ilqlfg&Gbalt(F+7L!mxlp+Ei zhzg4w9tg^zf4$c#+LF89KRgaJ7s9|FIeosH_f^h60+OVhuztKWRvl@OYbM9%p z#%Pxc#LO_hOy7>5F`D^SV|#Ovm?~!Q62LUxU3N6uq%vlnfQd4$XXt(bw>_`Q9}E`N z_@`(A6_eoS8|1Mmp|H2YBnaZ1+;EQn4D@45m;Gm4V_ZSR%}pV3kPx zVPX3SwFqCQB=Np+iE&e>YJqGSk22&m^V7kjU~MzP$5beY6OFV%#YSvmu$B7*0jCq<0}(-ED83b@ z-_h2|{17v9eS8T`o>1`vPI6y-$Hc=pt>TP0iN=5y)Iu_TB+qoqC~c~Ov-nxK|HAjh zH|WpeL}P8jB9=r=RiTA)gF$V^9fM{%ZG48!F3BvJ zp~ruw*Dx1Pag3_#0v-KWQk>QKL-3U(;x^6~(Q3JYr!sru5|IO&zq78~^?iOuG zOiOLiu8C>Z7Ojx9dKf9V9f`<_jV|QH#!TeL#=0C7#Dqc=L63GMdts&bP|^xuK_R&o zBMHOd!bo&LDcxG5(H&*Tfe!;Pjw~jS??jBj6kI``10d163?<|P@>DQ_JQ?{a7)Acn zZ6sYwQ5Xi)kvN8o8HG@A9ff2VOK!=KN@Zjf%gCcApPmAGiWHc|tx1fHBO^o1%|Vi% zvK1`0ZNm6Mcf#Z_rtHOZ;=$uFgi%Ff7&Gh1Ko^7Ph_Nz_0`SwxDRn`FXvqp2I${>Z zG^6vyJrpv^BGU4S4YAW1ay8I6Es9zy*6c>iiDIrV!4$!*h3+uwiu5^~(Z`e8GvW3y z7Og=>6ia+jEcGSa7r`=`4`X>4D#)Uj00p7rMsM6s6Qu4}~l zCOqDR&3t3)VRc)umG*QJqfgVrs3nW>47L%RJj7u;>IuJ~%?kZFw39JcMgz;#5fZu@ zTG%p?%|#q6mvETLV+kvaqR~gGgz;z(y#9AluvVk22slb%Sl^7(n@~PIj|1DQGrA+&n3XW6A4ZP z@CW`RqYkLVU-+8d5MgL71(Ayl&S3s4Xjy#`Mep84F-$Mkc{Tqf8Xh z2ZUm$(I|d~24=dHj1-&YTT|3zx=CA1d(kM2jqXNf;)hb)4u!?FtX&F2SC*|!YO=~K n|97LcL2cZf#bMJi8xw$2pl9*e&k`xCB<5hPsYJ;%PrrWw5CQ9V diff --git a/bin/br/ufpb/iged/interpretador/principal/MaquinaVirtual.class b/bin/br/ufpb/iged/interpretador/principal/MaquinaVirtual.class new file mode 100644 index 0000000000000000000000000000000000000000..5b401ea1250bba65bd8af1f839ece31f7ec40031 GIT binary patch literal 13327 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 literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/principal/StackFrame.class b/bin/br/ufpb/iged/interpretador/principal/StackFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..2b86de9874fc0a68ae9743f4ec2e792b751246a5 GIT binary patch literal 1029 zcma)3+fEZv6kTVgv;_*StwnAkC}J7Vi7`HDj7<|lO}QkHCgKC0PLD9y&P-0HjlW|2 z0G~}DCMNm;ew4b-(0~yicsctrd#}CLnxDVE{Q&R;4>Pa?+?ICx@1mCLAE~zM2eHzT zR@j zpA%Lu;uCoSPaD^wy{p3`lCFh)qsyQL>O;IM*%L@V_X9tEAuv*@AFMV7Qnj$H#$e-S z4h572?8<6$6au$$7{!>$W^%|OZL+x>#?O1VbI2ntkZ<^b+U|E-O7F{7M+p=gp(i^{ zBY^d=nTn5%mdDpqaA`c*mtxtK!Ev~yx*;(Wbb+j*x3TYqH2Z*NCo5Yr8s01WK~HI4 z)B8{-(p9WETdrKS+qf_?FoTBtfBwe!5NtouFt!)=wWl_GBQ}3Y^^w`c5?wO?I*l2O z@D<3gvXEs)JDCe(VG?O-5+^X3%+OFqn-c}x;9F$%iMs}G-T8`=Q)qvOeTFH=I>WRx zmlU(}A2IH*JO3G3C&l~j|ttP)Saxxjr%YGx~IaP6yT%apeA7h3iLEqj5s#(fLxe*i#k B&ustz literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloClasse.class index e8b9b9b100ea697ac0f17d808109f2fdea4944b7..1a456b7ef39be2438931e086c2db4cf3d73f604f 100644 GIT binary patch delta 14 Vcmca(b;oLht|+7XW<60o4gf2D1d{*& delta 14 Vcmca(b;oLht|+6|W<60o4gf2V1eO2* diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.class new file mode 100644 index 0000000000000000000000000000000000000000..79410e94b7f769bad08d4cd054a1b0013f3c4cc3 GIT binary patch literal 2377 zcmbtUZBr9h6n<_J*br9KfCvb_P(?_TU=dr5QpJ~=HojtGk-oS|ZeTTU-E2_$J35_d z|A1fZObNEmbo|uL^k?*UbZVcoyM&-lzmyESd(S=hoaZ^`x#!P+e*F!=EWR}mQb^~W zRI^mir|cD7OxaaeJ9S69RUCsYP3CwXBubWdjj~J&&w4 zD^<3tE2&%gN4nrDM5Jm*4 z6ngB&6OOB*ZFgQ_-(-hJfORTICYNhP9YYucCiY;TLU?j2*8_$9CVCK)uVE9t{?`E$ zCU%K!%tRNu6?SJy<7Tsx*UmkuqJXazta8qBY*`1!h`VZ&*oEx>=mpsfzJo+&Di`@Pnk#{snBl~i`(7t8^D@OGN^(Pv_@gqqH7f%->~W)9RsNy zqVTI};MA72qc1VcV8Fm>HhNnsL4#tH=ox{X6t53WoW(hX7$IFP>x!;YXFIy)i!bd# zqm!c>Ea?zmwep&NlLfcBCYKk4?hHOMaS@j&O`GDks3$4qRELN%fj!-e%eZRb3j65c z^{8y^nz)9KMg00Hu?=iR=(rha;gm7)2|kre|i6|&0bx|NS1=5Lby#H=Ki4IY|A+yJObMkm^&K>Ud z@jHaw=;k-CJD+h{EZRbR4<|O!p9pVYFcI0nP(p2BB$3>}=uh6UgM5zgD0nEsLDs`? zeGJpj-w+0Hh&zLRARHz*`5Tro$25{|JVuYX*oIPzI(I9V7JSzzh&R z=335-Cw|7rALvWG#LUtr-j{OI@)EO42R1R+!Us|pAE%TYIL>^NjGrLFWJkfr+t|jD zCL(IxJE`LQJdX=O;#UkNVwv-s%v?84v@m}z@(d%xkzc_3{0g%zT%S*l5y`O^$cp){ z!jG^25-bs~X1)lf8ES@{PZ7&35uL(moaw07TpQCIa=1?jF=GClIt=kd50;2Cj0cQr zw)b{(Pmu4I3ihMRtKhQ1JO<|xYpUdO2W-CQaVg{V_*Yq}+wVB^5)YT+`ArmM-GXjm zCH|O?7AjfUqj~fNs&t4uGz-TT+@$aEoUuBKeU__p1f9kNE4Z!h>jAMauHuO&1cA(= P|BVUuo9Lc$9m4v*Nbd2N literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.class b/bin/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.class new file mode 100644 index 0000000000000000000000000000000000000000..c5fcef28dfd8de8acb7684446cc53b970e5ef419 GIT binary patch literal 4997 zcmcIo`+F2u8GcXpGMi-xurxqQz@$aIO75D}AzCR7UW^R8mZ5B*{a6z-QoNilYQD8;iDebftFWE*m-meuB z0*%AQSYESBmM(B?{@dN|G^^#u;={IO7>UOrJF1*isl} z)5_ER$U-LsHjZ@ncMlvKJf0j#_9nagj`#2HA3T)oKHfXHFZtM@fJh1~?=|y9Tg%&{ zTDGM706*wN+RPYZ)Z1{ZM_{$B<+S`b6P7bAL+dlsT9z`qjl5xZ37m;7G``dbju-`V z$zgYMpJ*Eu@b{V-Jq#b#skjTx3howIJ68mKMt(xi9Mp>AEQc^!&??0?2>4=cqm6X< z11bUtD%d2jYHr)?hA3L4)D{(u2+GmDDpn!l+a?t~uHq1e$#KO}s^}1yz?xVx z>BX{2cOrz3vH(U0ll$bxCsZ895hhZ9s-#KEnrCV-bxKd$iMFFs^q7i|;YmphxQY|#=9{dZAG60<^CWr0;aZIecHHPrSvmtlvT>#dbZT+tvV^o8EenI6 zGzErjEj_^|^@?82=qE`tmcw}h8)AK?H5MmZWv#eX%G*XxkB^uWdOneqtrXrrnbr%o zK}u6Vj@o`3BG)OJHhCO5x@R{oLmmYMs=a_>Y zs5p(M$uJZnUsU&gC9+kt=`AUk5=h(z^lgq)$Bhu4k%S^oh-ju%$Qo&$!eLC{SxI>D zFedSw9DQ1rNR@r>;A0S_JI|~549*gJp+xKtR||STtF|ug4UZ2aBha#F&e#|_%iLlf z1Oi!!T42vo*~B9_$7vEqm;v`VSGMkpDwfICZRB#LWBsum7G%C|vi2>;!I<`W*&A0yh7w znku;Gm1Mu~tJp0&Mb#&blwrA{Zp4ppPQj1oQ{Pn4)^jS(<0q^-Q&wHGTVjS8AL5jpm4DIxo3F?lW;BcocvgPBqT-kM6}d_)6j*pX zr|XpVLfZ7ylRbaU@`_gUcS@DNl`3DY(d2d0;+o`6Qt%Z_E4a!FmO~u#T~$$*HwdL5 zz0c-Dc%3ofNqO@MZv|0$mA-jJo8C69KxRj)_Zjx&1lhF#bQ=oNu;q0__Or+F9NNs{3;@Fy`Br!yX^mPm=PN` zOIBJxU^rKsdDoHqrQ_JdTH(bLL4J4(<4obG0U>^P-|@iR&vIxs_b! zZOj?-8ph{JzT-8J-)lJg4)3&nK6kWtZ0nrC+V<;cIWmLw)7Z#il*4(Jl}e3gR+Nb@oZK-4kestb4~ z`1=cc_*Qyay}7G)^Om}sA4Rvf`2jwqksvK^y>W@7YSV31yMwc)dn&s{g8oQ9N(@_X zUq|FX83*@tLS*eO2nn&OsiCQXVIQa7 z2Ara-{QWiIWb+covTl2rkj)*}kQ2BDs{wCga-j1aEWeJ4Bau(c;FE7%$K(-LpmheH z8km#syoNJAJR!^2jnCag1Pl=U5Z2;x_TC8NCL?gz@!Kum9?x&u#%J+4r!0E#dC%`S zzJM=MpY$vQ@g6oQyjKW(scs#-fe3AmprAEfAAH3X1@dbSQy*vx;ZFwSX!%*G8sT7tpuKq!qIIuA^j# z^Vw8wo~tr9RZkPxf+9?xSlyD7&0Il$*3cFa+{ k$QZp;6{RV!ptrI!C6@@N&-fp0?;$3loc@hoHQ?|617S3#CIA2c literal 0 HcmV?d00001 diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.class b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/parser/IntermediarioLexer.class index d4f046abe1f13b2b9fad8539d531b05a8da84639..1ed928b736c35467a55987fcdad2e1ab692c721a 100644 GIT binary patch delta 924 zcma)(Ye-dD9L3jv?X$O*SvOx%aWxGSy#*CS6xs9|C#~%DtrtyEPz2E}EsC-y<4jb< zZjg$;1VJE!6IPVj`~5I!qST}!D#V@;^hN0L_nI|CA3B`F{;}8E|FziX^{<Y^Ax27DB zHlLOHN3Wsirp|I0`4d)lV65y!k?iudsZk~luO6H>E-o;6xZz8~*~tZRl!bDfljH=8 zrH0d`)*lS#M{Y?2>!peRNi*-sLpI7|Hp>$}lBawk&-qMR*dncbAus*A@QD6pbY?T- z%{F#57vxh0Bf@ywadN`q#+2$2<%p2zVS?R<2MmZrUVL`B(6N9xZ z3f6OSu#v^V7Ebf~(x)WkaD~m|N;`-p{zZCja+JGm3B6szzwJ6!*bUt4`($J%x3bc{ z;y?B+tL!@-vF};!3o?fFpUazWKI_~<*1N^Lfs;xB7hyYUl*m%7!l{^Ajyb4}srxY=r7r_i% zR|N6R*~t8So{eGpTBK^~fwtec6DKc1Prs13q4y_WXxlU_}H9OTObbPC_E13%$+ z#C>)C*!Tg1L=qCLCipQ~z03Ze)RA@oUBAxI%+4_>ZRmJAT6Knh#5gr2ChEX%!p{`3 M*7nSIzA-EHGkTEE&Hw-a delta 793 zcmZXQOGuPa6vzMf-0v|p4ox$o^m4{=GBF?3!bRYe3K=6bf#udxs#R^KG^mByq9!6C zZXi@rtFRRpp=bSHaDW zB&0Y6U7SIk=vI^Y3CbHBtSzWFHM)YU>O^6Q854IXE>dcwFzTNcX_^rqXjaV8ocKgv z#8*p+$!_w>a}<#0X_@S$mGUwLWj__k0Se1uipbBjTFz6cx)!WmTsKF4EMtgA@DJG&09L7CcO=1^@ZS?{gaGy!18>qktlR@L~VU)>~3hR2K~hf$3QCaJm5g(p@`TaE*GYS+rq zjAu-mwux7L&ZKKSSilS0*M~GFZC{GVPT9UG^r>6nQsGzc!yBT_cx~zWZA9_L(v3yD z>{})>R`9ZEOEoHZ*>|?O8I_o2(v2PPtH$Dz^&-P>!oPL>!6CRzh}?&4HD|CL8K_Ie z1)VvzgHHGtDur;nb*rHjvD!7maM}SLkF7b`?7&_ub{y8!?8poP+2eSf8NX4_CQqeD Tca&_GR+#^~{I|7gjTHR_!C#ujYoKz}KakefJQiIv#ArgtFL8OB)F<>`+7k_}n zAQEw#q@#ggF;b&Z84M*J>iq}2@;<3Z<$S>AL>$@;n)6W7k)4fKvx^4T;;U}U;Dg-s zY;jMS9+n&`zFig*`Km6??(6{QdHfg}uMa3K3C$SEX$;3m){Q#n;? z!L3SN`Mi}!^<>uI$z|Tp1RO?@BM2E`h@ff8#db5kmXZN9{3g&p!vLN8)N=DeWfqVpSL|6f+S TE?;Z?38$LCg$>dG+L-wVqLD;b delta 347 zcmY+=KP*FW5C`z@_w_|vjkf4}{k8S-nrf>}@diT&HZ}trF|-k45HT@H43h4W8^vVk zD&AlagT;WD*hsn<2x%9S`15Nzx$*9DpSzQ4vwB*Ja?USDpBbnjDdG6C$y>zz)p*@t z-M<<#4c^OjVuuGZZC$!6umQZlz$;9=A%=HY_&^$MWYH1Vt}rI^wih|XCqlX}hK4k3 z*U2LEgLDvWvVYhvqb&f yLV?>dk=kX)KS}M8cj9I|wqzmWdU*_dW2U>ksbkPlN?HFd2;wXX($L>A82AIp?@12; diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.class b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/Main.class index 205b8489b5c4702cdfa4e329b86ef6390d3764f4..7c3ef8970f39d7991d4c5df3240ed1a03af8c148 100644 GIT binary patch delta 49 zcmX>ka7bXo26jgC$s5`A<#ic+8T=R+8Kf9w8T=Un7?>E88AKQY8G;y?8FU%ACjV!5 F1^^SE32p!Y delta 49 zcmX>ka7bXo26jfP$s5`AE88N?X^8G;y?8FU$VC;w-6 F1^^Wb34H(n diff --git a/bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.class b/bin/br/ufpb/iged/interpretador/tradutor/intermediario/principal/TradutorIntermediario.class index 1fe645fad58ab990a29a94ef3183b708b97611be..475ef0be079553f48ff6bce139575ec345cd3a97 100644 GIT binary patch delta 84 zcmcbnct>$VD;Hzz<~A;ICgwZ_>B$RtbeYdHxJ^F8qt6&I`43O5;%0`$3~UUn3_3u1 m3Byt#`ynGI!!jU?mBEvNfgyEr6|WM@PX?)9o9FRbFarP>w-;Cd delta 77 zcmcbkcujFbD;Hz<<~A;ICgv;#smTj?bSGcr(PIpo#2c%)jbSkZ8v`qY4#P5rB@9b} f?1zk;K=x9gm?r}RL-OQ0UL_`}ADfr(S}+3uQSlT^ diff --git a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java index 305f997..6acd22f 100644 --- a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java +++ b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java @@ -11,7 +11,7 @@ public class ClassLoader { public static SimboloClasse carregarClasse(String nome) throws ClassNotFoundException{ - List classes = Interpretador.getAssembler().getConstantPool(); + List classes = Interpretador.getVm().getAreaClasses(); for(SimboloClasse classe: classes){ @@ -29,7 +29,7 @@ public static SimboloClasse carregarClasse(String nome) throws ClassNotFoundExce public static SimboloClasse carregarClasse(int index) throws ClassNotFoundException { - SimboloClasse classe = Interpretador.getAssembler().getConstantPool().get(index); + SimboloClasse classe = Interpretador.getVm().getAreaClasses().get(index); if (classe != null){ classe.alocarMemoriaVariaveis(null, true); @@ -42,7 +42,7 @@ public static SimboloClasse carregarClasse(int index) throws ClassNotFoundExcept public static SimboloClasse carregarClasseMain() throws ClassNotFoundException{ - List classes = Interpretador.getAssembler().getConstantPool(); + List classes = Interpretador.getVm().getAreaClasses(); for(SimboloClasse classe: classes){ diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 88d375f..545e58c 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -70,7 +70,7 @@ public static void main(String[] args) { carregar(); - vm = new MaquinaVirtual(); + vm = new MaquinaVirtual(Interpretador.getAssembler().getConstantPool()); executarMain(); diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java index 44a1ac4..d7e001f 100644 --- a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -21,6 +21,8 @@ public class MaquinaVirtual { public List heap = new ArrayList(); + private List areaClasses = new ArrayList(); + private int op1, op2; private short opcode; @@ -30,6 +32,12 @@ public class MaquinaVirtual { private int tamanhoCodigo; private Scanner in = new Scanner(System.in); + + public MaquinaVirtual(List areaClasses) { + + setAreaClasses(areaClasses); + + } public void cpu() throws ClassNotFoundException { @@ -1128,6 +1136,14 @@ public int getTamanhoCodigo() { public void setTamanhoCodigo(int tamanhoCodigo) { this.tamanhoCodigo = tamanhoCodigo; } + + public List getAreaClasses() { + return areaClasses; + } + + public void setAreaClasses(List areaClasses) { + this.areaClasses = areaClasses; + } } diff --git a/src/br/ufpb/iged/interpretador/principal/ProgramCounter.java b/src/br/ufpb/iged/interpretador/principal/ProgramCounter.java index 4ca8198..2b0230d 100644 --- a/src/br/ufpb/iged/interpretador/principal/ProgramCounter.java +++ b/src/br/ufpb/iged/interpretador/principal/ProgramCounter.java @@ -66,5 +66,9 @@ public int getInstrucao() { public void setInstrucao(int instrucao) { this.instrucao = instrucao; } + + public String toString() { + return new Integer(instrucao).toString(); + } } From 0411da69270236fc310f982ff4c59bf3122f85a3 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Sat, 9 Feb 2013 01:41:42 -0300 Subject: [PATCH 79/79] commit --- .../principal/Interpretador$1.class | Bin 1637 -> 1637 bytes .../principal/Interpretador.class | Bin 7059 -> 7546 bytes .../principal/MaquinaVirtual.class | Bin 13327 -> 13320 bytes classes/Comp.class | 20 ++ classes/Foo.class | 43 +++ classes/Main.class | 305 ++---------------- classes/Main2.class | 289 +++++++++++++++++ classes/Super.class | 7 + .../principal/Interpretador.java | 58 +++- .../principal/MaquinaVirtual.java | 2 +- 10 files changed, 429 insertions(+), 295 deletions(-) create mode 100644 classes/Comp.class create mode 100644 classes/Foo.class mode change 100755 => 100644 classes/Main.class create mode 100644 classes/Main2.class create mode 100644 classes/Super.class diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class index 09d699d353264e2a90ec5fff788a32166d7d00d8..e1384b3e70094b078834dac3166c190f31f17305 100644 GIT binary patch delta 43 zcmaFL^OR@9Zx%+w$$wZ}7)>TSvIcWnFt9LKGO#gNPoB#f&FaX&$KW*iFKY$>B~1(7 delta 43 zcmaFL^OR@9Zx%+~$$wZ}7!4*nvIcXSFt9L~GO#h2PoB#f&1%cQ$6z=4FKY$>BQXoY diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 3dd03a9bdd9507d356122a202331a78ca76cddb8..fd8ca4eb7479b7fe1e19a9334cc3d96612e7f94b 100644 GIT binary patch delta 3177 zcmZWr33yc189jHlH}mo)djbh0CNcX2lCYBy6v9%PgqW~(2q_Fpslu05vbTol6EFI$WmL|x`0)?T1!{EidwsBE1vr%e1Lu5_ul>Q_AlrB_rFih ze5WD(nfIPJ1z@UZ(qIvoBF{P|$TX`ik6GM9^EV24A+ugKWKEJsMW>i3``neq6HsX2 zI^+pB<^)24=v)^BiVb8UOT+aPWjL!iM@IB5H$EK%AF|8{@RK-3p$^94dKw4hBxt3dkAzHPqR zpf9wkcG)fcQGc(2rD&IaTTyWbmTBk|$TF7%!nI4<7jEzI_eBHYkb&h`ArITii&w#` z;UibAx+xL}MVCb*ejjzMMwfiuR_f|jx;~o3xKxJi>5g@3#K#B<<(qbwe9T_t>QO@* z1R4lcsjSm-ojNwEu}yNEy-KDz=E~b0&&dvlM=sF{T-&f+!^Z^bE+d=X9Q5_~w}yQi z{1F4UV23=Utd}P!oU+q2-y34k$yi@n>=L8 z=k+vKW7SFxPYN_8@hmCPaWaX;83Q^})b4K^c*;CAz2OjZQ0_3gvI5G9;|jQQ%GdJ( zHS&O-EoY@9>s$Dnd_1jqP#O5Ufq!70fNPUKx;(ta zAL>uRzwjRo{}xC!Q(zz(2-da+`lANk!Mo(!w_(G)U{D~hvh~V>=5R3R?@_0#v1+v{ zA^$V*9xjnJE^po(2=ZtYRknsBn`(WbXfRS68IWro4tZX++kwfWKE|D$9snz2N*f?chS~J?zXucsPuu^(6O0v1J&=6*+v`75? z{-`FHx9Mf>PX9(-6p8DVf>L=lW5~u{zVv79lf_1t)Usn@hCG$M!Zus5vZ<1sBsxv@ zrlmVH(I`-V)o`_N%40e8WP&xA)m&EWz``$ZT>=xlaTJW8 zD1j16r6VXypn_7>2&#v;#DW@rGhyR*64lmHaXkvLkUcdEs$_U$iU(^c2oBn-g)VBF!V$V9rod`y>>kC`1ZH?gF)M~Sam*jV!ci*v_^>C2 zn_^gb1hd9^Ys_A?>J4&ot=XM8Ho4yHrH=Ld>hs#2Ih$Z&5AaH+s?fm^miF5umY7>#e2$&8R$YY2D`BUYdP&hC)KRMW;5iua8N-v zdjYojgz;u_vC>j;}7(?*3VX|^S>oB6b71otJd z*PH2#V_!>k4EMKMn~q?yXX2F12V?m11DKt_A#VbQy_rYjc$DKY9E;)cIEI%FW5k?@ zT|Gf6CyiosmqkqUoH}^vL;@$hgK?Z1!Rb+)Rgopxn*lfF?F4fNbN4oSyp#ERC#rB4 z=3^IGyNBG}OWJmlpuLQF9|my08F@8B$i{kn2j8WRJW}{HDHJSsUHBfp&)A!Z(hu+q zZ7Grl(_wuNg&Ov1cvifN8!ZHh7seP!ik&1nZYp+i!`3l$T0Mm1xfq^bmB0&LX7P)0 zywsM!%ifwee!Ntj(@AmstihH*lQ+*cj9 zf0zk=guonSLOg1M(wX$!3>%aK>Z)gC1z67i2_YD4Ia-88ScysY9t7=8jwCP|8+4 zHrhVUHd#=U1@UQ9p(>&-Q6nae?U>3oSwk7-6(4nO1vAZtXU%Pw>!>=9O2K4NtN!P% zwTXovw0Z6-n{}f8|7~L72W`Gcn=f5slYiAJ6jp5YohqiW&4*Qtn~qn-Ogb}5G>AFG IK|#dleHGx3`2YX_ delta 2744 zcmZ8j3wV=P8GcW0fAZ&VlP0twrKK&FlD3ox49W^+gBCj0mP#3ya8a`^Kt^dXEyx@$ z$~F-g8{0uHn}ab#CJKyJlWtMQrf!PE`)y9esdL_#sPi%u@I8Ohb&q+TKj(bse3$dR z-+R9QztSM%S3_Qz!d5qw^c_&n5H657x0JL?u>4ZhBx)cyTfhq zzW$ljOI7$82D~UxJ{t_oRB?^imRQ%O{%E2-8t-wT5jSa=E#NiHyQ4j8!;A0g>yK?P za5Lt}$@cP!Cd|{&%owIhyf?g{W8Rjo*v9^NZ;yfbXpsqfm16-~HQXu>*+*O3&@P{` zSGqcs;rj%tW=pH#SHXglPq_wvVC}D)8h=`E(0II-SS1(N(vt}a1RP) zwZ2c>E6?d;rfx&Ag7^~#4CHC}B(WVvXnwpqreiyHs`9j}*#ic4<3XA4uJG+4K_+#n z$T}XuUJX*taTi)Yg?%#O9xo2aq`S)Ys6gNmBT(kVrv>y$VN*ZW7uInQJJsJ|15enJi|22Ld7Es3>x?%z9i3$S}Cs@5!*@)&&dOMq5N$s z+F9(>@YUg(T=IDRZDd?R#|!wnLgPh&ifkpz^7E`3z9A!)kn<&+SDW9GjlNQU@1{go z%p~vyd`H8#hY4}Hu#DvYF1{y^x&%51pDmPbfRk^t)a5CrSR(a9i;^oF$WX;BCqAx}Q zk2P;XS-x9V7ThGC5|d?LL5+Mx)X9mX_Ua_1C@_!@j|>(L*@^|4&BIQPYL@pfYPMrod|YUp<8J8H6H3 zs7YZ`8aE80eh4=n$NaVd%&JXcZVI;?$Bdk`(3EO&(jrqT$w{}FQhrWaM(GUf3|oX? z5>4i00y@lb8rzlHXu=Y6T!iI3kIK4%&;l)#77(yj>a?SnRuixYAuPr;T1>|>T1L=} zm0Vp-Umw6K++n6X8xGp9#tQC%mO6JHDcDXs+Xfh;r7<+3o1!tdp}l5aVnO z%>r;lG&Hqq=-|`IX9=I>IuT@>CvI!0WTWzOvy9OkmZd{j*IMK2NnztTY$gu%wYC(t za7?DKb)-Z^CM@gdAT-&|{vzh~8}oB8iVN25H8ceVmb8>cy6etW%?jm~;{g zMWf5~XXCgogKebIeS^3^gY6NYGmRasEbFeeq_y!lrq`BC@jaBn!v_({V1FcogAw0j zX*|yL6b_~EWE#g74&eT}6h526@n!c}L`m)0BiGMoaDslnFo=^wI6Z^`l}ff;Q`nxt z4zFV~dA)@P-^w!HgK8dnE>md2y;z8?NmgtpA%B3#J!s}x!xN9fZAc+a2SH{t#EL0? zx8oT+%S@Z#Mh0JIAXSolSg&EMhV2@@BElBp!48_k!%3ZY&=7NohKm-vL~90TBg`j- za3EIc88bpzYWfyQ*B+Z zNj}X3Wv}&IelvitCJXj*wvVar=jA+rNqp^0!=ohFW0;4>N%cdd_+bL}1gUWZeRz^D zo1@r)VRs7dBxhI5U&{Qg8^3n9sv};S?@n zv=}plF5J8?Yf&i-kq34V-AeO6r;p&KYUkA)Q?;? vGvr+I%tofEJ~|wepKg>aLS<+X0Wq3mF{~np3t|kSo0@xgb5UlZLV8YqQew_#XMv;20IT*3VgLXD diff --git a/classes/Comp.class b/classes/Comp.class new file mode 100644 index 0000000..34080c1 --- /dev/null +++ b/classes/Comp.class @@ -0,0 +1,20 @@ +.class Comp +.method operacoes(II) I + iload_1 + iload_2 + isub + istore_0 +L1: iload_0 + ldc 10 + if_icmplt L2 + iload_0 + iconst_2 + idiv + ireturn +L2: iload_0 + iconst_2 + iadd + istore_0 + goto L1 +.end method +.end class \ No newline at end of file diff --git a/classes/Foo.class b/classes/Foo.class new file mode 100644 index 0000000..9b47b38 --- /dev/null +++ b/classes/Foo.class @@ -0,0 +1,43 @@ +.class Foo +.super Super +.field x I +.field y I +.field z LComp; +.method (II) V + iload_0 + iload_1 + putfield Foo/abc I + iload_2 + putfield Foo/xyz I + iconst_0 + putfield Foo/x I + iconst_0 + putfield Foo/y I + new Comp + putfield Foo/z LComp; + return +.end method +.method media() I + iload_0 + dup + getfield Foo/abc I + istore_1 + dup + getfield Foo/xyz I + iload_1 + iadd + istore_2 + dup + getfield Foo/x I + iload_2 + iadd + istore_2 + dup + getfield Foo/y I + iload_2 + iadd + iconst_4 + idiv + ireturn +.end method +.end class \ No newline at end of file diff --git a/classes/Main.class b/classes/Main.class old mode 100755 new mode 100644 index 522fbc6..b454040 --- a/classes/Main.class +++ b/classes/Main.class @@ -1,289 +1,36 @@ .class Main .method static main() V .limit locals 100 - new Heranca - invokespecial Heranca/() V - ldc 6 - iconst_3 - iconst_2 - invokevirtual Heranca/ashdhdf(III)V - pop2 - pop - dup - getfield Heranca/lovxfd I - iconst_2 - ldc 24 - invokevirtual Heranca/jdkfjkd(III)I + new Foo + iconst_1 + iconst_5 + invokespecial Foo/(II) V pop2 - pop2 - ldc 3 - ldc 6 - iadd - istore_0 - iconst_2 - iconst_3 - imul - istore_1 - iconst_2 - iconst_1 - isub - istore_2 - ldc 25 - ldc 5 - idiv - istore_3 - ldc 7 - iconst_2 - irem - istore 4 - iconst_m1 - istore 5 -L1: iload 5 - iinc - istore 5 - iload_1 - iload_2 - iadd - istore 6 - iload 4 - iload 6 - pop - iinc - istore 7 - ldc 14 - ineg - istore 8 - ldc 25 - ldc 34 - if_icmpgt L1 - pop - iconst_2 - ldc 10 - imul -L2: ineg - ldc 4 - pop2 - ldc 20 - ldc 44 - isub - ldc -26 - if_icmplt L2 - iconst_2 - iconst_3 - ldc 5 - invokestatic Main/uisos(III)I - ldc 11 - iadd - ldc -23 - iload 5 - iadd - iadd - ifeq L1 - new Teste - dup - invokespecial Teste/() V - ldc 5 - putfield Teste/abc I - iconst_3 - putfield Teste/xyz I - dup - getfield Teste/abc I - istore 9 - astore 10 - aconst_null - astore 11 - new Classe - dup - astore 12 - dup - iconst_3 - ldc 8 - invokespecial Classe/(II) V - pop2 - getfield Classe/attr1 I - pop - dup - getfield Classe/atr I - putfield Classe/asdf I - iconst_5 - putfield Classe/zavcui I - ldc 24 - putfield Classe/fachdf I - dup - getfield Classe/zavcui I - putfield Classe/lohdg I - dup - getfield Classe/lohdg I - iconst_4 - imul - istore 13 - dup - getfield Classe/fachdf I - ldc 8 - idiv - istore 14 - iconst_4 - iconst_2 - ldc 12 - ldc 6 - invokevirtual Classe/kioeot(IIII) I - new Composicao - dup - astore 15 - dup - invokespecial Composicao/() V - new Teste - dup - invokespecial Teste/() V - ldc 12 - putfield Teste/abc I - ldc 24 - putfield Teste/xyz I - pop - putfield Composicao/teste LTeste; - iconst_2 - putfield Composicao/basxty I - iconst_3 - putfield Composicao/jahss I - astore 16 - ldc 8 - istore 17 - aload 16 - dup - getfield Composicao/teste LTeste; - dup - getfield Teste/xyz I - iload 17 - idiv - istore 18 - pop2 - new Heranca - dup - astore 19 - dup - invokespecial Heranca/() V - iconst_3 - putfield Heranca/abfgs I - ldc 45 - putfield Heranca/lovxfd I - ldc 32 - putfield Heranca/abc I - ldc 9 - putfield Heranca/xyz I - astore 20 + astore_0 + aload_0 iconst_4 - istore 21 - aload 20 + putfield Foo/x I + iconst_2 + putfield Foo/y I + invokevirtual Foo/media() I + istore_1 + ldc 8 + iload_1 + iadd + istore_2 + aload_0 dup - getfield Heranca/abfgs I - aload 20 - getfield Heranca/abc I + getfield Foo/z LComp; + astore_3 + aload_3 + iload_1 + iload_2 + invokevirtual Comp/operacoes(II) I + istore 4 + iload 4 + iconst_2 imul - istore 22 - dup - getfield Heranca/lovxfd I - aload 20 - getfield Heranca/xyz I - idiv - iload 21 - isub - istore 23 - aload 19 - iload 23 - iload 22 - aload 15 - aload 12 - invokestatic Main/refs(LClasse;LComposicao;IILHeranca;) I - istore 24 + istore 5 return .end method -.method static uisos(III)I -.limit locals 100 - ldc 5 - iconst_2 - imul - ldc 9 - if_icmpgt L2 -L1: ldc 6 - iconst_3 - idiv - iload 4 - if_icmpeq L3 -L2: iconst_3 - iconst_1 - iadd - istore_3 - iload_0 - iload_1 - isub - istore 4 - iload_2 - if_icmplt L1 -L3: ldc 8 - iconst_3 - imul - iload 4 - idiv - ireturn -.end method -.method static refs(LClasse;LComposicao;IILHeranca;)I - aload_0 - getfield Classe/attr1 I - istore 5 - aload_1 - dup - getfield Composicao/jahss I - iload 5 - imul - istore 5 - dup - getfield Composicao/teste LTeste; - dup - getfield Teste/abc I - istore 8 - getfield Teste/xyz I - iload 8 - idiv - istore 6 - pop -L2: iload 5 - iload 6 - iadd - istore 7 - iload_2 - iload_3 - isub - iload 7 - iadd - istore 7 - aload 4 - dup - getfield Heranca/abfgs I - istore 9 - getfield Heranca/xyz I - iload 9 - irem - ifeq L1 - goto L2 -L1: iload 7 - iload 6 - isub - iinc - invokestatic Main/campos_estaticos(I) I - ireturn -.end method -.method static campos_estaticos(I)I - ldc 240 - putstatic Teste/kadls I - ldc 8 - dup - putstatic Teste/iqowd I - getstatic Teste/kadls I - iload_0 - idiv - dup - getstatic Teste/iqowd I - imul - ireturn -.end method .end class \ No newline at end of file diff --git a/classes/Main2.class b/classes/Main2.class new file mode 100644 index 0000000..bddc977 --- /dev/null +++ b/classes/Main2.class @@ -0,0 +1,289 @@ +.class Main2 +.method static main() V +.limit locals 100 + new Heranca + invokespecial Heranca/() V + ldc 6 + iconst_3 + iconst_2 + invokevirtual Heranca/ashdhdf(III)V + pop2 + pop + dup + getfield Heranca/lovxfd I + iconst_2 + ldc 24 + invokevirtual Heranca/jdkfjkd(III)I + pop2 + pop2 + ldc 3 + ldc 6 + iadd + istore_0 + iconst_2 + iconst_3 + imul + istore_1 + iconst_2 + iconst_1 + isub + istore_2 + ldc 25 + ldc 5 + idiv + istore_3 + ldc 7 + iconst_2 + irem + istore 4 + iconst_m1 + istore 5 +L1: iload 5 + iinc + istore 5 + iload_1 + iload_2 + iadd + istore 6 + iload 4 + iload 6 + pop + iinc + istore 7 + ldc 14 + ineg + istore 8 + ldc 25 + ldc 34 + if_icmpgt L1 + pop + iconst_2 + ldc 10 + imul +L2: ineg + ldc 4 + pop2 + ldc 20 + ldc 44 + isub + ldc -26 + if_icmplt L2 + iconst_2 + iconst_3 + ldc 5 + invokestatic Main/uisos(III)I + ldc 11 + iadd + ldc -23 + iload 5 + iadd + iadd + ifeq L1 + new Teste + dup + invokespecial Teste/() V + ldc 5 + putfield Teste/abc I + iconst_3 + putfield Teste/xyz I + dup + getfield Teste/abc I + istore 9 + astore 10 + aconst_null + astore 11 + new Classe + dup + astore 12 + dup + iconst_3 + ldc 8 + invokespecial Classe/(II) V + pop2 + getfield Classe/attr1 I + pop + dup + getfield Classe/atr I + putfield Classe/asdf I + iconst_5 + putfield Classe/zavcui I + ldc 24 + putfield Classe/fachdf I + dup + getfield Classe/zavcui I + putfield Classe/lohdg I + dup + getfield Classe/lohdg I + iconst_4 + imul + istore 13 + dup + getfield Classe/fachdf I + ldc 8 + idiv + istore 14 + iconst_4 + iconst_2 + ldc 12 + ldc 6 + invokevirtual Classe/kioeot(IIII) I + new Composicao + dup + astore 15 + dup + invokespecial Composicao/() V + new Teste + dup + invokespecial Teste/() V + ldc 12 + putfield Teste/abc I + ldc 24 + putfield Teste/xyz I + pop + putfield Composicao/teste LTeste; + iconst_2 + putfield Composicao/basxty I + iconst_3 + putfield Composicao/jahss I + astore 16 + ldc 8 + istore 17 + aload 16 + dup + getfield Composicao/teste LTeste; + dup + getfield Teste/xyz I + iload 17 + idiv + istore 18 + pop2 + new Heranca + dup + astore 19 + dup + invokespecial Heranca/() V + iconst_3 + putfield Heranca/abfgs I + ldc 45 + putfield Heranca/lovxfd I + ldc 32 + putfield Heranca/abc I + ldc 9 + putfield Heranca/xyz I + astore 20 + iconst_4 + istore 21 + aload 20 + dup + getfield Heranca/abfgs I + aload 20 + getfield Heranca/abc I + imul + istore 22 + dup + getfield Heranca/lovxfd I + aload 20 + getfield Heranca/xyz I + idiv + iload 21 + isub + istore 23 + aload 19 + iload 23 + iload 22 + aload 15 + aload 12 + invokestatic Main/refs(LClasse;LComposicao;IILHeranca;) I + istore 24 + return +.end method +.method static uisos(III)I +.limit locals 100 + ldc 5 + iconst_2 + imul + ldc 9 + if_icmpgt L2 +L1: ldc 6 + iconst_3 + idiv + iload 4 + if_icmpeq L3 +L2: iconst_3 + iconst_1 + iadd + istore_3 + iload_0 + iload_1 + isub + istore 4 + iload_2 + if_icmplt L1 +L3: ldc 8 + iconst_3 + imul + iload 4 + idiv + ireturn +.end method +.method static refs(LClasse;LComposicao;IILHeranca;)I + aload_0 + getfield Classe/attr1 I + istore 5 + aload_1 + dup + getfield Composicao/jahss I + iload 5 + imul + istore 5 + dup + getfield Composicao/teste LTeste; + dup + getfield Teste/abc I + istore 8 + getfield Teste/xyz I + iload 8 + idiv + istore 6 + pop +L2: iload 5 + iload 6 + iadd + istore 7 + iload_2 + iload_3 + isub + iload 7 + iadd + istore 7 + aload 4 + dup + getfield Heranca/abfgs I + istore 9 + getfield Heranca/xyz I + iload 9 + irem + ifeq L1 + goto L2 +L1: iload 7 + iload 6 + isub + iinc + invokestatic Main/campos_estaticos(I) I + ireturn +.end method +.method static campos_estaticos(I)I + ldc 240 + putstatic Teste/kadls I + ldc 8 + dup + putstatic Teste/iqowd I + getstatic Teste/kadls I + iload_0 + idiv + dup + getstatic Teste/iqowd I + imul + ireturn +.end method +.end class \ No newline at end of file diff --git a/classes/Super.class b/classes/Super.class new file mode 100644 index 0000000..f2c0831 --- /dev/null +++ b/classes/Super.class @@ -0,0 +1,7 @@ +.class Super +.field abc I +.field xyz I +.method () V + return +.end method +.end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index 545e58c..30333a1 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -42,6 +42,10 @@ public class Interpretador { private static MaquinaVirtual vm; + private static CommonTokenStream tokens = new CommonTokenStream(); + + private static CommonTree tree = new CommonTree(); + public static TreeAdaptor bytecodesAdaptor = new CommonTreeAdaptor() { public Object create(Token token) { @@ -78,10 +82,6 @@ public static void main(String[] args) { System.out.println(ioe.getMessage()); - } catch (RecognitionException re) { - - System.out.println(re.getMessage()); - } catch (LabelException le) { System.out.println(le.getMessage()); @@ -94,6 +94,10 @@ public static void main(String[] args) { System.out.println(e.getMessage()); + } catch (RecognitionException e) { + + System.out.println(e.getMessage()); + } @@ -110,8 +114,8 @@ public static void executarMain() throws ClassNotFoundException { } public static void carregar() - throws IOException, RecognitionException, LabelException, - AcessoIndevidoMemoriaException { + throws IOException, LabelException, + AcessoIndevidoMemoriaException, RecognitionException { entrada = new StringBuffer(); @@ -128,7 +132,13 @@ public static void carregar() ANTLRFileStream input = new ANTLRFileStream(DIRETORIO_FONTE+"/"+arquivos[i]); - entrada.append(input.toString()); + //entrada.append(input.toString()); + + + System.err.println("Analisando arquivo "+arquivos[i]); + + parse(input); + } @@ -137,13 +147,31 @@ public static void carregar() tabelaSimbolos = new TabelaSimbolos(); - setAssembler(carregarClasses()); + montar(); } - public static BytecodeAssembler carregarClasses() throws RecognitionException, LabelException, AcessoIndevidoMemoriaException { + public static void parse(ANTLRFileStream input) throws RecognitionException{ + + StringBuffer entrada = new StringBuffer(); + entrada.append(input.toString()); + + CharStream inputChar = new ANTLRStringStream(entrada.toString()); - BytecodeAssembler parser = null; + AssemblerLexer lexer = new AssemblerLexer(inputChar); + CommonTokenStream toks = new CommonTokenStream(lexer); + BytecodeAssembler parser = new BytecodeAssembler(toks, Definicao.instrucoes); + parser.setTreeAdaptor(bytecodesAdaptor); + RuleReturnScope r = parser.programa(); + CommonTree arv = (CommonTree)r.getTree(); + tokens.getTokens().addAll(toks.getTokens()); + tree.addChild(arv); + + } + + public static void montar() throws LabelException, AcessoIndevidoMemoriaException { + + /*BytecodeAssembler parser = null; CharStream input = new ANTLRStringStream(entrada.toString()); @@ -151,18 +179,18 @@ public static BytecodeAssembler carregarClasses() throws RecognitionException, L CommonTokenStream tokens = new CommonTokenStream(lexer); parser = new BytecodeAssembler(tokens, Definicao.instrucoes); parser.setTreeAdaptor(bytecodesAdaptor); - RuleReturnScope r = parser.programa(); - CommonTree tree = (CommonTree)r.getTree(); + RuleReturnScope r = parser.programa(); + CommonTree tree = (CommonTree)r.getTree(); */ + assembler = new BytecodeAssembler(tokens, Definicao.instrucoes); + CommonTreeNodeStream nos = new CommonTreeNodeStream(bytecodesAdaptor, tree); nos.setTokenStream(tokens); Def def = new Def(nos, tabelaSimbolos); def.downup(tree); nos.reset(); - Ref ref = new Ref(nos, tabelaSimbolos, parser); + Ref ref = new Ref(nos, tabelaSimbolos, assembler); ref.downup(tree); - - return parser; } diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java index d7e001f..486491f 100644 --- a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -1081,7 +1081,7 @@ protected void exibirTela(StackFrame frame) { System.out.print("\n"); - System.out.print("Memória global das variáveis: "); + System.out.print("Memória das variáveis: "); for (i = 0; i < frame.variaveis.length; i++)

ETWdDIO{Db%eiyMjmEkSY1pZGc1F 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index a1953fca3b7ae60bfd87f9ccf9bc439abc51a98b..7de488f509f55059be10939f857447d5993ae362 100644 GIT binary patch literal 27693 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 O9U+;RhDp!G^#1|DpHFK5 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.tokens b/bin/br/ufpb/iged/interpretador/parser/Def.tokens index e17e231..0707515 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,5 +1,3 @@ -T__30=30 -T__31=31 T__32=32 T__33=33 T__34=34 @@ -78,6 +76,8 @@ T__106=106 T__107=107 T__108=108 T__109=109 +T__110=110 +T__111=111 ARGS=4 ARITMETICA=5 BODY=6 @@ -96,91 +96,93 @@ LOGICA=18 MEMBRO_CLASSE=19 METHOD_CALL=20 METHOD_DECL=21 -NEWLINE=22 -NULL=23 -PARAMS=24 -PILHA=25 -STORE=26 -TIPO_REF=27 -VOID=28 -WS=29 -'('=30 -'()'=31 -')'=32 -'.class'=33 -'.end class'=34 -'.end method'=35 -'.field'=36 -'.limit locals'=37 -'.method'=38 -'.super'=39 -'/'=40 -':'=41 -'aconst_null'=42 -'aload'=43 -'aload_0'=44 -'aload_1'=45 -'aload_2'=46 -'aload_3'=47 -'areturn'=48 -'astore'=49 -'astore_0'=50 -'astore_1'=51 -'astore_2'=52 -'astore_3'=53 -'dup'=54 -'getfield'=55 -'getstatic'=56 -'goto'=57 -'iadd'=58 -'iand'=59 -'iconst_0'=60 -'iconst_1'=61 -'iconst_2'=62 -'iconst_3'=63 -'iconst_4'=64 -'iconst_5'=65 -'iconst_m1'=66 -'idiv'=67 -'if_icmpeq'=68 -'if_icmpge'=69 -'if_icmpgt'=70 -'if_icmple'=71 -'if_icmplt'=72 -'if_icmpne'=73 -'ifeq'=74 -'ifge'=75 -'ifgt'=76 -'ifle'=77 -'iflt'=78 -'ifne'=79 -'iinc'=80 -'iload'=81 -'iload_0'=82 -'iload_1'=83 -'iload_2'=84 -'iload_3'=85 -'imul'=86 -'ineg'=87 -'invokespecial'=88 -'invokestatic'=89 -'invokevirtual'=90 -'ior'=91 -'irem'=92 -'ireturn'=93 -'istore'=94 -'istore_0'=95 -'istore_1'=96 -'istore_2'=97 -'istore_3'=98 -'isub'=99 -'ixor'=100 -'ldc'=101 -'new'=102 -'nop'=103 -'pop'=104 -'pop2'=105 -'putfield'=106 -'putstatic'=107 -'return'=108 -'static'=109 +NEW=22 +NEWLINE=23 +NULL=24 +PARAMS=25 +PILHA=26 +RETURN=27 +STORE=28 +TIPO_REF=29 +VOID=30 +WS=31 +'('=32 +'()'=33 +')'=34 +'.class'=35 +'.end class'=36 +'.end method'=37 +'.field'=38 +'.limit locals'=39 +'.method'=40 +'.super'=41 +'/'=42 +':'=43 +'aconst_null'=44 +'aload'=45 +'aload_0'=46 +'aload_1'=47 +'aload_2'=48 +'aload_3'=49 +'areturn'=50 +'astore'=51 +'astore_0'=52 +'astore_1'=53 +'astore_2'=54 +'astore_3'=55 +'dup'=56 +'getfield'=57 +'getstatic'=58 +'goto'=59 +'iadd'=60 +'iand'=61 +'iconst_0'=62 +'iconst_1'=63 +'iconst_2'=64 +'iconst_3'=65 +'iconst_4'=66 +'iconst_5'=67 +'iconst_m1'=68 +'idiv'=69 +'if_icmpeq'=70 +'if_icmpge'=71 +'if_icmpgt'=72 +'if_icmple'=73 +'if_icmplt'=74 +'if_icmpne'=75 +'ifeq'=76 +'ifge'=77 +'ifgt'=78 +'ifle'=79 +'iflt'=80 +'ifne'=81 +'iinc'=82 +'iload'=83 +'iload_0'=84 +'iload_1'=85 +'iload_2'=86 +'iload_3'=87 +'imul'=88 +'ineg'=89 +'invokespecial'=90 +'invokestatic'=91 +'invokevirtual'=92 +'ior'=93 +'irem'=94 +'ireturn'=95 +'istore'=96 +'istore_0'=97 +'istore_1'=98 +'istore_2'=99 +'istore_3'=100 +'isub'=101 +'ixor'=102 +'ldc'=103 +'new'=104 +'nop'=105 +'pop'=106 +'pop2'=107 +'putfield'=108 +'putstatic'=109 +'return'=110 +'static'=111 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 3140b4e71d52fbaf6e389d6bdfe676fcba6a4091..556b75c56db44e904268493a912dcfb05c90762c 100644 GIT binary patch delta 129 zcmZ3*J)diXJu?%-jLDA7F&1f=sW~YMH42$|W%=2uKt^7ES)y}JVsSB;lbV-Nnwwvc zT9lZVk`I)Hb0#OStk+__&cMlfgMp9rCWA2REe0vp+YE}VcNjES?=tAK-eWLhz0Y9F V`hdZO_2FboR%a&G$CK+=bpQ%5DZu~$ delta 269 zcmbQwwTgR#Ju?%d@?=NmnELe8lC;d!oD_u`1t7DyB(Wqj8OSaug$o0jaN*3nvi$7S z;)2xV%)}g^GAJLW3&JhSEGj7lOXua6B|7IM78j=i)g~5YmgJ@ajZXw}a`F>FR_3?> z>CC(mAhWn6zX+rZOhbfHQj5zn^TDdqA=(Nub27l%6O&Rw_7|lBb>&UI%Di5SV#o+X8r$BH1o&#Uf9I+-CW`~Cj@`{E|AKGoH)URAw% z_3Bl1_Q{{`eSnDaj3IuKf(EaQ<}|HpSeX-E9jeI**T+K9hG-}jtcgT(8iLWrP&B7J zw8~G0paGHS>YQMGtTvhxZK{uj>q0rPXeg9ZiC?qBwRlrdYAkYmsJ=8<7itt_FD*GP zxHgzm8?0ZQQxS`X>sL<|q>9RB3lhbGx)wz08)M+OC|KJRQv2~wkXgB6Mc!Bi5wl#7 z$6$a9#xWS^g7FLvcfkY(gIq9?!C)6mVlc!7lNk(kz_>9ChPfb@!EhI739?wxiEg0U{p66Co+OEAs_T7vN|&=O2=ftFyR z3$z52T%aYG>;f&p6c=a-FcjR^6SM@=T%aYG?gA~r3>Rn#j&OmNV5SSS1ooZB`9%$mSCO> zv;?It&=Qn6V3L+#z6-Pj3tXTjD0hLDpuz=Of=U-?2^P9QOR&fVT7tzc&=MT&0xdz6 z114(;mbgGmu+#-wf@Lny5-fLtmf#o{XbD!hKud6}3$z457ibAqx0pRNXrq9BQ3~raik?VK8~~~wQ;0nsdG`TmZd(9v@8)p zMt=F63ZA8~MydJb#g+4lDvJy9Img7)S!IP)oc0OoQczY}QCYsCu&AJfv;1IHSX8m7 zxQtOikiY2Y%A(Rj%`FAoW)~Ng6t)&m6(oxbxo8*gEiNstTUNX^84#qjXfeOg3xXh7Qe3LvKLpj4E_7b(jq2v-m*>yZjqC%d z<`)dS**Do zCa7C1xH425tO(bwjMPS8?vE(xWG!i2&&BXcZ78R@HrUu0YRsu@#{l-IYoo)gKo<}+ z<6t?u!Z`1PVG37NhdQw|6?VpK<@#8tI#LsAEuRx?tjn3@=H|z_fMu6ZV|AnptA3@iAygd>*5aLgP&^jzR4glL`dKU*tZxj*!jXE& z8HhIzini2)VR@WKXaYaNn&RT%It+uSU&-S)3+qi<(U_THyv91uPueE%_;DWA zuK4xsChz!(7@GL|Zi%*uJ0TBx6_{3C8?Fz>V3F0Z;c#1x0xX1n0cA?-xP1!qD!NewvlsF=(!%gv@8* z^2IabgZzA3!L{Ki`@AUlB5O%F5=HW_nrSpthx9AD?pDowjWshI*UUHc$Z4dT@s69!?P7#0+K*$t$>seS9BFAwW$GVa9+27 z^ugkZ?wks63eO;oOtt7|@}){kcJoVYO*0bRR(Qdd>@L#~m20YR2v#3oRL}dJ8Ye7= zm1|hyZesY-3g(_}(S8gqQavsB`o#70vg9GMH{6^g%qk-b;nAV62si?Q`666B}0kCsXAhIoy)j z5>Y!J)+@cdnZuSIIeZcG8f9V7bl2rrqKlKtwS?uQ@+@?_emdR~-JH}!OLTWqlP!_v zq^4S;hm)FaiF7A*ge7bzm2ZijA~i0N!POR7A_G|*=)}J-@yto_v!g80%Xx90B@StO zF~AQOSfaP{u)-33oYX=~^mS5;Es^P@sw~mZNiDTReZDGv#4sn-Xo=xYs>u@BPU=KU zjBrxxEiuwbootCwm@w46BwQaVZK_)tiXt3Pi-1#l39q_({{!r1rqnmpRlq25SXm&t z)D@um_<6ww_qm0YsW4OCb_ zN?HxXf;|k^!_sl96NPK-B2QCNNy*>)<;7@yClQ_w!HQIQk^BQU<5EE-!+v4^CJ|^> zurbuu6v)r>;c|;UA-3#|+;@V8CwZ~$B~LeF1iM02Dm|wZ8LTTE9bJ@5N4YuCU|n4> ziqnk{pJ^a+GHiHa*?@#!van#vvV}MzL}7TLk4Dq<~JR1?nSpAtz}Ct3!>A z!DvCSj=OVmlI~1Y*Tfu*n{1Ky_~i~kvpSLK7wUl}cS^Xn-4H2_hA`G;4eV;bElDCC z=CizCKH!(T1WoUx>ZAkTE`Dsu2PJ%E-|E`PN)F9VKiHvhLbG%9>lhz6+J|%;?^#XZ z+L}-_AmMh4l2rMSe2kU-UQYeRl21r>vV#o`*l`LPm8`i5o$s=o$}FC?4_Bv(T={_||H1Y6LMLE*(io8cLWx#SJ_T+6$dVt+ zPf!AC7+#HeBA3qM{Ld`;IiCf|a03hcr6s?T*a!H-^);b&WvdR*xMJ?kZ!P(q#HOHo zT*r%XavqL?w}05uS;fV?%m#D>6|r2n%sgeC5Hp0+z?re#8=Vu6cq6f$I9Rpq&`nsm ztm-vbMWRm7OwjTqdYGVwQ~$dhSPl%qeoK+U&cKhbP*aF|Ziu(exLPDu5l}dG5W@n> z1R0JIR(?wb6b|IN#qDmq6*XRt&g@7c^M7lPomwynZ&O_?W${d5KLOc@5#__7!>~c$ zW6`Fz@r+Am1f#1l6S~B(4wd5+AX<+Rj~`{l3;nl8S*~Dy)$_kz&*CBkus7B^7*K~` zS^{Cj+|v%IXwf=8*TFeVqhDoW1QUHj*Q4Sxt%b4fs{WQdUtR!*PaS5dEHwaZafhTP zTpbgXmCSv?WQlvp#qb!^;g%Yt21AC1rp7h1Bek^=h}J*Zo9^k0b~MybOAQk_=<9aJ z0xVIsC9jZIrpU9^NK1|4Ic}_2)!4upIhGou5X1GY3c{;{nHEb}ggi@)^YC&b*ZgFH zr6%%|9!@QuuslDVY^f>yG(9oI&yS~BYC1nQbr_9vjIe>qOL&2ARW(a3 z;x>10z(peH5B7hRI4Xl*VFYVq7*QETI+>(N+lqll@o}A5+XKh}3mb@^QFT$rsAK(V z1rD?l=Sz~kl%;}dB}6UBhuFi4hZnO-)>taUI%=&%n{XOgeLQYT`4yc1B$Kc-vM9_O z<^0-MYtN*rRVoZeL>-3~C9#vm#Yu*!ZTy^JueDSi_iq=^Q3|U=#8M5q-#eV0IQ>2r zx?Pe#cEuP#oC+LZ1d<6om6@-#)QM^xcwpC4y+-@kiT&6nX|i_2O@e22aTgrFI_cmY zr}&wFV}3;?OL&T(~Ehn+7#suYPT*->@&|$1+kGS{F+}-WirUlMtKq z!E3-Bf-dT8cy|g>g7KZqhGd?vyMZsw8`l5AVuhDx{Vb7JVp1_TRVaY5* zo81_`D4?Fg?FqzGreqc2#z&+nt3HyY52o~ej4bvVp0Vg7`WWuLdd^bMs~52JLd_ia z$-VEB-)SVPliB6^al9{3I9$Z|^Ep1Or%_!WgF5gU=4iz@))o~CVP*_TVzv`I0-DEf z<30g&Z2XEb0fobrULBfRr?01E>8^$ra;+1b_dxL81g@3YOw@29v-v#S{*ixUUPvJnL zGo3Q10=pzEJK*uTrM_T$&`0yA#Kxt54ZN?q2=2c)rJ2W9mik(KgJyw8`!XdQE#}&= z=L)Fr;5T*o{+o`G{vD{$Ui2IC&Vacs>8|+@Sdoj+e zcD9eIt`TaIorGa>38w}O#N4~KJNZim_YeFAj*UFW{mz^X7~K)_)VoO@|F)jYfMd=ns9+_r{?GNt&XA zwb+`q7>6OUWI%_f+mWLwST-smP0?z;w~h`BKxIbr3IQLixV}EV@HIkY zoSWs+01PPKg}jOS@Ub6KeaKG%I% z+za>+5AF@z$AkLH^}rDiZU8>PgQLKW9vlO1^5C_=CwlNY;PoDS67b0$d(asz`ya} z(}BcOu8zwW_r0Ke(MZvnsU!S4XS>%s21~vG+ z6|^^fMxVFZg)e}=>VUuY;BWB!I}iRI_}?DuEUQ(V%}6jwAf#k~woaVtYp+{w@sH!?KEeGE-;8$(mv#n2QtF*Lz4|Q{27K6gMw4#k~tnaqB`;+_}&cH!d_C=~CRb0Pc-A(`b={8%$&H zQOsBHVkEwoxh}0?m&mPBw#ciff+ft%mL|Pi@6}_wkQU% zZE++>Pg@)Xl3|MykY2W!2XcrlNF7Vi8D|Ef#|eutgQfKwB&YIouY@K?d1k1;}7q1VM(_q8enVEkYo}Y_S?-xGlmU z*|sAk%GeF~|&C`~l<$TU-V* z(-v2Nw8fhs)wXyWq{bHSf`n}GKFBIt{2gSqE&c(r#uonq3ESc$kmGFe3CQub_za}h z7GHqW+2SjZdRu%060ya16T?hL;LX?%8%bXBbYdOJR|l2 zVMcH!W&{(=i2WdzEd@wdTPl!lwlqPy+tOdLRi>nWagXe>RrYYHo&L=|GGnXklm5M? zndv|3=l#?7YI<0+OnG2x-(7ORRyj~j+eCJ=9GHpB%&~Z0ai$QNeXrmD`F(Owm2rQU zD%DdCnZH90+bTyUW{pnF8k3kcHZf~lV%CJjtVxMkQxdbLC1%Y?%$n)Rn&mX8kh4su zjkD)h89n7(=fRPQWlKC+rB12&o-CJR`GGiACYD`vpt46NmR;h>a%*4a$#QEy=0F^e zO)R_8ljU-(@npF}zA7KCDF&BokuUTy zcFLC}T}|npj5j4M?qiJ7GQBg!>|?aZ_xhM_!L(M$#YWij{TBK6tEnqe|3vC4>f09b3vA!VZ8%k*IQP-C&` zq0-5(2csLw_+ZTOD;wq%L27p*JqZqMnvUTvwpFiW%8wChQ~r7GSd4T#utytC=s}d} z*jGbzWce!?fo~!2H;A@=kG}dhqL6#&NbH%HfG($fx<4G_cT8)49HV;ym!c6v<=wp0 ztwS_#FU^6fQ4iG{J3y)WpglOMPer$UotC*7#gHH2 zU-;pO_c;74#?MLk`4fJ2q?8DD+{FG!j%aJW=V0Mcd0zSj5wy67q4_XnK1`Vp zQ|7~z`G9IZOqmZ;=EKjmTSoWNXpFiacK`#_U8GQ<=t@V4Zd4}HXqo6it3_|B7kwxy zGU+tYkIof`)5T&CT_%Rm4Pq$WAx6_S=;S>jmmU>k>3K1kUKLa5O)(9Z#-~GyLfRvW z=w~qpU+c_;G-dd@Wxg07$`Q?Asg{VDkgQNF7YpzS=rUaGsm7O_tMTDx44;dfhEFq3 z$5)wWh!gOMV-%kyHj2wclekKptY?s3Ud7e!3{v7WwHP)=h%>00I$BjBbr~6IiCPLb z;@9ZA0n~Lb8aXijZ$D-Znh&qSulg?Vs|o{?Y+2$Y6C1E*um`Zy#2i!ojGbz^r0M6ObmeF3xm{)F&^}3%Z!zK^M1ZD>$BRg$_-i(=|NGu#>5pPF-7M~+Tg4XIESl*qu@yS9Q;*p=SaNivJ7$tLDd$9? zD_x_a7(EGFDOID2LE_Evanz%iNh$j{u$Y>j-fQ5%c4OBK7%zeiujf^e&fhm&ZrgdqSN8-V5wZ6pjhROEERf7pehLM)CffjNW z_Abzj31)_AZlD6r@i{rZ3}0IR4K#+c{7#lX!|&TbhjLE9$q8fx{MVC}5lD;NNTxBP zKilvqeppBNr-##qlxA6yOxgpqp?|ZS@3aA{Tl-e~lD4`5~Y1$v!eg9wpOciR>X4$aJ|x_SUm{ z6?y^FEIzAcmD;E_LuC!QSlxz{gv39n+cCct}dlC6>OsJicgyYvc$CmO51@4sMkK~?^n3xu|6YnA67)sqjyGTMta6iRIwj>OA{vD zd5l8{sZ(d~$LwjBubh0p$lXs<+CRc8H~Zy7$zI`nyfR=v4LaC&ex$%GEHiAXaPzpM zseFe8+cIDn~vhSlg+bnhicib?nypl z9&jgFi`sqQnZk=`KYG%cDVk!YXj+D?8|OFR{Fdq2*vK(;)}|TM9ojVj9`QhE)G+EV zvnfxGpfWiM+p-*LkhyfW97h++@w7ospeN-tdP+{G=j9A~T^6?a3iL)?L+Lg3h@+wO ziu$wG(5KpI*&!70Xjv9?Yi4}-aIL)K@R^sOX>g;}hPL7JH_Jr_F??3DJUY=zBOEpX z`|fuFw~<#I=pKI(s@^Mq0C6auE94tywNhVt!bdWfm;}PbWB;S!!;2~cy7jiS_1@@OZ>DU$nU+yd z)0J{9Q+cAiSkp`7mzsVB+lYMFiGi9Pt|nB>KS>WdP$z9 z{wgm~ugL4v%kp~ls@$kvmz&fZaz|w&FH8pC;;!nA+BA$(vg( z`Q7SmZOLoYboCDGvZB?HoUfM|awhEedu*%a^{tlt4*FK{WivzWqz~2K_^G<7oh1(w zc3-UsUk=l_Z+$2V>rO*zgaoU_c8j>7^ozN(|jx4INF;ZoS@@7Tk; z?tzXzsDHGmkJ@E?)}p>l7C++oziJkkOAu8U1O7aVV7= zgQ&t7Oh+3-C}@n-gX0|5t#k*c!tG2aHkm?3pYic^3m@+Nr^aG;vF1NC_S^qYjh&3f zPDNv#^h(5M8SkX0G<_O>rHAon_={Sg_-k5+YdT2G(D{z;^Zjx%7Lqg; zkzp*xj$%2@GLE66j1^FaW9b;9noclk=rkilryF6q(m0N8Hfm|7QBO}B4fKW)rO%8Q z{bZ~a-Hdf&ka4oeF-{Tr#_6KKI71X0XNn5rT&+&}*j7}=4Vx%u!^aUOF(2lSBTPO~ zif`mL!?2x3%J3U7U7~=}^htoBBS(i)x1VW{6B@$r{+a1%8CmIBSs8tJ;`Kme2A_C$ z)J5Yb^cIeD@h2vN$l zmiug3vux=2tkXEScLR!oUOi2!$Xp_=XS0lUG*SGZ^T~8Ty@$n%9XvbeKiAoz0i2a= z9<_zarkKC{y#sM$+hS~>`$pJCN{i9uDk_QZYmIL3j1WHND0%CFzKi%w--)5|d7_@m zT$1PRX*fmNVWe%MHLZ-&J7fWKV~Q`EFAq4OZBD^bq~jvc(ehnb zf-2gi=`Hk#rhle)HGPl1)AV~0V2XR(!!^wovotLb`h8I))@yu{xLDImgyx68<@toh zPYTUXye9=?De;F2nf8{WG#xG9V(PBC4-?M5al9jqOJR8~gXOuLQj9AQOu3f28`se| z;|7{&Y@{g&uuL~@rJ2U*A51nV+Pq!G4(4UPb={@5` z`rdd+q!=%YLyT8Nw(&YF(VL>mcuTA{-VrAm?}HB`MI`luxj#CxTS2>QshTQ22uvD`~1`Bg_KF% znFHu#a}b?v4yKFE5p;<;lCCgE(FQY5k7}0FIq^}Y>)f^K64&E%Zg!+oU@v82IMDeS z>2cQ&e>$Y&3WW0>-Q75+=0ix=xd~iHN3@}|9_{_2^!9#H-}Zh{zs~)l!Qk7OUo>yz z|Hv!qWGJ)PD`z8xi#o|h)5K_=L|sCq~&H2tug0f1dHh$^GG_^EXBx`(VgZ3ddRGxSItHAH*+z4X)dR)%wy<# za|P`;LwaPL8wb=nvOmio^n5)BmWVwLiSKHhy9dq~XHb{DG}`esx@BZ#WWJ^`T?B`_aHso+l;;=@zY`)nk-(+hej)C4~FzuI#biLaB+e0&GeY2kK-~LL0tqb?;U#&52T5K`LF|ekiVE1f zVgu|Fsv_7M_J*!&-Cf;vS$kKI|M%RPmrU{=NOs-*{r2t| zKc&oHQJPXvQx&Wz9l@E*&Kt)W&*7}qm{3J^4N9EhFRKm6L-@y;XWIPv>8TPTc6C4+ zfo={ML?F=t=>)nvAcH^;2V@fH>43omdO2VSfnyyolt6C>3?tCT1{qp{z7Eh5BsoA! zkn8|0K|cp*3Hm!gOEACzT7rQN&=RCLKueJ704+h94KlR^gB+kGNOypiAj1J#f=mZ! z2?jerOEAO%T7sbt&=L%DfR2N2WSb7cYv1Q1P5pd zvK*i#80`Qp!59Z<3C21=OOS1YAzA`h3yCvCOEBI6T7n4<&=SC)G@F)Sq64%9Cpth& zkm~>~!6XN02_`#0OOR)Sp<03|4$u-zb%2&2-vL^J0taXbra3@MFx>%Kf*B6b63ldf zmSC0xv;>7V7^Wqd?Eo#o90zC#<~l%2FwX&6f|DGeC7AC3Ex`f@XbJod&=M3mKub`} znHP#rOVuKjgprmZ5Jp;vg<+(nC=DYm#-cFNasv-Y$2t+oV6U2H@RS1{`|4oV{$3WhoZ)27tF}X zBV=&q%bqnYd-7OaS`11Xmy?}4ww}EOXCh}Tv9?6HIg@jyQQCy-%9*T_txy7z**W>T zz}8S&Zr12*{j4?wawggL#Nz(kyewT-TL_VxH{Ovr4(@MK_N3AIdGp8QW)&1<(<3a1 zj!I3)8#{kYR<16tT|-v5Ht~4+$_2o zDp}}5i{vjZ4pi2F{d>+% z;8Ymrf=jNrhkLn?8$5=$;4QhyTj|^5xW(J?c;22w;H`NZeNQZJs|d4Jy3p#%KylDt zhEjim^-{IY#K;n>uhmrfE2@Jv!B7S2XN1)P1D)f-a6a}WRGltiSaGm_8Jf~1dAJ_V zBROl+0qd;wkA~N;u{LS-VR?$0DY>;U+fRf@K*)>O9N#t z#$jOW;xLv5Y8D0qWhJi5X{os0wc$F#u9{%6n<33rKxJ)Y0fSrx;Cf^M>0s#LJRw-I z6mg)VX7^Jvz!cVv!xSM&W<)_tgH_ZM-33t#baS3o5n3AAL}{erFbDKiQyxH#{q8bI zxgDJ{%0m7|`XYUHc3nec?7DRjsWZX3T#Y6RxG%a@sV_FUnN-=yxw#}zy)@{yj6tNw z@YS+VX=9lOkpjaHt_+qfa#v^&X)b)RjQp-!D$-cEMu_l3RTYgMOX>=@Otn8a)@8Fr zp_-add2QvOVF*XVR;zg$+iaLGJrx0M*cj8(Nr*-rDSc3S!}Xl8QLZCu4V#iPQb#h8 zo_ac343A||xDXmAJ6sK;Jn=<#r}QC^EBstru4qiI5?ygd!=qh2IU^042n$Jp#9_Fg z*Itg0I(9e=8$$N5GjPI>=!~S_FryPsQ1IYlwjEMN2IdOkhH^KA)A$(~m@ypZTBYMYo_#xOj#gTtDcNi_?5z05SIDcr3y2RoN+ zf0a2H6$)QVOVt;{&TeoTiVXLjwA3MVW4)srJlLhFp+o6fBOf;;4OY=ad;}X>)KNe8RF`Mu3#~OkCYkq_)Q*U7c|V(ONXU4-0yhXp(Mu< zs}yF;fJD)&6y_ku6!vLpse|ZQ4NiL~xs`CYYl!QKsljg#Bb#m?HbsQgbeWv?Ffzb! zlTxf5z5u5?Y$#eSd`$MxOU z!zHGrHoi6(W@(HpE(=x!YYJB~pR?BltJvYM{X7#y?Un31q;e_60(l)kgI7YvK7IQbyb2HK z(>DpJ8p@)?QdFhSK*T`R)j-P-%=H-Hl*I=6J zAYJlxE=)z=;KEe)O)gA@uSY}nDXFbQ@>aSOc9+1nBT6Q0`$%MLKuh;24b_B@-bCr3 zzl17xmz}Pl^gUEa&{hQ1^gb6Rc^+_KlBdpvNuI4PoB_Pug)@P7l2A_h%HH`q}lC`6XFqFl?D$>z30tTU6^X}vwl!@Z4uH3bb6T<;8&8R ztOQyUjFJ_BQ;-xo8G;=PMafE?^wNDuqI_Xc`QcF=xCOOq{YZ`slf(~KMzkj6n0^f7 zBGzOc<~2kdXA5{MJ!6$TR#T9eKjyPKHRNbZ6dW zaaTk1pzGZX(TixJA$r4W^6r$=mr^|_FPT#M&i<6beN@YVCi|IrTZmLK$R{v>#79nM zF*i0vy2!vner-jizj#S@1+AWx*em%Mjr&HfO(e}Jpwb7M>=$-`QbSF4kR71s3^&CH zF%lzvl)|QkremI8S`jE2vk03Ghbwywl{m^|zp_J=Ispx7r$(Ec+s_+oa={MxY%t!W z#R;Fl(r|~!`q`6p50<~^pJ*W_h)JfHEU@(J#R#YeOi$lA6O(4p!={?F$U&(B6H6UB zHQhub>eNgV&8$;}CYC^SYL1De5S^N5Vo5}&=3{BZPWeqNi0Hgx6AL3c6)<6FI#p`& zwstCL!nkza5);cQI#q6BSw*KpCYD!p>SU9*w^P+7KgLegn!JOZI>m(fXueZTo?xd= zH+d&Jb*2e}(pS$mc^B>t>qJp?&og;fWYO*n{(XsS$LkbbyU^s_>>DpKd1Awj23=fh z^6vJGx=~k^@Pbs*r}&XKGIG-WAfwd)N>{u zWv8Au`SEt@MU$Ukr(QOBmYsUl>n0y#r`|OASUdHW$+PX$A51>ZPW{p3i z+T;c+0+VaYivm?xh%LjaeOxX@K6(WS*vX8ks4XwRz(Bip982`A0E(AP@>e?7O+*J{ z17(3yo27T(q&ZPmznbg@()wr3q9BUwb9C#UxFNakk;hI7?Xk(7;UK5 zk;2uh$W@gVOp5(J@fB)+gthf1%fv0jm*N|$21eW5zDKFwC<2Z4R|guZ0{N-ues8kB zGQfB*tVPu|KttEoCd8#LzpknHp)d zZ)3{V5?f_PSYU0%5oVIqTw$GOjPS{}oTWEYKwD`>MW{SrCry8Gpt{;$HO5~~>KqnD zoss4mnS*wd?PUj_JchH;N08|#?ZA{BB?83O*rTcnpsn*NDJ(+>7ezeuXW3bH^-1jI z9e0FBM{W2C zLUxzEVeB%2QhiOCBoWJc{gsuN^>a2LT6H6o?-V(Lis*030Rl4&qb6j>uq|W?*>Wmp zBbuojcV(z?2bnTmB2sPxucjBpajIoXC0O|UE_7qg}jE#+W2)F-i`(^_kw z{)#Dw$>ER>v+5duumU4zqc+VeS{x{@8Id%b3K(h1YQfE=@LU}o3M@Nz{>}#P`0n{ zoY6TsG|U+ODK*eoI+VMrX|;C&4V@4%C&g-cDj zNFu;%9rnB7T9mj;bk1r;7WmKlWBV!Sge~O~Q38b%}PTvwv*|8mmlsfj*|!X!DLFT5XCS#E&uJ z6M3;IFQGoJ<}a+Sq>QzuTqiGuGg#SjE+d{hO?ekxF`X;6H^hZ|OnI;C7H8p%Zn@u-56~6(qVR4sW!ITCCc$(ag6qdDeo0izACYr*|I87 z8LFzuuBr-Ean>)I^+YpZ%qXaoH%$4a+^0(}4k2dYY(lgW8Z7tlGmb|6gNm1L%XfV8 z51b7;!Uz~Z_bU$JJW?)2HTC_=lz*fOx2eS8RCF3ldZ%GbfxA@xvKlOli7KR{NgB1T zuy(L#9BGI-j2swNjPUk(OZjK{u}>nLKQ_`yM43RE@)L=vu*l7V*nM-7a;P7EYRbP; z$25yjryA602~OYoBqqI4JkR9Nj3BKJWR=y_Yo>+VFF&W~>kHH<%HWWb6Qzk7+RtwG zuT1$h>9?h8mzT`pTT_0g_1U_T26SXg*j2vh#1*Y#hJ=te>Y6~gsXC~R7(hd` zh7xbLKroat#qObc@yAe|P+@FpF7hXmUb>j7tLkR!g%-SUci$uglHFBz%o-G?8lBNE zT#ac5IN`a0p)lX@4o|EO)Fc|JH+*=a7B#UZlt>lmYpNuMoe@QmWee3$4e+V{SQXd7 zdt=c|HIU|J7@*-#$}0YeX_DJk;1wh!v3o_j?iK0OE6_XA=fgW`8qP;drEwZ$el)UcB9HWmQ03-NrYGWV$>*gf=^)%F}RsF<219WvJ@r`ib6CPUUQ9wCfg$n zH5Pu@ZiJ=&s>GU8D+6fU?rI!0AtoJ-=6i>YdBbfA&E<@RiX>$6Da=lKMf!kje^uG3 z*~@}1r>7<=+5=FNaTuy^G|$lBH<`@N$$=E$m|NV*&617J0o^HU9lV6AR|gm5ZpJIo=U}FE(iou+>qb{ZZQ`nMFBL1_B88~nt8nnHtFjYvwsN+IK zSh~Ym1WXzy`A@D5R`^jEmJ3I>kkzWnRMn~m^8)lrn+K1;NIsas)aHd^XNrzdK#vZhB_1Ba1)Umnvujd{_CP=J2D2Gx$z#Cp*cQ>^w1A$3P}H9BInz{O@e?EMWh zYt(}ZyUtYCs~ZqVlmr%HQ>;qIPvlUKSOnR`P&m?pP;FH)y&VL*G@#;v)CW*lPDMp{ zD1fyqY&E8_?%3s}!|0E(jT)02*02dwzoZ`Z%z-cZ#2sqt^Gk`N)crfq~7aj^c%!P*ok8t6Uz{k1pDB$B= z_ypiA7ak2f#)ZcMXS?t?;PEaz0XWBnCjy`7!nwecTzE2Yo(oR_p6bH+zy&Tm4S2c> z&j6n3!n1%2U3fO|92cGoJkNzs0-o=}3xNGDTm)R~!X>}~7hVWl>cWeFgD$)nc!>*_ z0hhaQ1#rlPD}hgT;VR&27p?)Wb>XGJr?~Jk;8R`rG~m-+_zd7PUHB~Evt9Tc;B#Gg zIq-QdyaITo3!e|X%7rfgzR-nN17GCA7Xx47!fSxny6`&SOI`Rf;LBb33g9bU_$uJ5 zUHBT{YhCy{;OkxZ2H+cA_$J_+U3fk4EiQa3@NF)9JMbMYya9Nl3vU9x(}nK>zT1WG z0lwFT?*qQyg&zRk?80@xTU>Z6@HQ9T4!pyKcLG1?!VdxOa^Z)8cf0T&;745eQQ*g1 z_;KJTT=+@gr(F1H;AdR;S>WefcrWntF8l)Ui!S^U@XIdz3h=8g{2K7qbbhJXo}-9 zpdIO`i>5f}qA8BKXo^EFn&OCyra0iDDUP>jio-3M;%JMeIM|{oj5fpqA8BCXo^EDn&JqHrZ~W&DUPpbio+|K;>3!kIGv&?&ZcPE z-Jv*+qA?DmXo{mKn&KderZ|S8DGs4%iX$kR;sA=KIDVoj4xea>qbHi;;EAR!I9{SD4wq<(qa~W+ zV2P$UR-!2mm1v41C7NbA6vs(4#$ggoag;<;93;^c$4E5AArjDIv63`_=P=GE;+@Ea zh{^#R-$eRU% z%tDYDi_ZpWVevU2EiFD5#I*Q4kX9By38b~f=YzDd_yUkvi~B*^TD%A(&f>)&mc>gz z+F3jR5^wQ^Anh$)3UZ9a7lCxJco3wc#TSDlSbPacCySSXbhdaoNEeG&fONHZ2&9|E zPXV04cWkPaq{0{{Eq(~3)Dj$IktHNZ&=MYy#g_1aEU`okNSP&Cf|OgL zRlyd~Cbp;D2Si)y1Hz&{K!3gZuTTFq^k4J=x_~~QiIW*)qZT%4X%o{Xt!&cT67jgN zjU|o&iM2D^+9b{G__mgol3(GuN35^T;+HtB4Mp2+NC zqpmjTW{G2wnP`bVAl)sI1k%G2{ZQ=zar<|Qlr19Dp+n-n*eQl>5y!=St?BV`-|6dF zaX)H0rcMmlGa_NP$lfBx$&nkGRVT)ELT0ByxL&Y=^G*r39Qu5hm{6!5ZdoYXiHTEo zh}Ja*Hrm{O?PiSz9X7ew-|c4b{` zbFFb@IVG+;T#1)O@?LQ`-m4;cuW@BLPruHU2;$gG`_Sr0{KJsg>}Co=2N$gIaBv!0C1 zdO9-e*~qNDky$T9X1x@d^-5&cYmr%RxU!t4-4~hlc4XE&n-OVA@h)Th9kvwdPKdKQ zW0$CtRK`--(l|x7HBOhu7-z^X#+kCGah6On&X%dhIdX_`t{i17m)XX7GS^rk3yhU= zwsF4n8>{3Z;{q8nE|g1+)$&Z^BDuo2SYBjYA}=%6$ZL(Ya=o!mZZs~H_ZgSTZN}yD zVdDz%{#wL|&+^L2bcd3!a-6{uks`0ogF`iJT7*DFz##8D><7xGP@r-)HcvkH* zo>QM1d({Esc~2YT1y2v-MNg*jl4pYPvS*I*il@SO)pM@#n&%4Rb;k%Z+pGQAG{rncf9?LKYFu`cfGTW_q*^^ z@n`R+#$UV#jE{Zs#wWhM#$SCSjKBFN8=w08#@~H4#(v)_;~&23jL&@c8lU?fHNNn@ zZhYzc#Q4hhlkv4-8s8Y*jBkxW#&<@x@x3w2_`z6W{AiqI{A65e{A}EA{9^1d4j6ll zgT{Ntuf~_gp%@v%V%o>>n4}mHGZH9|C5ZRXvhA5rsjRzrAG1fMhOrLf1DZ#Q4{^<4 z;-DJIc^lx5#GmY#8|!*lI>uFx+|A?zNC+|%O!6r65?!ciGl)M6nsRbFB#OHP6*}o2C>iuh;0(6YcxzOK<0tj#KETbULW<|$>NZ6Zwcg}nQ&}!za5e#_unQ( z@_=npHPkImU%vx-*npMkjaYf!q{~dU@2jt0Y<>M=_38jML@b@wg&qX$zBx}k0Z*iB zX7W~P^xH05JStYrfBI6eCpv^imy#)}{Y&DKWmnYaxSzu?^-)(2s`#?4hYxj)Rp+9V6 zz1ddQ7i&|)upTu5YfMww9<1a(#)`0>6v7(PdF)xN6h4R5yJsN!3v4~sh3>&x(f#aY zt+7$IF6uS*fSjo{2K~rcNRd7tkcCJ|Jm&(vdZX}!d2+U#!#uiQ#xiw)P4LN<2Uu^P z9A%*uXh+A<_nFW)`ZC*1)jSG)d&BDRHq|#Ww7$L6R0DR(lh9U{EJACMs`^;6gpwY+ z_0T2@hxlMFSR%pdT zc`}3)b-UfN5-AU!d!=p+FP@kqPnK28ryHX+Loc@*W4upRqbaaa=5(aJD1ltlNu**+ zE{$gVXrTt3WGI{=fFEF}S4-AbF2k~mkf)+P3P)Q`qXii6cjP({ zD_j}deq{1i@g3wnW4k)Szxo=5tW61Of2Zjq`FPfSso`A^l@UjJ37nF#In$4 zxi31)8N{;4X4xE_rI1(_+bmn7vkWGdGMi;bbQX(PDr}aAqO!0riKWtJA^#X@FYHBP zsj^ufjm~lxvDDZsPef-~MJ(v=q`If0vy>3aGMnYO=qy>pa+=NZLUfj{n>XU~Ps#8i zFDHZJ3?yF1&P^`pTbo&bbhGQ^nesI37VXw_5BpHlkMPb8@^JvHx2An~j;0fNnWp7@ zt)}aEou*s(o0{(9KWh4u=tNX>7NayhUidXF5-T)aDK=`lN$l11dGVR1pUYUHvMpXx zAetd(XgX7#N>t0cR=%y}B}(!VC3!)$yhKS}q9iX-l9wpSOO)g#O7apVc|ob{=od)**hr zp0{VW!r5)$*!SWIY!C0wp5i^&bG#SZ$B#wr`r{?H0qh?<1)m;EMJhYwWAJKdHeSvghgwhKQ}KO_>G&u{5mM!R7Cuf@ zwW23qC;ITq@Y40=;&^_Y7{{*{6Zwr|CcjA(@jFD2ZxH2tlQ@mvDOU0a#KnBGSjV@B z8~IkTiSH8k^M}P2zDGRD9}&;zSdj(wNaX z)`z4A$t3E{Tjk$w(n0oxYMWfMd6(Q@i1kj7q?>oh&n6Fe#2!ZHqD&e@DK?~mbQrt> zMp^PLUs5>{gB}}3j^iww<(ud%?cq4$nmCTlI$FtOccLQ>X3I4_4;#aT^>P5ryaVL0 z5FNC`WUM{ILNKO`9a&eAz@bGB4u`TPw1-S62{FNpbI`F_9o>2gf84SiL)7Y5xY&vCO z!UD?}?1}ey*0V8`gJ_s?yz$=HPU~4JWg&>BEML6OyPkEW9K+5r;tk&|%#1f;%Wq>I zHL456T2=UwjnJ>HU5A)Du{xTxhp7YBz}MJypeQt42VImmYOS{`_S=lMnXC19qZrJM z=Y9RQE9H)Uw@Cv$$Vvl2W%cZ@U85|Dg8M(ss`~fes(eVa=#Mfs;#(3AsuqH6Q?2Mu zTx*4yV6@qddm#gHB zZ0u2&L(^EgBW`jsCPem-jKu4k5tA#{S)7QT)P)VwG@VV>G>?6#=|}8)O@H8VMDc}% zzM3ZS5t@$VQ#H-U*CD7JyGL$7#Lh$>dgK(Q#0=I&%wp-HkmZTFY^s>Y=85^NL@Z#H zqKGXO#ca64-B%6VhP(S%Gh>M#hw*Q*+*g-`$3$_Epa+e5-a#faX!x% z7xH=HBEB3>{z`EP9RC`Amsrc6fWv=AT*_YpeN|k>e-@VuOI#*8imSwl;zp4xZW2?) z&0@B=L-*>1&;q(yxL1opm857nNr{;%6)C}{@*h+h`nP2B_jo{vQqqIORhg@rFB?n6(w z9~QL@Jz)oW!cO#rhtLZiMi1D-&KHldOU2`Cy?BD{70qYa%D{5ATMKCms^Rx8u?Czod1Qs;8xKCy z$aW|yiH$`liwB1viL;pv&unK$7qNBXnr7H->pF2=6t_ddM2{{abHkwon^o^z@@Vzg z6$R9f*~xYcP`yn}ZL8SB#uhn2ZjrgWR6*emHGPYk5p9TWNsb5ar|KbEQ#c+?^TceT z7`kdTT`Jzt^iA=1P4{E<9M>^g==)_CIY{Glc`i}MLEVQl(@eYr2lYodsE^>F{tO58 z7dWWDVyON*nHh~@Hh znr(|!@@%nMo+B=iE5tgvQrsX{iQD7_VuM^Q9+qpwo0uEzmzP4i%OTkfn0enUN6Gba zfxJa7k+;ffd7C^%-VRCck}Kuia<#k%oOKODHs)3KR*sODsoAzel4)H?Q+^6RTNu#Z&{U6m^vInzZf!R1V8@8kf!gxA(1 z+Qs?eVt-~H9oWayC?0=^^m>>g}pOg0gmv_G`Ny?-qhfo z(cxZf<`0Xb&Az9(&-g$7COZC?J$72y zV-Gxx$Bv~Pn#L~sso!+jH7<{Bj}o!)*z22N%kbE@{{9}j_;>Z#ruNv^I3AlQd2FJ2 z%&%#Ys30mr;zCVVi@$05srXgXLo$J=>?Bh)O_Sp^9WSpW>Ui!tT1l0=;4vP?y3ymT zi+qx$%coeLe1;Xty{tsO$V%l)qQ87q43%$)5%OIzN{ts;Do2b}xnjJ^7jxAN5mIx- zDQccrt>%lX)k)%7wLsjUip0&TSlp^g#T{yq*sKSXb$suqV-jqIeB z$~1Mh9Iuwke083zQ7h!xYNcGI&c~j|DtV2%L|&`b$eYw!xl!5s=X$~=H`ROZ4fWpp zb`{Xxy98w}gfEs@rWvYAwSOK8pS_6uv$(e2d*8vnRP+Xj5}Vmy)MC0SuWjVLgAB8* z`UzK@?Y^H0yYIGP_ucMyao>2AyQ%xe-k^Q9pvVqT;JR;bYVP$R#0dx?EVTr4_2jK; z>Z7t6T}*9P<=fTCjWTMtt7XyF$!ICA1Ivej(2G7q?Kz0vfm3+BLfy`KsXN#JwSkR7 z7?-c^Wd-U!HcQ>l{A!yXTJ6pABByZ*9A(-Ik}*tm%nXlJct8EODvMdfhTo{{8ULor z;#~^$Br5w9D*H4l`wS}kA}ae5D*G}j`)2bhi;rkDtt{VU16qubP8r2Q)FUDy}uTst;opQ+{AyLj1typNp%@A4sw)hq8x zFU};e7QeD?_Ua4%#wW%lCdPLpdvA+{4}3D^=uBW}ow)12+XQ6Rf7k>(aZGqDrabMK z*OS1yc{;O9PZu`E(~ZsWbZ0?NPj-suShm{Jhh5`IVt0G`vBx|E*$bW&m_Q~>U@%Nz z2u$F(f2#@LTRBH(0*mX!J^$S%pw9bGo4`1jz<8Lz1em~Nn7|a6z*Lw(0Zd>zOkgHV zpb#c72PQBNCNLi+Py`bwh6w~=0*he+OJD*g|65I9{Lz}gk~(qUf42$9asO!(I1MIn zI!xdUn80$FzzUeaN|?YZn81ZFfs0@Qm%s$p!UQgb30w{nxC$n4HB8_}n7~aiftz6h z_PYMRYarMdX#zNG<)v5vANhC10<-GG1HYpQ#I~ywb=T2mmyuSY|0I0!&l8w4h~3k(X=bRlTA1SpK&5O zkzYg9349i_1nlWxSHOc^0nY=l_wBIvov`-@Veh+O@4H#Z^9Wn%d6Zr5d7N$VJjwQW zo@Q@&o?(CTJjcHCJkMKtUgBLnukZ}d>wKbTAD`}di!b-Q&9C>o&u{d6z;E+>$nW)h z(%=sHec_;p-xCgs_+5IpOE53rq%NeOh~L;KDC)st8wW)l;uDXFPsENDwiPCYgCl$l zuIb1qGoV{6T=BhjpWp~2si9*F>%{iv+udP9Wa<_>n_u3My2V4yFRmHg0y?M<{2iVA z9=#+`-%C~>v6mo(uixNCi&*MncW=>Go&MrUrem~D;Exmn|JFE?(4Fsq9rs{EG#$!j zX@hF?_c`7e_OZ7m`_bEqxAw;JF5Wnv>TSozd5__9y$QV3+lk-c?aX(0d+-OnJ^3Tv zUi>+4vhFwfU^I>fISbAF+4_F-bbY^h((X4bhCik*K@Y;Vzte;4gVFt2EUgPS?BLon z494OUoxaqa`qIpBU&8kjkGe0-t`iS8-&l{>m-aNjyd(9cN1I>Ve{o-0^WV~!yy;AM zGnn#bGOu?qi}8+RJ-nmXQ19_-oX;ES)Ju{;_F(rk10b;hQD54g@=EX{W; zJKooa<@=J@B42-2?Hj<(^`*1rz6`d?m&w-oMz|cvKV|Ot+V#A1dX!>jk6Yw zV{ab+ZoUZLfB$V?6jvu+`JEc(f5aEv1YO?_U$g!x!BLUvxiw(Kh&^ z?eIlA;EQ(utG)=I&;MG#m-576mP(CIJG z>95e~A$G2TGxmm;tulOUozd!F)hYf54iQ%R1r{nPJUqyAy~j~UwcnDu8(D~O?elM` zpndSeOTk#pVXO?l{^~fqK;^-o6fgeJ`ewxGR{Q;_Si|)KRcAUgixbfL#4JrkJK~p# z-&A{rbY7jRiD_@I`MYXYl+UavO4ij(`(rCuRmXMH1W<<_8DTwe7x#N z^agxXfap%V>rV6yyme00jxA5Z=YW}k6C*|!ri`vE)#%O!89iC1(VGo1`m*6hKQ_`B zz>YUkSiX_Qij7oOVx+T$#t?RnF@oJ-jAlEH9QKAWm3?63v(JoK>~o`#ePhgK2aE-} zrR`mugY~iJFZHqKCyG8UDi}UR;k1X> U-9p{0)`Q|((&9_TaYUK@KcuA_Q~&?~ diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens index e17e231..0707515 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,5 +1,3 @@ -T__30=30 -T__31=31 T__32=32 T__33=33 T__34=34 @@ -78,6 +76,8 @@ T__106=106 T__107=107 T__108=108 T__109=109 +T__110=110 +T__111=111 ARGS=4 ARITMETICA=5 BODY=6 @@ -96,91 +96,93 @@ LOGICA=18 MEMBRO_CLASSE=19 METHOD_CALL=20 METHOD_DECL=21 -NEWLINE=22 -NULL=23 -PARAMS=24 -PILHA=25 -STORE=26 -TIPO_REF=27 -VOID=28 -WS=29 -'('=30 -'()'=31 -')'=32 -'.class'=33 -'.end class'=34 -'.end method'=35 -'.field'=36 -'.limit locals'=37 -'.method'=38 -'.super'=39 -'/'=40 -':'=41 -'aconst_null'=42 -'aload'=43 -'aload_0'=44 -'aload_1'=45 -'aload_2'=46 -'aload_3'=47 -'areturn'=48 -'astore'=49 -'astore_0'=50 -'astore_1'=51 -'astore_2'=52 -'astore_3'=53 -'dup'=54 -'getfield'=55 -'getstatic'=56 -'goto'=57 -'iadd'=58 -'iand'=59 -'iconst_0'=60 -'iconst_1'=61 -'iconst_2'=62 -'iconst_3'=63 -'iconst_4'=64 -'iconst_5'=65 -'iconst_m1'=66 -'idiv'=67 -'if_icmpeq'=68 -'if_icmpge'=69 -'if_icmpgt'=70 -'if_icmple'=71 -'if_icmplt'=72 -'if_icmpne'=73 -'ifeq'=74 -'ifge'=75 -'ifgt'=76 -'ifle'=77 -'iflt'=78 -'ifne'=79 -'iinc'=80 -'iload'=81 -'iload_0'=82 -'iload_1'=83 -'iload_2'=84 -'iload_3'=85 -'imul'=86 -'ineg'=87 -'invokespecial'=88 -'invokestatic'=89 -'invokevirtual'=90 -'ior'=91 -'irem'=92 -'ireturn'=93 -'istore'=94 -'istore_0'=95 -'istore_1'=96 -'istore_2'=97 -'istore_3'=98 -'isub'=99 -'ixor'=100 -'ldc'=101 -'new'=102 -'nop'=103 -'pop'=104 -'pop2'=105 -'putfield'=106 -'putstatic'=107 -'return'=108 -'static'=109 +NEW=22 +NEWLINE=23 +NULL=24 +PARAMS=25 +PILHA=26 +RETURN=27 +STORE=28 +TIPO_REF=29 +VOID=30 +WS=31 +'('=32 +'()'=33 +')'=34 +'.class'=35 +'.end class'=36 +'.end method'=37 +'.field'=38 +'.limit locals'=39 +'.method'=40 +'.super'=41 +'/'=42 +':'=43 +'aconst_null'=44 +'aload'=45 +'aload_0'=46 +'aload_1'=47 +'aload_2'=48 +'aload_3'=49 +'areturn'=50 +'astore'=51 +'astore_0'=52 +'astore_1'=53 +'astore_2'=54 +'astore_3'=55 +'dup'=56 +'getfield'=57 +'getstatic'=58 +'goto'=59 +'iadd'=60 +'iand'=61 +'iconst_0'=62 +'iconst_1'=63 +'iconst_2'=64 +'iconst_3'=65 +'iconst_4'=66 +'iconst_5'=67 +'iconst_m1'=68 +'idiv'=69 +'if_icmpeq'=70 +'if_icmpge'=71 +'if_icmpgt'=72 +'if_icmple'=73 +'if_icmplt'=74 +'if_icmpne'=75 +'ifeq'=76 +'ifge'=77 +'ifgt'=78 +'ifle'=79 +'iflt'=80 +'ifne'=81 +'iinc'=82 +'iload'=83 +'iload_0'=84 +'iload_1'=85 +'iload_2'=86 +'iload_3'=87 +'imul'=88 +'ineg'=89 +'invokespecial'=90 +'invokestatic'=91 +'invokevirtual'=92 +'ior'=93 +'irem'=94 +'ireturn'=95 +'istore'=96 +'istore_0'=97 +'istore_1'=98 +'istore_2'=99 +'istore_3'=100 +'isub'=101 +'ixor'=102 +'ldc'=103 +'new'=104 +'nop'=105 +'pop'=106 +'pop2'=107 +'putfield'=108 +'putstatic'=109 +'return'=110 +'static'=111 diff --git a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java index 186cabe..965b79f 100755 --- a/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java +++ b/src/br/ufpb/iged/interpretador/bytecodeassembler/asm/BytecodeAssembler.java @@ -27,11 +27,10 @@ public class BytecodeAssembler extends AssemblerParser{ protected Map enderecosMap = new HashMap(); - public static Map labels = - new HashMap(); - protected List constantPool = new ArrayList(); + private SimboloMetodo metodoAtual; + public static int ip = 0; public static byte[] codigo; protected int tamMemoriaGlobalEstruturas = 0; @@ -149,33 +148,19 @@ public void escreverOperando(Token token) throws LabelException { escreverInteiro(codigo, ip, valor); } - - public void definirLabel(Token id) throws LabelException { - - SimboloLabel label = labels.get(id.getText()); - - if (label != null) - throw new LabelException("Label duplicado"); - - - label = new SimboloLabel(id.getText(), ip); - - labels.put(id.getText(), label); - } - - protected int obterEndereco(String id) throws LabelException { + protected int obterEndereco(String id) throws LabelException { - SimboloLabel label = labels.get(id); + SimboloLabel label = metodoAtual.getLabels().get(id); - if (label == null) + if (label == null) - throw new LabelException("O label referido năo existe"); + throw new LabelException("O label referido năo existe"); - return label.address; + return label.endereco; - } + } protected static void verificarAumentoTamanhoMemoria(int indice) { @@ -261,4 +246,12 @@ public void setConstantPool(List constantPool) { this.constantPool = constantPool; } + public SimboloMetodo getMetodoAtual() { + return metodoAtual; + } + + public void setMetodoAtual(SimboloMetodo metodoAtual) { + this.metodoAtual = metodoAtual; + } + } diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 6afc841..b8eac0c 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -9,6 +9,8 @@ tokens { MEMBRO_CLASSE; FIELD_DECL; EXTENDS; + RETURN; + NEW; ARITMETICA; LOAD; STORE; @@ -43,7 +45,6 @@ tokens { public abstract void escreverOpcode(Token opc, Token op) throws LabelException; public abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; public abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - public abstract void definirLabel(Token id) throws LabelException; } @@ -70,7 +71,7 @@ comando: ( manipulacaoObjetos | retorno | 'nop' )? NEWLINE; - + definicaoClasse : '.class' ID NEWLINE (superClasse NEWLINE)? (membroClasse NEWLINE) + -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) @@ -97,7 +98,13 @@ parametros -> ^(PARAMS $a)+ ; -retorno : 'areturn' | 'ireturn' | 'return'; +retorno : + ( a = 'areturn' + | a = 'ireturn' + | a = 'return' + ) + -> ^(RETURN $a) + ; manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) | a = 'getstatic' b = campo tipo -> ^('getstatic' $b tipo) @@ -109,7 +116,7 @@ manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) -> ^('invokestatic' $c $d) | a = 'invokevirtual' c = classe '/' d = chamadaMetodo -> ^('invokevirtual' $c $d) - | a = 'new'c = classe -> ^('new' $c) + | a = 'new'c = classe -> ^(NEW $c) ; @@ -208,19 +215,6 @@ classe returns [List classe] } : (cls += ID '/')* (cls += ID) {$classe = $cls;} ; - -/*chamadaMetodo returns [String nome, int qtdParametros, String tipoRetorno] - @init { - $nome = ""; - $qtdParametros = 0; - $tipoRetorno = ""; - } - : (n = INIT | n = ID) argumentos tip = tipo { - $nome = $n.text; - $qtdParametros = $qtd.qtdParams; - $tipoRetorno = $tip.text; - } - ;*/ chamadaMetodo : (n = INIT | n = ID) (argumentos | '(' argumentos ')') tip = tipo diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 9febac0..6d1d47d 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -21,6 +21,7 @@ options { @members { TabelaSimbolos tabelaSimbolos; Escopo escopoAtual; + int contador; public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { this(input); this.tabelaSimbolos = tabelaSimbolos; @@ -34,6 +35,11 @@ topdown : entraNoCorpoMetodo | entraNaClasse | parametros | declaracaoVariavel + | field + | invoke + | nenhumoperando + | umoperando + | label ; bottomup : saiDoCorpoMetodo @@ -98,6 +104,7 @@ entraNoMetodo $ID.simbolo = metodo; escopoAtual.definir(metodo); escopoAtual = metodo; + contador = 0; } ; @@ -147,4 +154,42 @@ saiDoConstrutor System.out.println("Saindo do construtor: "+escopoAtual); escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope } + ; + +field : ^((a = 'getfield' | a = 'getstatic' | a = 'putfield' | a = 'putstatic') . . . .) + { + if ($a.equals("getstatic") || $a.equals("putstatic")) + contador += 9; + else + contador += 5; + } + ; + +invoke : ^(('invokespecial' | 'invokestatic' | 'invokevirtual') . ^(METHOD_CALL . ^(ARGS .) .)) + { + contador += 9; + } + ; + +nenhumoperando + : ^((RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA) . ) + { + contador++; + } + ; + +umoperando + : ^((DESVIO | LOAD | STORE) . .) + { + contador += 5; + } + ; +label + : ^(LABEL id = .) + { + System.out.println("Definindo label "+id.getText()+" no endereço "+contador); + SimboloMetodo metodo = (SimboloMetodo) escopoAtual.obterEscopoEnvolvente(); + metodo.definirLabel($id.token, contador); + } + ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index ded34a0..c0505ea 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -123,24 +123,11 @@ topdown | entraNoMetodo | entraNoConstrutor | declaracaoVariavel - | getfield - | getstatic - | putfield - | putstatic - | invokespecial - | invokestatic - | invokevirtual + | field + | invoke | novaClasse - | aritmetica - | load - | loadint - | store - | storeint - | desvio - | logica - | pilha - | label - | retorno + | nenhumoperando + | umoperando ; bottomup @@ -184,7 +171,7 @@ entraNoConstrutor escopoAtual = (SimboloMetodo)$INIT.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; - BytecodeAssembler.labels = new HashMap(); + assembler.setMetodoAtual((SimboloMetodo)escopoAtual); } ; @@ -195,7 +182,7 @@ entraNoMetodo escopoAtual = (SimboloMetodo)$ID.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; - BytecodeAssembler.labels = new HashMap(); + assembler.setMetodoAtual((SimboloMetodo)escopoAtual); } ; @@ -216,135 +203,42 @@ saiDoConstrutor ((SimboloMetodo)escopoAtual).setTamanhoMemoriaLocal(assembler.obterTamanhoMemoriaCodigo()); } ; - -getfield - : ^('getfield' classe = . . campo = . tipo = .) - { - acessarCampo("getfield", $classe.getText(), $campo.getText()); - } - ; - -getstatic - : ^('getstatic' classe = . . campo = . tipo = .) - { - acessarCampo("getstatic", $classe.getText(), $campo.getText()); - } - ; - -putfield - : ^('putfield' classe = . . campo = . tipo = .) - { - acessarCampo("putfield", $classe.getText(), $campo.getText()); - } - ; - -putstatic - : ^('putstatic' classe = . . campo = . tipo = .) - { - acessarCampo("putstatic", $classe.getText(), $campo.getText()); - } - ; - -invokespecial - : ^('invokespecial' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) .)) - { - System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); - chamarMetodo("invokespecial", $classe.getText(), $nome.getText(), $a.getText(), ""); - } - ; - -invokestatic - : ^('invokestatic' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) - { - System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); - chamarMetodo("invokestatic", $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); - } - ; - -invokevirtual - : ^('invokevirtual' classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) - { - System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); - chamarMetodo("invokevirtual", $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); - } - ; + +field : ^(('getfield' | 'getstatic' | 'putfield' | 'putstatic') classe = . . campo = . tipo = .) + { + acessarCampo("getfield", $classe.getText(), $campo.getText()); + } + ; + +invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') . classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) + { + if ($op.equals("invokespecial")) { + System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); + chamarMetodo($op.getText(), $classe.getText(), $nome.getText(), $a.getText(), ""); + } else { + System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); + chamarMetodo($op.getText(), $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); + } + } + ; novaClasse - : ^('new' classe = .) + : ^(NEW . classe = .) { newClass($classe.getText()); } ; - -aritmetica - : ^(ARITMETICA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -load - : ^(LOAD operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; -loadint - : ^(LOAD operacao = . operando = .) - { - assembler.escreverOpcode($operacao.token, $operando.token); - } - ; - -store - : ^(STORE operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -storeint - : ^(STORE operacao = . operando = .) - { - assembler.escreverOpcode($operacao.token, $operando.token); - } - ; - -desvio - : ^(DESVIO operacao = . operando = .) - { - assembler.escreverOpcode($operacao.token, $operando.token); - } - ; - -logica - : ^(LOGICA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -pilha - : ^(PILHA operacao = .) - { - assembler.escreverOpcode($operacao.getText()); - } - ; - -label - : ^(LABEL operacao = .) - { - assembler.definirLabel($operacao.token); - } - ; - -retorno - : ( operacao = 'ireturn' - | operacao = 'areturn' - | operacao = 'return' - ) +nenhumoperando + : ^((RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA) operacao = . ) { - assembler.escreverOpcode($operacao.getText()); - } - ; \ No newline at end of file + assembler.escreverOpcode($operacao.getText()); + } + ; + +umoperando + : ^((DESVIO | LOAD | STORE) operacao = . operando = .) + { + assembler.escreverOpcode($operacao.token, $operando.token); + } + ; \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index e17e231..0707515 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,5 +1,3 @@ -T__30=30 -T__31=31 T__32=32 T__33=33 T__34=34 @@ -78,6 +76,8 @@ T__106=106 T__107=107 T__108=108 T__109=109 +T__110=110 +T__111=111 ARGS=4 ARITMETICA=5 BODY=6 @@ -96,91 +96,93 @@ LOGICA=18 MEMBRO_CLASSE=19 METHOD_CALL=20 METHOD_DECL=21 -NEWLINE=22 -NULL=23 -PARAMS=24 -PILHA=25 -STORE=26 -TIPO_REF=27 -VOID=28 -WS=29 -'('=30 -'()'=31 -')'=32 -'.class'=33 -'.end class'=34 -'.end method'=35 -'.field'=36 -'.limit locals'=37 -'.method'=38 -'.super'=39 -'/'=40 -':'=41 -'aconst_null'=42 -'aload'=43 -'aload_0'=44 -'aload_1'=45 -'aload_2'=46 -'aload_3'=47 -'areturn'=48 -'astore'=49 -'astore_0'=50 -'astore_1'=51 -'astore_2'=52 -'astore_3'=53 -'dup'=54 -'getfield'=55 -'getstatic'=56 -'goto'=57 -'iadd'=58 -'iand'=59 -'iconst_0'=60 -'iconst_1'=61 -'iconst_2'=62 -'iconst_3'=63 -'iconst_4'=64 -'iconst_5'=65 -'iconst_m1'=66 -'idiv'=67 -'if_icmpeq'=68 -'if_icmpge'=69 -'if_icmpgt'=70 -'if_icmple'=71 -'if_icmplt'=72 -'if_icmpne'=73 -'ifeq'=74 -'ifge'=75 -'ifgt'=76 -'ifle'=77 -'iflt'=78 -'ifne'=79 -'iinc'=80 -'iload'=81 -'iload_0'=82 -'iload_1'=83 -'iload_2'=84 -'iload_3'=85 -'imul'=86 -'ineg'=87 -'invokespecial'=88 -'invokestatic'=89 -'invokevirtual'=90 -'ior'=91 -'irem'=92 -'ireturn'=93 -'istore'=94 -'istore_0'=95 -'istore_1'=96 -'istore_2'=97 -'istore_3'=98 -'isub'=99 -'ixor'=100 -'ldc'=101 -'new'=102 -'nop'=103 -'pop'=104 -'pop2'=105 -'putfield'=106 -'putstatic'=107 -'return'=108 -'static'=109 +NEW=22 +NEWLINE=23 +NULL=24 +PARAMS=25 +PILHA=26 +RETURN=27 +STORE=28 +TIPO_REF=29 +VOID=30 +WS=31 +'('=32 +'()'=33 +')'=34 +'.class'=35 +'.end class'=36 +'.end method'=37 +'.field'=38 +'.limit locals'=39 +'.method'=40 +'.super'=41 +'/'=42 +':'=43 +'aconst_null'=44 +'aload'=45 +'aload_0'=46 +'aload_1'=47 +'aload_2'=48 +'aload_3'=49 +'areturn'=50 +'astore'=51 +'astore_0'=52 +'astore_1'=53 +'astore_2'=54 +'astore_3'=55 +'dup'=56 +'getfield'=57 +'getstatic'=58 +'goto'=59 +'iadd'=60 +'iand'=61 +'iconst_0'=62 +'iconst_1'=63 +'iconst_2'=64 +'iconst_3'=65 +'iconst_4'=66 +'iconst_5'=67 +'iconst_m1'=68 +'idiv'=69 +'if_icmpeq'=70 +'if_icmpge'=71 +'if_icmpgt'=72 +'if_icmple'=73 +'if_icmplt'=74 +'if_icmpne'=75 +'ifeq'=76 +'ifge'=77 +'ifgt'=78 +'ifle'=79 +'iflt'=80 +'ifne'=81 +'iinc'=82 +'iload'=83 +'iload_0'=84 +'iload_1'=85 +'iload_2'=86 +'iload_3'=87 +'imul'=88 +'ineg'=89 +'invokespecial'=90 +'invokestatic'=91 +'invokevirtual'=92 +'ior'=93 +'irem'=94 +'ireturn'=95 +'istore'=96 +'istore_0'=97 +'istore_1'=98 +'istore_2'=99 +'istore_3'=100 +'isub'=101 +'ixor'=102 +'ldc'=103 +'new'=104 +'nop'=105 +'pop'=106 +'pop2'=107 +'putfield'=108 +'putstatic'=109 +'return'=110 +'static'=111 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index ef7ba10..6082ccd 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-17 19:14:28 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-18 12:35:13 package br.ufpb.iged.interpretador.parser; @@ -11,8 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__30=30; - public static final int T__31=31; public static final int T__32=32; public static final int T__33=33; public static final int T__34=34; @@ -91,6 +89,8 @@ public class AssemblerLexer extends Lexer { public static final int T__107=107; public static final int T__108=108; public static final int T__109=109; + public static final int T__110=110; + public static final int T__111=111; public static final int ARGS=4; public static final int ARITMETICA=5; public static final int BODY=6; @@ -109,14 +109,16 @@ public class AssemblerLexer extends Lexer { public static final int MEMBRO_CLASSE=19; public static final int METHOD_CALL=20; public static final int METHOD_DECL=21; - public static final int NEWLINE=22; - public static final int NULL=23; - public static final int PARAMS=24; - public static final int PILHA=25; - public static final int STORE=26; - public static final int TIPO_REF=27; - public static final int VOID=28; - public static final int WS=29; + public static final int NEW=22; + public static final int NEWLINE=23; + public static final int NULL=24; + public static final int PARAMS=25; + public static final int PILHA=26; + public static final int RETURN=27; + public static final int STORE=28; + public static final int TIPO_REF=29; + public static final int VOID=30; + public static final int WS=31; // delegates // delegators @@ -133,59 +135,15 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__30" - public final void mT__30() throws RecognitionException { - try { - int _type = T__30; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' - { - match('('); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__30" - - // $ANTLR start "T__31" - public final void mT__31() throws RecognitionException { - try { - int _type = T__31; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' - { - match("()"); - - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__31" - // $ANTLR start "T__32" public final void mT__32() throws RecognitionException { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' { - match(')'); + match('('); } @@ -203,10 +161,10 @@ public final void mT__33() throws RecognitionException { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' { - match(".class"); + match("()"); @@ -226,12 +184,10 @@ public final void mT__34() throws RecognitionException { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' { - match(".end class"); - - + match(')'); } @@ -249,10 +205,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' { - match(".end method"); + match(".class"); @@ -272,10 +228,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' { - match(".field"); + match(".end class"); @@ -295,10 +251,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.limit locals' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.limit locals' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' { - match(".limit locals"); + match(".end method"); @@ -318,10 +274,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' { - match(".method"); + match(".field"); @@ -341,10 +297,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '.super' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '.super' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.limit locals' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.limit locals' { - match(".super"); + match(".limit locals"); @@ -364,10 +320,12 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( '/' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.method' { - match('/'); + match(".method"); + + } @@ -385,10 +343,12 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( ':' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '.super' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '.super' { - match(':'); + match(".super"); + + } @@ -406,12 +366,10 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( '/' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: '/' { - match("aconst_null"); - - + match('/'); } @@ -429,12 +387,10 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( ':' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: ':' { - match("aload"); - - + match(':'); } @@ -452,10 +408,10 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aconst_null' { - match("aload_0"); + match("aconst_null"); @@ -475,10 +431,10 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload' { - match("aload_1"); + match("aload"); @@ -498,10 +454,10 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_0' { - match("aload_2"); + match("aload_0"); @@ -521,10 +477,10 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_1' { - match("aload_3"); + match("aload_1"); @@ -544,10 +500,10 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'areturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_2' { - match("areturn"); + match("aload_2"); @@ -567,10 +523,10 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'aload_3' { - match("astore"); + match("aload_3"); @@ -590,10 +546,10 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'areturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'areturn' { - match("astore_0"); + match("areturn"); @@ -613,10 +569,10 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore' { - match("astore_1"); + match("astore"); @@ -636,10 +592,10 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_0' { - match("astore_2"); + match("astore_0"); @@ -659,10 +615,10 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_1' { - match("astore_3"); + match("astore_1"); @@ -682,10 +638,10 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'dup' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_2' { - match("dup"); + match("astore_2"); @@ -705,10 +661,10 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'astore_3' { - match("getfield"); + match("astore_3"); @@ -728,10 +684,10 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'getstatic' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'getstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'dup' { - match("getstatic"); + match("dup"); @@ -751,10 +707,10 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'goto' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'goto' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'getfield' { - match("goto"); + match("getfield"); @@ -774,10 +730,10 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iadd' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'getstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'getstatic' { - match("iadd"); + match("getstatic"); @@ -797,10 +753,10 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iand' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'goto' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'goto' { - match("iand"); + match("goto"); @@ -820,10 +776,10 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iadd' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iadd' { - match("iconst_0"); + match("iadd"); @@ -843,10 +799,10 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iand' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iand' { - match("iconst_1"); + match("iand"); @@ -866,10 +822,10 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_0' { - match("iconst_2"); + match("iconst_0"); @@ -889,10 +845,10 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_1' { - match("iconst_3"); + match("iconst_1"); @@ -912,10 +868,10 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_2' { - match("iconst_4"); + match("iconst_2"); @@ -935,10 +891,10 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_3' { - match("iconst_5"); + match("iconst_3"); @@ -958,10 +914,10 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_4' { - match("iconst_m1"); + match("iconst_4"); @@ -981,10 +937,10 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'idiv' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iconst_5' { - match("idiv"); + match("iconst_5"); @@ -1004,10 +960,10 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iconst_m1' { - match("if_icmpeq"); + match("iconst_m1"); @@ -1027,10 +983,10 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmpge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'idiv' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'idiv' { - match("if_icmpge"); + match("idiv"); @@ -1050,10 +1006,10 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmpgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpeq' { - match("if_icmpgt"); + match("if_icmpeq"); @@ -1073,10 +1029,10 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmple' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmpge' { - match("if_icmple"); + match("if_icmpge"); @@ -1096,10 +1052,10 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'if_icmplt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmpgt' { - match("if_icmplt"); + match("if_icmpgt"); @@ -1119,10 +1075,10 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'if_icmpne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmple' { - match("if_icmpne"); + match("if_icmple"); @@ -1142,10 +1098,10 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'if_icmplt' { - match("ifeq"); + match("if_icmplt"); @@ -1165,10 +1121,10 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'if_icmpne' { - match("ifge"); + match("if_icmpne"); @@ -1188,10 +1144,10 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ifgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifeq' { - match("ifgt"); + match("ifeq"); @@ -1211,10 +1167,10 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifle' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifle' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifge' { - match("ifle"); + match("ifge"); @@ -1234,10 +1190,10 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iflt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iflt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ifgt' { - match("iflt"); + match("ifgt"); @@ -1257,10 +1213,10 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ifne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ifne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifle' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifle' { - match("ifne"); + match("ifle"); @@ -1280,10 +1236,10 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iinc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iflt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iflt' { - match("iinc"); + match("iflt"); @@ -1303,10 +1259,10 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ifne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ifne' { - match("iload"); + match("ifne"); @@ -1326,10 +1282,10 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iinc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iinc' { - match("iload_0"); + match("iinc"); @@ -1349,10 +1305,10 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload' { - match("iload_1"); + match("iload"); @@ -1372,10 +1328,10 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_0' { - match("iload_2"); + match("iload_0"); @@ -1395,10 +1351,10 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_1' { - match("iload_3"); + match("iload_1"); @@ -1418,10 +1374,10 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'imul' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'iload_2' { - match("imul"); + match("iload_2"); @@ -1441,10 +1397,10 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ineg' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'iload_3' { - match("ineg"); + match("iload_3"); @@ -1464,10 +1420,10 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'imul' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'imul' { - match("invokespecial"); + match("imul"); @@ -1487,10 +1443,10 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'invokestatic' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'invokestatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ineg' { - match("invokestatic"); + match("ineg"); @@ -1510,10 +1466,10 @@ public final void mT__90() throws RecognitionException { try { int _type = T__90; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'invokevirtual' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'invokevirtual' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'invokespecial' { - match("invokevirtual"); + match("invokespecial"); @@ -1533,10 +1489,10 @@ public final void mT__91() throws RecognitionException { try { int _type = T__91; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'ior' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'invokestatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'invokestatic' { - match("ior"); + match("invokestatic"); @@ -1556,10 +1512,10 @@ public final void mT__92() throws RecognitionException { try { int _type = T__92; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'irem' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'invokevirtual' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'invokevirtual' { - match("irem"); + match("invokevirtual"); @@ -1579,10 +1535,10 @@ public final void mT__93() throws RecognitionException { try { int _type = T__93; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'ireturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'ior' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'ior' { - match("ireturn"); + match("ior"); @@ -1602,10 +1558,10 @@ public final void mT__94() throws RecognitionException { try { int _type = T__94; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'irem' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'irem' { - match("istore"); + match("irem"); @@ -1625,10 +1581,10 @@ public final void mT__95() throws RecognitionException { try { int _type = T__95; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'ireturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'ireturn' { - match("istore_0"); + match("ireturn"); @@ -1646,7 +1602,53 @@ public final void mT__95() throws RecognitionException { // $ANTLR start "T__96" public final void mT__96() throws RecognitionException { try { - int _type = T__96; + int _type = T__96; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore' + { + match("istore"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__96" + + // $ANTLR start "T__97" + public final void mT__97() throws RecognitionException { + try { + int _type = T__97; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'istore_0' + { + match("istore_0"); + + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "T__97" + + // $ANTLR start "T__98" + public final void mT__98() throws RecognitionException { + try { + int _type = T__98; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'istore_1' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'istore_1' @@ -1664,12 +1666,12 @@ public final void mT__96() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__96" + // $ANTLR end "T__98" - // $ANTLR start "T__97" - public final void mT__97() throws RecognitionException { + // $ANTLR start "T__99" + public final void mT__99() throws RecognitionException { try { - int _type = T__97; + int _type = T__99; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'istore_2' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'istore_2' @@ -1687,15 +1689,15 @@ public final void mT__97() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__97" + // $ANTLR end "T__99" - // $ANTLR start "T__98" - public final void mT__98() throws RecognitionException { + // $ANTLR start "T__100" + public final void mT__100() throws RecognitionException { try { - int _type = T__98; + int _type = T__100; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:7: ( 'istore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:9: 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: ( 'istore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:10: 'istore_3' { match("istore_3"); @@ -1710,15 +1712,15 @@ public final void mT__98() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__98" + // $ANTLR end "T__100" - // $ANTLR start "T__99" - public final void mT__99() throws RecognitionException { + // $ANTLR start "T__101" + public final void mT__101() throws RecognitionException { try { - int _type = T__99; + int _type = T__101; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: ( 'isub' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:9: 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: ( 'isub' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:10: 'isub' { match("isub"); @@ -1733,12 +1735,12 @@ public final void mT__99() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__99" + // $ANTLR end "T__101" - // $ANTLR start "T__100" - public final void mT__100() throws RecognitionException { + // $ANTLR start "T__102" + public final void mT__102() throws RecognitionException { try { - int _type = T__100; + int _type = T__102; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: ( 'ixor' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:10: 'ixor' @@ -1756,12 +1758,12 @@ public final void mT__100() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__100" + // $ANTLR end "T__102" - // $ANTLR start "T__101" - public final void mT__101() throws RecognitionException { + // $ANTLR start "T__103" + public final void mT__103() throws RecognitionException { try { - int _type = T__101; + int _type = T__103; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: ( 'ldc' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:10: 'ldc' @@ -1779,12 +1781,12 @@ public final void mT__101() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__101" + // $ANTLR end "T__103" - // $ANTLR start "T__102" - public final void mT__102() throws RecognitionException { + // $ANTLR start "T__104" + public final void mT__104() throws RecognitionException { try { - int _type = T__102; + int _type = T__104; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: ( 'new' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:10: 'new' @@ -1802,12 +1804,12 @@ public final void mT__102() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__102" + // $ANTLR end "T__104" - // $ANTLR start "T__103" - public final void mT__103() throws RecognitionException { + // $ANTLR start "T__105" + public final void mT__105() throws RecognitionException { try { - int _type = T__103; + int _type = T__105; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: ( 'nop' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: 'nop' @@ -1825,12 +1827,12 @@ public final void mT__103() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__103" + // $ANTLR end "T__105" - // $ANTLR start "T__104" - public final void mT__104() throws RecognitionException { + // $ANTLR start "T__106" + public final void mT__106() throws RecognitionException { try { - int _type = T__104; + int _type = T__106; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: ( 'pop' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:10: 'pop' @@ -1848,12 +1850,12 @@ public final void mT__104() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__104" + // $ANTLR end "T__106" - // $ANTLR start "T__105" - public final void mT__105() throws RecognitionException { + // $ANTLR start "T__107" + public final void mT__107() throws RecognitionException { try { - int _type = T__105; + int _type = T__107; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: ( 'pop2' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:10: 'pop2' @@ -1871,12 +1873,12 @@ public final void mT__105() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__105" + // $ANTLR end "T__107" - // $ANTLR start "T__106" - public final void mT__106() throws RecognitionException { + // $ANTLR start "T__108" + public final void mT__108() throws RecognitionException { try { - int _type = T__106; + int _type = T__108; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: ( 'putfield' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:10: 'putfield' @@ -1894,12 +1896,12 @@ public final void mT__106() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__106" + // $ANTLR end "T__108" - // $ANTLR start "T__107" - public final void mT__107() throws RecognitionException { + // $ANTLR start "T__109" + public final void mT__109() throws RecognitionException { try { - int _type = T__107; + int _type = T__109; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: ( 'putstatic' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:10: 'putstatic' @@ -1917,12 +1919,12 @@ public final void mT__107() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__107" + // $ANTLR end "T__109" - // $ANTLR start "T__108" - public final void mT__108() throws RecognitionException { + // $ANTLR start "T__110" + public final void mT__110() throws RecognitionException { try { - int _type = T__108; + int _type = T__110; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: ( 'return' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:10: 'return' @@ -1940,12 +1942,12 @@ public final void mT__108() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__108" + // $ANTLR end "T__110" - // $ANTLR start "T__109" - public final void mT__109() throws RecognitionException { + // $ANTLR start "T__111" + public final void mT__111() throws RecognitionException { try { - int _type = T__109; + int _type = T__111; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: ( 'static' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:10: 'static' @@ -1963,15 +1965,15 @@ public final void mT__109() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__109" + // $ANTLR end "T__111" // $ANTLR start "INIT" public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:249:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:249:8: '' { match(""); @@ -1993,8 +1995,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:251:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:251:7: 'I' { match('I'); @@ -2014,8 +2016,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:253:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:253:8: 'V' { match('V'); @@ -2035,10 +2037,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -2057,7 +2059,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:9: 'null' { match("null"); @@ -2066,7 +2068,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:18: 'NULL' { match("NULL"); @@ -2094,10 +2096,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -2106,7 +2108,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:11: '-' { match('-'); @@ -2116,7 +2118,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:263:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2171,15 +2173,15 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:9: ( 'L' ID ( '/' ID )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:11: 'L' ID ( '/' ID )* { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:18: ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:18: ( '/' ID )* loop4: do { int alt4=2; @@ -2192,7 +2194,7 @@ public final void mTIPO_REF() throws RecognitionException { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:19: '/' ID { match('/'); @@ -2224,8 +2226,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2237,7 +2239,7 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* loop5: do { int alt5=2; @@ -2287,8 +2289,8 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:271:9: ( '\\n' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:271:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:9: ( '\\n' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:11: '\\n' { match('\n'); @@ -2308,8 +2310,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:273:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:273:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2335,652 +2337,652 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) int alt6=89; alt6 = dfa6.predict(input); switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__30 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__32 { - mT__30(); + mT__32(); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__31 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__33 { - mT__31(); + mT__33(); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__32 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__34 { - mT__32(); + mT__34(); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__33 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__35 { - mT__33(); + mT__35(); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__34 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__36 { - mT__34(); + mT__36(); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__35 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__37 { - mT__35(); + mT__37(); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__36 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__38 { - mT__36(); + mT__38(); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__37 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__39 { - mT__37(); + mT__39(); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__38 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__40 { - mT__38(); + mT__40(); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__39 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__41 { - mT__39(); + mT__41(); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__40 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__42 { - mT__40(); + mT__42(); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__41 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__43 { - mT__41(); + mT__43(); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__42 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__44 { - mT__42(); + mT__44(); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__43 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__45 { - mT__43(); + mT__45(); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__44 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__46 { - mT__44(); + mT__46(); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__45 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__47 { - mT__45(); + mT__47(); } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__46 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__48 { - mT__46(); + mT__48(); } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__47 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__49 { - mT__47(); + mT__49(); } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__48 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__50 { - mT__48(); + mT__50(); } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__49 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__51 { - mT__49(); + mT__51(); } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__50 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__52 { - mT__50(); + mT__52(); } break; case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__51 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__53 { - mT__51(); + mT__53(); } break; case 23 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__52 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__54 { - mT__52(); + mT__54(); } break; case 24 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__53 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__55 { - mT__53(); + mT__55(); } break; case 25 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__54 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__56 { - mT__54(); + mT__56(); } break; case 26 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__55 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__57 { - mT__55(); + mT__57(); } break; case 27 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__56 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__58 { - mT__56(); + mT__58(); } break; case 28 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__57 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__59 { - mT__57(); + mT__59(); } break; case 29 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__58 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__60 { - mT__58(); + mT__60(); } break; case 30 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__59 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__61 { - mT__59(); + mT__61(); } break; case 31 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__60 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__62 { - mT__60(); + mT__62(); } break; case 32 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__61 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__63 { - mT__61(); + mT__63(); } break; case 33 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__62 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__64 { - mT__62(); + mT__64(); } break; case 34 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__63 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__65 { - mT__63(); + mT__65(); } break; case 35 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__64 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__66 { - mT__64(); + mT__66(); } break; case 36 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__65 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__67 { - mT__65(); + mT__67(); } break; case 37 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__66 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__68 { - mT__66(); + mT__68(); } break; case 38 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__67 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__69 { - mT__67(); + mT__69(); } break; case 39 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__68 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__70 { - mT__68(); + mT__70(); } break; case 40 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__69 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__71 { - mT__69(); + mT__71(); } break; case 41 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__70 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__72 { - mT__70(); + mT__72(); } break; case 42 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__71 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__73 { - mT__71(); + mT__73(); } break; case 43 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__72 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__74 { - mT__72(); + mT__74(); } break; case 44 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__73 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__75 { - mT__73(); + mT__75(); } break; case 45 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__74 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__76 { - mT__74(); + mT__76(); } break; case 46 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__75 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__77 { - mT__75(); + mT__77(); } break; case 47 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__76 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__78 { - mT__76(); + mT__78(); } break; case 48 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__77 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__79 { - mT__77(); + mT__79(); } break; case 49 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__78 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__80 { - mT__78(); + mT__80(); } break; case 50 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__79 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__81 { - mT__79(); + mT__81(); } break; case 51 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__80 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__82 { - mT__80(); + mT__82(); } break; case 52 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__81 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__83 { - mT__81(); + mT__83(); } break; case 53 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__82 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__84 { - mT__82(); + mT__84(); } break; case 54 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__83 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__85 { - mT__83(); + mT__85(); } break; case 55 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__84 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__86 { - mT__84(); + mT__86(); } break; case 56 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__85 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__87 { - mT__85(); + mT__87(); } break; case 57 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__86 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__88 { - mT__86(); + mT__88(); } break; case 58 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__87 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__89 { - mT__87(); + mT__89(); } break; case 59 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__88 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__90 { - mT__88(); + mT__90(); } break; case 60 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__89 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__91 { - mT__89(); + mT__91(); } break; case 61 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__90 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__92 { - mT__90(); + mT__92(); } break; case 62 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__91 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__93 { - mT__91(); + mT__93(); } break; case 63 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__92 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__94 { - mT__92(); + mT__94(); } break; case 64 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__93 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__95 { - mT__93(); + mT__95(); } break; case 65 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__94 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__96 { - mT__94(); + mT__96(); } break; case 66 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__95 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__97 { - mT__95(); + mT__97(); } break; case 67 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__96 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__98 { - mT__96(); + mT__98(); } break; case 68 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__97 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__99 { - mT__97(); + mT__99(); } break; case 69 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__98 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__100 { - mT__98(); + mT__100(); } break; case 70 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:424: T__99 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:425: T__101 { - mT__99(); + mT__101(); } break; case 71 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:430: T__100 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:432: T__102 { - mT__100(); + mT__102(); } break; case 72 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:437: T__101 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:439: T__103 { - mT__101(); + mT__103(); } break; case 73 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:444: T__102 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:446: T__104 { - mT__102(); + mT__104(); } break; case 74 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:451: T__103 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:453: T__105 { - mT__103(); + mT__105(); } break; case 75 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:458: T__104 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:460: T__106 { - mT__104(); + mT__106(); } break; case 76 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:465: T__105 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:467: T__107 { - mT__105(); + mT__107(); } break; case 77 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:472: T__106 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:474: T__108 { - mT__106(); + mT__108(); } break; case 78 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:479: T__107 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:481: T__109 { - mT__107(); + mT__109(); } break; case 79 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:486: T__108 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:488: T__110 { - mT__108(); + mT__110(); } break; case 80 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:493: T__109 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:495: T__111 { - mT__109(); + mT__111(); } break; case 81 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:500: INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:502: INIT { mINIT(); @@ -2988,7 +2990,7 @@ public void mTokens() throws RecognitionException { } break; case 82 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:505: INT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:507: INT { mINT(); @@ -2996,7 +2998,7 @@ public void mTokens() throws RecognitionException { } break; case 83 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:509: VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:511: VOID { mVOID(); @@ -3004,7 +3006,7 @@ public void mTokens() throws RecognitionException { } break; case 84 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:514: NULL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:516: NULL { mNULL(); @@ -3012,7 +3014,7 @@ public void mTokens() throws RecognitionException { } break; case 85 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:519: INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:521: INTEIRO { mINTEIRO(); @@ -3020,7 +3022,7 @@ public void mTokens() throws RecognitionException { } break; case 86 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:527: TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:529: TIPO_REF { mTIPO_REF(); @@ -3028,7 +3030,7 @@ public void mTokens() throws RecognitionException { } break; case 87 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:536: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:538: ID { mID(); @@ -3036,7 +3038,7 @@ public void mTokens() throws RecognitionException { } break; case 88 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:539: NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:541: NEWLINE { mNEWLINE(); @@ -3044,7 +3046,7 @@ public void mTokens() throws RecognitionException { } break; case 89 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:547: WS + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:549: WS { mWS(); @@ -3453,7 +3455,7 @@ public DFA6(BaseRecognizer recognizer) { this.transition = DFA6_transition; } public String getDescription() { - return "1:1: Tokens : ( T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; + return "1:1: Tokens : ( T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS );"; } } diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 268e916..fb0414b 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-17 19:14:27 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-18 12:35:12 package br.ufpb.iged.interpretador.parser; @@ -18,12 +18,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public abstract class AssemblerParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__30=30; - public static final int T__31=31; public static final int T__32=32; public static final int T__33=33; public static final int T__34=34; @@ -102,6 +100,8 @@ public abstract class AssemblerParser extends Parser { public static final int T__107=107; public static final int T__108=108; public static final int T__109=109; + public static final int T__110=110; + public static final int T__111=111; public static final int ARGS=4; public static final int ARITMETICA=5; public static final int BODY=6; @@ -120,14 +120,16 @@ public abstract class AssemblerParser extends Parser { public static final int MEMBRO_CLASSE=19; public static final int METHOD_CALL=20; public static final int METHOD_DECL=21; - public static final int NEWLINE=22; - public static final int NULL=23; - public static final int PARAMS=24; - public static final int PILHA=25; - public static final int STORE=26; - public static final int TIPO_REF=27; - public static final int VOID=28; - public static final int WS=29; + public static final int NEW=22; + public static final int NEWLINE=23; + public static final int NULL=24; + public static final int PARAMS=25; + public static final int PILHA=26; + public static final int RETURN=27; + public static final int STORE=28; + public static final int TIPO_REF=29; + public static final int VOID=30; + public static final int WS=31; // delegates public Parser[] getDelegates() { @@ -161,7 +163,6 @@ public TreeAdaptor getTreeAdaptor() { public abstract void escreverOpcode(Token opc, Token op) throws LabelException; public abstract void verificarAumentoMemoriaGlobal(Token opc) throws AcessoIndevidoMemoriaException; public abstract void verificarAumentoMemoriaGlobal(Token opc, Token op) throws AcessoIndevidoMemoriaException, LabelException; - public abstract void definirLabel(Token id) throws LabelException; @@ -172,7 +173,7 @@ public static class programa_return extends ParserRuleReturnScope { // $ANTLR start "programa" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:1: programa : ( instrucao )* ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:1: programa : ( instrucao )* ; public final AssemblerParser.programa_return programa() throws RecognitionException { AssemblerParser.programa_return retval = new AssemblerParser.programa_return(); retval.start = input.LT(1); @@ -185,28 +186,28 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:10: ( ( instrucao )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:10: ( ( instrucao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:12: ( instrucao )* { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: ( instrucao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:12: ( instrucao )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==33||(LA1_0 >= 42 && LA1_0 <= 108)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==35||(LA1_0 >= 44 && LA1_0 <= 110)) ) { alt1=1; } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:12: instrucao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:12: instrucao { - pushFollow(FOLLOW_instrucao_in_programa142); + pushFollow(FOLLOW_instrucao_in_programa152); instrucao1=instrucao(); state._fsp--; @@ -253,7 +254,7 @@ public static class instrucao_return extends ParserRuleReturnScope { // $ANTLR start "instrucao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:1: instrucao : ( operacao | definicaoClasse ( '.end class' )? ); public final AssemblerParser.instrucao_return instrucao() throws RecognitionException { AssemblerParser.instrucao_return retval = new AssemblerParser.instrucao_return(); retval.start = input.LT(1); @@ -270,14 +271,14 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce BytecodesAST string_literal4_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:11: ( operacao | definicaoClasse ( '.end class' )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:11: ( operacao | definicaoClasse ( '.end class' )? ) int alt3=2; int LA3_0 = input.LA(1); - if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 42 && LA3_0 <= 108)) ) { + if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 44 && LA3_0 <= 110)) ) { alt3=1; } - else if ( (LA3_0==33) ) { + else if ( (LA3_0==35) ) { alt3=2; } else { @@ -289,12 +290,12 @@ else if ( (LA3_0==33) ) { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:13: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:13: operacao { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_operacao_in_instrucao170); + pushFollow(FOLLOW_operacao_in_instrucao180); operacao2=operacao(); state._fsp--; @@ -304,30 +305,30 @@ else if ( (LA3_0==33) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:13: definicaoClasse ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:13: definicaoClasse ( '.end class' )? { root_0 = (BytecodesAST)adaptor.nil(); - pushFollow(FOLLOW_definicaoClasse_in_instrucao184); + pushFollow(FOLLOW_definicaoClasse_in_instrucao194); definicaoClasse3=definicaoClasse(); state._fsp--; adaptor.addChild(root_0, definicaoClasse3.getTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:29: ( '.end class' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:29: ( '.end class' )? int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==34) ) { + if ( (LA2_0==36) ) { alt2=1; } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:30: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:30: '.end class' { - string_literal4=(Token)match(input,34,FOLLOW_34_in_instrucao187); + string_literal4=(Token)match(input,36,FOLLOW_36_in_instrucao197); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -373,7 +374,7 @@ public static class operacao_return extends ParserRuleReturnScope { // $ANTLR start "operacao" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:1: operacao : ( label comando | comando ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:1: operacao : ( label comando | comando ) ; public final AssemblerParser.operacao_return operacao() throws RecognitionException { AssemblerParser.operacao_return retval = new AssemblerParser.operacao_return(); retval.start = input.LT(1); @@ -390,20 +391,20 @@ public final AssemblerParser.operacao_return operacao() throws RecognitionExcept try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:10: ( ( label comando | comando ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:10: ( ( label comando | comando ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:12: ( label comando | comando ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:12: ( label comando | comando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:12: ( label comando | comando ) int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==ID) ) { alt4=1; } - else if ( (LA4_0==NEWLINE||(LA4_0 >= 42 && LA4_0 <= 108)) ) { + else if ( (LA4_0==NEWLINE||(LA4_0 >= 44 && LA4_0 <= 110)) ) { alt4=2; } else { @@ -415,16 +416,16 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 42 && LA4_0 <= 108)) ) { } switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:13: label comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:13: label comando { - pushFollow(FOLLOW_label_in_operacao209); + pushFollow(FOLLOW_label_in_operacao219); label5=label(); state._fsp--; adaptor.addChild(root_0, label5.getTree()); - pushFollow(FOLLOW_comando_in_operacao211); + pushFollow(FOLLOW_comando_in_operacao221); comando6=comando(); state._fsp--; @@ -434,9 +435,9 @@ else if ( (LA4_0==NEWLINE||(LA4_0 >= 42 && LA4_0 <= 108)) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:29: comando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:29: comando { - pushFollow(FOLLOW_comando_in_operacao215); + pushFollow(FOLLOW_comando_in_operacao225); comando7=comando(); state._fsp--; @@ -480,7 +481,7 @@ public static class label_return extends ParserRuleReturnScope { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:1: label : a= ID ':' -> ^( LABEL $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:1: label : a= ID ':' -> ^( LABEL $a) ; public final AssemblerParser.label_return label() throws RecognitionException { AssemblerParser.label_return retval = new AssemblerParser.label_return(); retval.start = input.LT(1); @@ -493,19 +494,19 @@ public final AssemblerParser.label_return label() throws RecognitionException { BytecodesAST a_tree=null; BytecodesAST char_literal8_tree=null; - RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); + RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: (a= ID ':' -> ^( LABEL $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: a= ID ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: (a= ID ':' -> ^( LABEL $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: a= ID ':' { - a=(Token)match(input,ID,FOLLOW_ID_in_label237); + a=(Token)match(input,ID,FOLLOW_ID_in_label247); stream_ID.add(a); - char_literal8=(Token)match(input,41,FOLLOW_41_in_label239); - stream_41.add(char_literal8); + char_literal8=(Token)match(input,43,FOLLOW_43_in_label249); + stream_43.add(char_literal8); // AST REWRITE @@ -520,9 +521,9 @@ public final AssemblerParser.label_return label() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 59:20: -> ^( LABEL $a) + // 60:20: -> ^( LABEL $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:23: ^( LABEL $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:23: ^( LABEL $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -570,7 +571,7 @@ public static class comando_return extends ParserRuleReturnScope { // $ANTLR start "comando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:1: comando : ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ; public final AssemblerParser.comando_return comando() throws RecognitionException { AssemblerParser.comando_return retval = new AssemblerParser.comando_return(); retval.start = input.LT(1); @@ -605,86 +606,84 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio BytecodesAST NEWLINE20_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:8: ( ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? NEWLINE { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:10: ( manipulacaoObjetos | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | retorno | 'nop' )? int alt5=12; switch ( input.LA(1) ) { - case 55: - case 56: - case 88: - case 89: + case 57: + case 58: case 90: - case 102: - case 106: - case 107: + case 91: + case 92: + case 104: + case 108: + case 109: { alt5=1; } break; - case 58: - case 67: - case 80: - case 86: - case 87: - case 92: - case 99: + case 60: + case 69: + case 82: + case 88: + case 89: + case 94: + case 101: { alt5=2; } break; - case 42: case 44: - case 45: case 46: case 47: - case 60: - case 61: + case 48: + case 49: case 62: case 63: case 64: case 65: case 66: - case 82: - case 83: + case 67: + case 68: case 84: case 85: + case 86: + case 87: { alt5=3; } break; - case 43: - case 81: - case 101: + case 45: + case 83: + case 103: { alt5=4; } break; - case 50: - case 51: case 52: case 53: - case 95: - case 96: + case 54: + case 55: case 97: case 98: + case 99: + case 100: { alt5=5; } break; - case 49: - case 94: + case 51: + case 96: { alt5=6; } break; - case 57: - case 68: - case 69: + case 59: case 70: case 71: case 72: @@ -695,32 +694,34 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio case 77: case 78: case 79: + case 80: + case 81: { alt5=7; } break; - case 59: - case 91: - case 100: + case 61: + case 93: + case 102: { alt5=8; } break; - case 54: - case 104: - case 105: + case 56: + case 106: + case 107: { alt5=9; } break; - case 48: - case 93: - case 108: + case 50: + case 95: + case 110: { alt5=10; } break; - case 103: + case 105: { alt5=11; } @@ -729,9 +730,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:12: manipulacaoObjetos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:12: manipulacaoObjetos { - pushFollow(FOLLOW_manipulacaoObjetos_in_comando257); + pushFollow(FOLLOW_manipulacaoObjetos_in_comando267); manipulacaoObjetos9=manipulacaoObjetos(); state._fsp--; @@ -741,9 +742,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:17: aritmetica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: aritmetica { - pushFollow(FOLLOW_aritmetica_in_comando275); + pushFollow(FOLLOW_aritmetica_in_comando285); aritmetica10=aritmetica(); state._fsp--; @@ -753,9 +754,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:17: load + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: load { - pushFollow(FOLLOW_load_in_comando293); + pushFollow(FOLLOW_load_in_comando303); load11=load(); state._fsp--; @@ -765,9 +766,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:17: loadint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: loadint { - pushFollow(FOLLOW_loadint_in_comando311); + pushFollow(FOLLOW_loadint_in_comando321); loadint12=loadint(); state._fsp--; @@ -777,9 +778,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:17: store + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: store { - pushFollow(FOLLOW_store_in_comando329); + pushFollow(FOLLOW_store_in_comando339); store13=store(); state._fsp--; @@ -789,9 +790,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:17: storeint + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: storeint { - pushFollow(FOLLOW_storeint_in_comando347); + pushFollow(FOLLOW_storeint_in_comando357); storeint14=storeint(); state._fsp--; @@ -801,9 +802,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:17: desvio + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:17: desvio { - pushFollow(FOLLOW_desvio_in_comando365); + pushFollow(FOLLOW_desvio_in_comando375); desvio15=desvio(); state._fsp--; @@ -813,9 +814,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:17: logica + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:17: logica { - pushFollow(FOLLOW_logica_in_comando383); + pushFollow(FOLLOW_logica_in_comando393); logica16=logica(); state._fsp--; @@ -825,9 +826,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:17: pilha + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:17: pilha { - pushFollow(FOLLOW_pilha_in_comando401); + pushFollow(FOLLOW_pilha_in_comando411); pilha17=pilha(); state._fsp--; @@ -837,9 +838,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:17: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:17: retorno { - pushFollow(FOLLOW_retorno_in_comando419); + pushFollow(FOLLOW_retorno_in_comando429); retorno18=retorno(); state._fsp--; @@ -849,9 +850,9 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:17: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:17: 'nop' { - string_literal19=(Token)match(input,103,FOLLOW_103_in_comando437); + string_literal19=(Token)match(input,105,FOLLOW_105_in_comando447); string_literal19_tree = (BytecodesAST)adaptor.create(string_literal19) ; @@ -864,7 +865,7 @@ public final AssemblerParser.comando_return comando() throws RecognitionExceptio } - NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando453); + NEWLINE20=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_comando463); NEWLINE20_tree = (BytecodesAST)adaptor.create(NEWLINE20) ; @@ -902,7 +903,7 @@ public static class definicaoClasse_return extends ParserRuleReturnScope { // $ANTLR start "definicaoClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:1: definicaoClasse : '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ; public final AssemblerParser.definicaoClasse_return definicaoClasse() throws RecognitionException { AssemblerParser.definicaoClasse_return retval = new AssemblerParser.definicaoClasse_return(); retval.start = input.LT(1); @@ -927,44 +928,44 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST NEWLINE27_tree=null; RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal21=(Token)match(input,33,FOLLOW_33_in_definicaoClasse479); - stream_33.add(string_literal21); + string_literal21=(Token)match(input,35,FOLLOW_35_in_definicaoClasse486); + stream_35.add(string_literal21); - ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse481); + ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse488); stream_ID.add(ID22); - NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse483); + NEWLINE23=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse490); stream_NEWLINE.add(NEWLINE23); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:27: ( superClasse NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:27: ( superClasse NEWLINE )? int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==39) ) { + if ( (LA6_0==41) ) { alt6=1; } switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:28: superClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:28: superClasse NEWLINE { - pushFollow(FOLLOW_superClasse_in_definicaoClasse486); + pushFollow(FOLLOW_superClasse_in_definicaoClasse493); superClasse24=superClasse(); state._fsp--; stream_superClasse.add(superClasse24.getTree()); - NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse488); + NEWLINE25=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse495); stream_NEWLINE.add(NEWLINE25); @@ -974,30 +975,30 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:50: ( membroClasse NEWLINE )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:50: ( membroClasse NEWLINE )+ int cnt7=0; loop7: do { int alt7=2; int LA7_0 = input.LA(1); - if ( (LA7_0==36||LA7_0==38) ) { + if ( (LA7_0==38||LA7_0==40) ) { alt7=1; } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:51: membroClasse NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:51: membroClasse NEWLINE { - pushFollow(FOLLOW_membroClasse_in_definicaoClasse493); + pushFollow(FOLLOW_membroClasse_in_definicaoClasse500); membroClasse26=membroClasse(); state._fsp--; stream_membroClasse.add(membroClasse26.getTree()); - NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse495); + NEWLINE27=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_definicaoClasse502); stream_NEWLINE.add(NEWLINE27); @@ -1015,7 +1016,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 33, ID, membroClasse, superClasse + // elements: 35, membroClasse, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1025,27 +1026,27 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 76:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // 77:12: -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:15: ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_33.nextNode() + stream_35.nextNode() , root_1); adaptor.addChild(root_1, stream_ID.nextNode() ); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:29: ( superClasse )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:29: ( superClasse )? if ( stream_superClasse.hasNext() ) { adaptor.addChild(root_1, stream_superClasse.nextTree()); } stream_superClasse.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:42: ^( MEMBRO_CLASSE ( membroClasse )+ ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( @@ -1103,7 +1104,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1116,18 +1117,18 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST string_literal28_tree=null; BytecodesAST TIPO_REF29_tree=null; + RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:15: '.super' TIPO_REF { - string_literal28=(Token)match(input,39,FOLLOW_39_in_superClasse556); - stream_39.add(string_literal28); + string_literal28=(Token)match(input,41,FOLLOW_41_in_superClasse563); + stream_41.add(string_literal28); - TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse558); + TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse565); stream_TIPO_REF.add(TIPO_REF29); @@ -1142,9 +1143,9 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 79:33: -> ^( EXTENDS TIPO_REF ) + // 80:33: -> ^( EXTENDS TIPO_REF ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:36: ^( EXTENDS TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:36: ^( EXTENDS TIPO_REF ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1194,7 +1195,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:1: membroClasse : ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:1: membroClasse : ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1261,35 +1262,35 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST NEWLINE53_tree=null; BytecodesAST NEWLINE55_tree=null; BytecodesAST string_literal57_tree=null; - RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); - RewriteRuleTokenStream stream_109=new RewriteRuleTokenStream(adaptor,"token 109"); RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); - RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); + RewriteRuleTokenStream stream_111=new RewriteRuleTokenStream(adaptor,"token 111"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); + RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); + RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); RewriteRuleSubtreeStream stream_limite=new RewriteRuleSubtreeStream(adaptor,"rule limite"); RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:5: ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:5: ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) int alt16=3; int LA16_0 = input.LA(1); - if ( (LA16_0==36) ) { + if ( (LA16_0==38) ) { alt16=1; } - else if ( (LA16_0==38) ) { + else if ( (LA16_0==40) ) { int LA16_2 = input.LA(2); if ( (LA16_2==INIT) ) { alt16=2; } - else if ( (LA16_2==ID||LA16_2==109) ) { + else if ( (LA16_2==ID||LA16_2==111) ) { alt16=3; } else { @@ -1309,25 +1310,25 @@ else if ( (LA16_2==ID||LA16_2==109) ) { } switch (alt16) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:7: '.field' ( 'static' )? ID tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.field' ( 'static' )? ID tipo { - string_literal30=(Token)match(input,36,FOLLOW_36_in_membroClasse579); - stream_36.add(string_literal30); + string_literal30=(Token)match(input,38,FOLLOW_38_in_membroClasse586); + stream_38.add(string_literal30); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:16: ( 'static' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:16: ( 'static' )? int alt8=2; int LA8_0 = input.LA(1); - if ( (LA8_0==109) ) { + if ( (LA8_0==111) ) { alt8=1; } switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:16: 'static' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:16: 'static' { - string_literal31=(Token)match(input,109,FOLLOW_109_in_membroClasse581); - stream_109.add(string_literal31); + string_literal31=(Token)match(input,111,FOLLOW_111_in_membroClasse588); + stream_111.add(string_literal31); } @@ -1336,11 +1337,11 @@ else if ( (LA16_2==ID||LA16_2==109) ) { } - ID32=(Token)match(input,ID,FOLLOW_ID_in_membroClasse584); + ID32=(Token)match(input,ID,FOLLOW_ID_in_membroClasse591); stream_ID.add(ID32); - pushFollow(FOLLOW_tipo_in_membroClasse586); + pushFollow(FOLLOW_tipo_in_membroClasse593); tipo33=tipo(); state._fsp--; @@ -1348,7 +1349,7 @@ else if ( (LA16_2==ID||LA16_2==109) ) { stream_tipo.add(tipo33.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1358,9 +1359,9 @@ else if ( (LA16_2==ID||LA16_2==109) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 82:34: -> ^( FIELD_DECL ID tipo ) + // 83:34: -> ^( FIELD_DECL ID tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:37: ^( FIELD_DECL ID tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:37: ^( FIELD_DECL ID tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1384,24 +1385,24 @@ else if ( (LA16_2==ID||LA16_2==109) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:7: '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal34=(Token)match(input,38,FOLLOW_38_in_membroClasse604); - stream_38.add(string_literal34); + string_literal34=(Token)match(input,40,FOLLOW_40_in_membroClasse611); + stream_40.add(string_literal34); - INIT35=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse606); + INIT35=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse613); stream_INIT.add(INIT35); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:22: ( parametros | '(' parametros ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:22: ( parametros | '(' parametros ')' ) int alt9=2; int LA9_0 = input.LA(1); - if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==31) ) { + if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==33) ) { alt9=1; } - else if ( (LA9_0==30) ) { + else if ( (LA9_0==32) ) { alt9=2; } else { @@ -1413,9 +1414,9 @@ else if ( (LA9_0==30) ) { } switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:23: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:23: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse609); + pushFollow(FOLLOW_parametros_in_membroClasse616); parametros36=parametros(); state._fsp--; @@ -1425,21 +1426,21 @@ else if ( (LA9_0==30) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:36: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:36: '(' parametros ')' { - char_literal37=(Token)match(input,30,FOLLOW_30_in_membroClasse613); - stream_30.add(char_literal37); + char_literal37=(Token)match(input,32,FOLLOW_32_in_membroClasse620); + stream_32.add(char_literal37); - pushFollow(FOLLOW_parametros_in_membroClasse615); + pushFollow(FOLLOW_parametros_in_membroClasse622); parametros38=parametros(); state._fsp--; stream_parametros.add(parametros38.getTree()); - char_literal39=(Token)match(input,32,FOLLOW_32_in_membroClasse617); - stream_32.add(char_literal39); + char_literal39=(Token)match(input,34,FOLLOW_34_in_membroClasse624); + stream_34.add(char_literal39); } @@ -1448,33 +1449,33 @@ else if ( (LA9_0==30) ) { } - VOID40=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse620); + VOID40=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse627); stream_VOID.add(VOID40); - NEWLINE41=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse622); + NEWLINE41=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse629); stream_NEWLINE.add(NEWLINE41); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:69: ( limite NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:69: ( limite NEWLINE )? int alt10=2; int LA10_0 = input.LA(1); - if ( (LA10_0==37) ) { + if ( (LA10_0==39) ) { alt10=1; } switch (alt10) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:70: limite NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:70: limite NEWLINE { - pushFollow(FOLLOW_limite_in_membroClasse625); + pushFollow(FOLLOW_limite_in_membroClasse632); limite42=limite(); state._fsp--; stream_limite.add(limite42.getTree()); - NEWLINE43=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse627); + NEWLINE43=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse634); stream_NEWLINE.add(NEWLINE43); @@ -1484,22 +1485,22 @@ else if ( (LA9_0==30) ) { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:87: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:87: ( operacao )* loop11: do { int alt11=2; int LA11_0 = input.LA(1); - if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 42 && LA11_0 <= 108)) ) { + if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 44 && LA11_0 <= 110)) ) { alt11=1; } switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:87: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:87: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse631); + pushFollow(FOLLOW_operacao_in_membroClasse638); operacao44=operacao(); state._fsp--; @@ -1515,12 +1516,12 @@ else if ( (LA9_0==30) ) { } while (true); - string_literal45=(Token)match(input,35,FOLLOW_35_in_membroClasse634); - stream_35.add(string_literal45); + string_literal45=(Token)match(input,37,FOLLOW_37_in_membroClasse641); + stream_37.add(string_literal45); // AST REWRITE - // elements: limite, parametros, INIT, operacao + // elements: parametros, operacao, INIT, limite // token labels: // rule labels: retval // token list labels: @@ -1530,9 +1531,9 @@ else if ( (LA9_0==30) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 84:2: -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) + // 85:2: -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:5: ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:5: ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1545,21 +1546,21 @@ else if ( (LA9_0==30) ) { adaptor.addChild(root_1, stream_parametros.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:35: ( limite )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:35: ( limite )? if ( stream_limite.hasNext() ) { adaptor.addChild(root_1, stream_limite.nextTree()); } stream_limite.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:43: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:43: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:50: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:50: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1580,25 +1581,25 @@ else if ( (LA9_0==30) ) { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:7: '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:7: '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal46=(Token)match(input,38,FOLLOW_38_in_membroClasse663); - stream_38.add(string_literal46); + string_literal46=(Token)match(input,40,FOLLOW_40_in_membroClasse670); + stream_40.add(string_literal46); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:17: ( 'static' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:17: ( 'static' )? int alt12=2; int LA12_0 = input.LA(1); - if ( (LA12_0==109) ) { + if ( (LA12_0==111) ) { alt12=1; } switch (alt12) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:17: 'static' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:17: 'static' { - string_literal47=(Token)match(input,109,FOLLOW_109_in_membroClasse665); - stream_109.add(string_literal47); + string_literal47=(Token)match(input,111,FOLLOW_111_in_membroClasse672); + stream_111.add(string_literal47); } @@ -1607,18 +1608,18 @@ else if ( (LA9_0==30) ) { } - ID48=(Token)match(input,ID,FOLLOW_ID_in_membroClasse668); + ID48=(Token)match(input,ID,FOLLOW_ID_in_membroClasse675); stream_ID.add(ID48); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:30: ( parametros | '(' parametros ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:30: ( parametros | '(' parametros ')' ) int alt13=2; int LA13_0 = input.LA(1); - if ( (LA13_0==ID||LA13_0==TIPO_REF||LA13_0==31) ) { + if ( (LA13_0==ID||LA13_0==TIPO_REF||LA13_0==33) ) { alt13=1; } - else if ( (LA13_0==30) ) { + else if ( (LA13_0==32) ) { alt13=2; } else { @@ -1630,9 +1631,9 @@ else if ( (LA13_0==30) ) { } switch (alt13) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:31: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:31: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse671); + pushFollow(FOLLOW_parametros_in_membroClasse678); parametros49=parametros(); state._fsp--; @@ -1642,21 +1643,21 @@ else if ( (LA13_0==30) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:44: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:44: '(' parametros ')' { - char_literal50=(Token)match(input,30,FOLLOW_30_in_membroClasse675); - stream_30.add(char_literal50); + char_literal50=(Token)match(input,32,FOLLOW_32_in_membroClasse682); + stream_32.add(char_literal50); - pushFollow(FOLLOW_parametros_in_membroClasse677); + pushFollow(FOLLOW_parametros_in_membroClasse684); parametros51=parametros(); state._fsp--; stream_parametros.add(parametros51.getTree()); - char_literal52=(Token)match(input,32,FOLLOW_32_in_membroClasse679); - stream_32.add(char_literal52); + char_literal52=(Token)match(input,34,FOLLOW_34_in_membroClasse686); + stream_34.add(char_literal52); } @@ -1665,36 +1666,36 @@ else if ( (LA13_0==30) ) { } - pushFollow(FOLLOW_tipo_in_membroClasse686); + pushFollow(FOLLOW_tipo_in_membroClasse693); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse688); + NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse695); stream_NEWLINE.add(NEWLINE53); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:83: ( limite NEWLINE )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:83: ( limite NEWLINE )? int alt14=2; int LA14_0 = input.LA(1); - if ( (LA14_0==37) ) { + if ( (LA14_0==39) ) { alt14=1; } switch (alt14) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:84: limite NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:84: limite NEWLINE { - pushFollow(FOLLOW_limite_in_membroClasse691); + pushFollow(FOLLOW_limite_in_membroClasse698); limite54=limite(); state._fsp--; stream_limite.add(limite54.getTree()); - NEWLINE55=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse693); + NEWLINE55=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse700); stream_NEWLINE.add(NEWLINE55); @@ -1704,22 +1705,22 @@ else if ( (LA13_0==30) ) { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:101: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:101: ( operacao )* loop15: do { int alt15=2; int LA15_0 = input.LA(1); - if ( (LA15_0==ID||LA15_0==NEWLINE||(LA15_0 >= 42 && LA15_0 <= 108)) ) { + if ( (LA15_0==ID||LA15_0==NEWLINE||(LA15_0 >= 44 && LA15_0 <= 110)) ) { alt15=1; } switch (alt15) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:101: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:101: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse697); + pushFollow(FOLLOW_operacao_in_membroClasse704); operacao56=operacao(); state._fsp--; @@ -1735,12 +1736,12 @@ else if ( (LA13_0==30) ) { } while (true); - string_literal57=(Token)match(input,35,FOLLOW_35_in_membroClasse700); - stream_35.add(string_literal57); + string_literal57=(Token)match(input,37,FOLLOW_37_in_membroClasse707); + stream_37.add(string_literal57); // AST REWRITE - // elements: parametros, operacao, limite, ret, ID + // elements: operacao, ret, limite, parametros, ID // token labels: // rule labels: ret, retval // token list labels: @@ -1751,9 +1752,9 @@ else if ( (LA13_0==30) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 86:9: -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) + // 87:9: -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:12: ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:12: ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1768,21 +1769,21 @@ else if ( (LA13_0==30) ) { adaptor.addChild(root_1, stream_parametros.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:45: ( limite )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:45: ( limite )? if ( stream_limite.hasNext() ) { adaptor.addChild(root_1, stream_limite.nextTree()); } stream_limite.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:53: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:53: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:60: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:87:60: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1833,7 +1834,7 @@ public static class limite_return extends ParserRuleReturnScope { // $ANTLR start "limite" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:1: limite : '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:1: limite : '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ; public final AssemblerParser.limite_return limite() throws RecognitionException { AssemblerParser.limite_return retval = new AssemblerParser.limite_return(); retval.start = input.LT(1); @@ -1847,17 +1848,17 @@ public final AssemblerParser.limite_return limite() throws RecognitionException BytecodesAST string_literal58_tree=null; BytecodesAST INTEIRO59_tree=null; RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:8: ( '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:11: '.limit locals' INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: ( '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:11: '.limit locals' INTEIRO { - string_literal58=(Token)match(input,37,FOLLOW_37_in_limite749); - stream_37.add(string_literal58); + string_literal58=(Token)match(input,39,FOLLOW_39_in_limite756); + stream_39.add(string_literal58); - INTEIRO59=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite751); + INTEIRO59=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite758); stream_INTEIRO.add(INTEIRO59); @@ -1872,9 +1873,9 @@ public final AssemblerParser.limite_return limite() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 89:35: -> ^( LIMIT INTEIRO ) + // 90:35: -> ^( LIMIT INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:89:38: ^( LIMIT INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:38: ^( LIMIT INTEIRO ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1924,7 +1925,7 @@ public static class parametros_return extends ParserRuleReturnScope { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:91:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); public final AssemblerParser.parametros_return parametros() throws RecognitionException { AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); @@ -1938,15 +1939,15 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx BytecodesAST a_tree=null; BytecodesAST string_literal60_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) int alt18=2; int LA18_0 = input.LA(1); - if ( (LA18_0==31) ) { + if ( (LA18_0==33) ) { alt18=1; } else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { @@ -1961,10 +1962,10 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { } switch (alt18) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:4: '()' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:4: '()' { - string_literal60=(Token)match(input,31,FOLLOW_31_in_parametros773); - stream_31.add(string_literal60); + string_literal60=(Token)match(input,33,FOLLOW_33_in_parametros780); + stream_33.add(string_literal60); // AST REWRITE @@ -1978,9 +1979,9 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 92:9: -> ^( PARAMS VOID ) + // 93:9: -> ^( PARAMS VOID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:12: ^( PARAMS VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:12: ^( PARAMS VOID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2002,9 +2003,9 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= ID |a= TIPO_REF )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= ID |a= TIPO_REF )+ int cnt17=0; loop17: do { @@ -2014,7 +2015,7 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { if ( (LA17_0==TIPO_REF) ) { int LA17_2 = input.LA(2); - if ( (LA17_2==ID||LA17_2==INT||(LA17_2 >= TIPO_REF && LA17_2 <= VOID)||LA17_2==32) ) { + if ( (LA17_2==ID||LA17_2==INT||(LA17_2 >= TIPO_REF && LA17_2 <= VOID)||LA17_2==34) ) { alt17=2; } @@ -2027,18 +2028,18 @@ else if ( (LA17_0==ID) ) { switch (alt17) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:9: a= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= ID { - a=(Token)match(input,ID,FOLLOW_ID_in_parametros800); + a=(Token)match(input,ID,FOLLOW_ID_in_parametros807); stream_ID.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= TIPO_REF { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros815); + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros822); stream_TIPO_REF.add(a); @@ -2067,13 +2068,13 @@ else if ( (LA17_0==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 97:4: -> ( ^( PARAMS $a) )+ + // 98:4: -> ( ^( PARAMS $a) )+ { if ( !(stream_a.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:7: ^( PARAMS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:7: ^( PARAMS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2126,7 +2127,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: retorno : ( 'areturn' | 'ireturn' | 'return' ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:1: retorno : (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ; public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -2134,32 +2135,106 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio BytecodesAST root_0 = null; - Token set61=null; + Token a=null; - BytecodesAST set61_tree=null; + BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); + RewriteRuleTokenStream stream_110=new RewriteRuleTokenStream(adaptor,"token 110"); + RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: ( 'areturn' | 'ireturn' | 'return' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: ( (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) { - root_0 = (BytecodesAST)adaptor.nil(); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) + int alt19=3; + switch ( input.LA(1) ) { + case 50: + { + alt19=1; + } + break; + case 95: + { + alt19=2; + } + break; + case 110: + { + alt19=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 19, 0, input); + throw nvae; - set61=(Token)input.LT(1); + } + + switch (alt19) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'areturn' + { + a=(Token)match(input,50,FOLLOW_50_in_retorno868); + stream_50.add(a); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'ireturn' + { + a=(Token)match(input,95,FOLLOW_95_in_retorno886); + stream_95.add(a); + + + } + break; + case 3 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'return' + { + a=(Token)match(input,110,FOLLOW_110_in_retorno904); + stream_110.add(a); + + + } + break; - if ( input.LA(1)==48||input.LA(1)==93||input.LA(1)==108 ) { - input.consume(); - adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set61) - ); - state.errorRecovery=false; } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; + + + // AST REWRITE + // elements: a + // token labels: a + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + retval.tree = root_0; + RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (BytecodesAST)adaptor.nil(); + // 106:10: -> ^( RETURN $a) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: ^( RETURN $a) + { + BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); + root_1 = (BytecodesAST)adaptor.becomeRoot( + (BytecodesAST)adaptor.create(RETURN, "RETURN") + , root_1); + + adaptor.addChild(root_1, stream_a.nextNode()); + + adaptor.addChild(root_0, root_1); + } + } + retval.tree = root_0; + } retval.stop = input.LT(-1); @@ -2191,7 +2266,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'invokevirtual' c= classe '/' d= chamadaMetodo -> ^( 'invokevirtual' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'invokevirtual' c= classe '/' d= chamadaMetodo -> ^( 'invokevirtual' $c $d) |a= 'new' c= classe -> ^( NEW $c) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -2200,117 +2275,117 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; + Token char_literal65=null; Token char_literal66=null; Token char_literal67=null; - Token char_literal68=null; AssemblerParser.campo_return b =null; AssemblerParser.classe_return c =null; AssemblerParser.chamadaMetodo_return d =null; + AssemblerParser.tipo_return tipo61 =null; + AssemblerParser.tipo_return tipo62 =null; AssemblerParser.tipo_return tipo63 =null; AssemblerParser.tipo_return tipo64 =null; - AssemblerParser.tipo_return tipo65 =null; - BytecodesAST a_tree=null; + BytecodesAST char_literal65_tree=null; BytecodesAST char_literal66_tree=null; BytecodesAST char_literal67_tree=null; - BytecodesAST char_literal68_tree=null; - RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); - RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); - RewriteRuleTokenStream stream_107=new RewriteRuleTokenStream(adaptor,"token 107"); - RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); + RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); + RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); + RewriteRuleTokenStream stream_109=new RewriteRuleTokenStream(adaptor,"token 109"); + RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); + RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); + RewriteRuleTokenStream stream_108=new RewriteRuleTokenStream(adaptor,"token 108"); + RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); - RewriteRuleTokenStream stream_106=new RewriteRuleTokenStream(adaptor,"token 106"); - RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102"); - RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); - RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); + RewriteRuleTokenStream stream_104=new RewriteRuleTokenStream(adaptor,"token 104"); RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'invokevirtual' c= classe '/' d= chamadaMetodo -> ^( 'invokevirtual' $c $d) |a= 'new' c= classe -> ^( 'new' $c) ) - int alt19=8; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'invokevirtual' c= classe '/' d= chamadaMetodo -> ^( 'invokevirtual' $c $d) |a= 'new' c= classe -> ^( NEW $c) ) + int alt20=8; switch ( input.LA(1) ) { - case 55: + case 57: { - alt19=1; + alt20=1; } break; - case 56: + case 58: { - alt19=2; + alt20=2; } break; - case 106: + case 108: { - alt19=3; + alt20=3; } break; - case 107: + case 109: { - alt19=4; + alt20=4; } break; - case 88: + case 90: { - alt19=5; + alt20=5; } break; - case 89: + case 91: { - alt19=6; + alt20=6; } break; - case 90: + case 92: { - alt19=7; + alt20=7; } break; - case 102: + case 104: { - alt19=8; + alt20=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 19, 0, input); + new NoViableAltException("", 20, 0, input); throw nvae; } - switch (alt19) { + switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:22: a= 'getfield' b= campo tipo { - a=(Token)match(input,55,FOLLOW_55_in_manipulacaoObjetos877); - stream_55.add(a); + a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos983); + stream_57.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos883); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos989); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos885); - tipo62=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos991); + tipo61=tipo(); state._fsp--; - stream_tipo.add(tipo62.getTree()); + stream_tipo.add(tipo61.getTree()); // AST REWRITE - // elements: 55, tipo, b + // elements: 57, b, tipo // token labels: // rule labels: retval, b // token list labels: @@ -2321,13 +2396,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 102:52: -> ^( 'getfield' $b tipo ) + // 109:52: -> ^( 'getfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:55: ^( 'getfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_55.nextNode() + stream_57.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2345,28 +2420,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:8: a= 'getstatic' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:8: a= 'getstatic' b= campo tipo { - a=(Token)match(input,56,FOLLOW_56_in_manipulacaoObjetos909); - stream_56.add(a); + a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1015); + stream_58.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos915); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos1021); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos917); - tipo63=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1023); + tipo62=tipo(); state._fsp--; - stream_tipo.add(tipo63.getTree()); + stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: 56, tipo, b + // elements: 58, tipo, b // token labels: // rule labels: retval, b // token list labels: @@ -2377,13 +2452,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 103:39: -> ^( 'getstatic' $b tipo ) + // 110:39: -> ^( 'getstatic' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:42: ^( 'getstatic' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:42: ^( 'getstatic' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_56.nextNode() + stream_58.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2401,28 +2476,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:22: a= 'putfield' b= campo tipo { - a=(Token)match(input,106,FOLLOW_106_in_manipulacaoObjetos955); - stream_106.add(a); + a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1061); + stream_108.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos961); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos1067); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos963); - tipo64=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1069); + tipo63=tipo(); state._fsp--; - stream_tipo.add(tipo64.getTree()); + stream_tipo.add(tipo63.getTree()); // AST REWRITE - // elements: tipo, 106, b + // elements: tipo, 108, b // token labels: // rule labels: retval, b // token list labels: @@ -2433,13 +2508,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 104:52: -> ^( 'putfield' $b tipo ) + // 111:52: -> ^( 'putfield' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:55: ^( 'putfield' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_106.nextNode() + stream_108.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2457,28 +2532,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:22: a= 'putstatic' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'putstatic' b= campo tipo { - a=(Token)match(input,107,FOLLOW_107_in_manipulacaoObjetos1001); - stream_107.add(a); + a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1107); + stream_109.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos1007); + pushFollow(FOLLOW_campo_in_manipulacaoObjetos1113); b=campo(); state._fsp--; stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1009); - tipo65=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1115); + tipo64=tipo(); state._fsp--; - stream_tipo.add(tipo65.getTree()); + stream_tipo.add(tipo64.getTree()); // AST REWRITE - // elements: b, 107, tipo + // elements: b, tipo, 109 // token labels: // rule labels: retval, b // token list labels: @@ -2489,13 +2564,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 105:53: -> ^( 'putstatic' $b tipo ) + // 112:53: -> ^( 'putstatic' $b tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:56: ^( 'putstatic' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:56: ^( 'putstatic' $b tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_107.nextNode() + stream_109.nextNode() , root_1); adaptor.addChild(root_1, stream_b.nextTree()); @@ -2513,24 +2588,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,88,FOLLOW_88_in_manipulacaoObjetos1047); - stream_88.add(a); + a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1153); + stream_90.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1053); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1159); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal66=(Token)match(input,40,FOLLOW_40_in_manipulacaoObjetos1055); - stream_40.add(char_literal66); + char_literal65=(Token)match(input,42,FOLLOW_42_in_manipulacaoObjetos1161); + stream_42.add(char_literal65); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1061); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1167); d=chamadaMetodo(); state._fsp--; @@ -2538,7 +2613,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: d, 88, c + // elements: c, 90, d // token labels: // rule labels: retval, d, c // token list labels: @@ -2550,13 +2625,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 107:23: -> ^( 'invokespecial' $c $d) + // 114:23: -> ^( 'invokespecial' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:107:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:26: ^( 'invokespecial' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_88.nextNode() + stream_90.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2574,24 +2649,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'invokestatic' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:22: a= 'invokestatic' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,89,FOLLOW_89_in_manipulacaoObjetos1122); - stream_89.add(a); + a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1228); + stream_91.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1128); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1234); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal67=(Token)match(input,40,FOLLOW_40_in_manipulacaoObjetos1130); - stream_40.add(char_literal67); + char_literal66=(Token)match(input,42,FOLLOW_42_in_manipulacaoObjetos1236); + stream_42.add(char_literal66); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1136); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1242); d=chamadaMetodo(); state._fsp--; @@ -2599,7 +2674,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: d, c, 89 + // elements: 91, c, d // token labels: // rule labels: retval, d, c // token list labels: @@ -2611,13 +2686,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 109:23: -> ^( 'invokestatic' $c $d) + // 116:23: -> ^( 'invokestatic' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:26: ^( 'invokestatic' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:26: ^( 'invokestatic' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_89.nextNode() + stream_91.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2635,24 +2710,24 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:23: a= 'invokevirtual' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:23: a= 'invokevirtual' c= classe '/' d= chamadaMetodo { - a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1198); - stream_90.add(a); + a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1304); + stream_92.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1204); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1310); c=classe(); state._fsp--; stream_classe.add(c.getTree()); - char_literal68=(Token)match(input,40,FOLLOW_40_in_manipulacaoObjetos1206); - stream_40.add(char_literal68); + char_literal67=(Token)match(input,42,FOLLOW_42_in_manipulacaoObjetos1312); + stream_42.add(char_literal67); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1212); + pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1318); d=chamadaMetodo(); state._fsp--; @@ -2660,7 +2735,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_chamadaMetodo.add(d.getTree()); // AST REWRITE - // elements: c, d, 90 + // elements: c, d, 92 // token labels: // rule labels: retval, d, c // token list labels: @@ -2672,13 +2747,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 111:23: -> ^( 'invokevirtual' $c $d) + // 118:23: -> ^( 'invokevirtual' $c $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:26: ^( 'invokevirtual' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:26: ^( 'invokevirtual' $c $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_90.nextNode() + stream_92.nextNode() , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2696,13 +2771,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'new' c= classe + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:22: a= 'new' c= classe { - a=(Token)match(input,102,FOLLOW_102_in_manipulacaoObjetos1273); - stream_102.add(a); + a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1379); + stream_104.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1278); + pushFollow(FOLLOW_classe_in_manipulacaoObjetos1384); c=classe(); state._fsp--; @@ -2710,7 +2785,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_classe.add(c.getTree()); // AST REWRITE - // elements: 102, c + // elements: c // token labels: // rule labels: retval, c // token list labels: @@ -2721,13 +2796,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 112:42: -> ^( 'new' $c) + // 119:42: -> ^( NEW $c) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:45: ^( 'new' $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:45: ^( NEW $c) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_102.nextNode() + (BytecodesAST)adaptor.create(NEW, "NEW") , root_1); adaptor.addChild(root_1, stream_c.nextTree()); @@ -2773,7 +2848,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2781,23 +2856,23 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set69=null; + Token set68=null; - BytecodesAST set69_tree=null; + BytecodesAST set68_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); - set69=(Token)input.LT(1); + set68=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set69) + (BytecodesAST)adaptor.create(set68) ); state.errorRecovery=false; } @@ -2838,7 +2913,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2849,124 +2924,124 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); - RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); - RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); - RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); - RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); - RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); - RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); - + RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); + RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); + RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); + RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); + RewriteRuleTokenStream stream_101=new RewriteRuleTokenStream(adaptor,"token 101"); + RewriteRuleTokenStream stream_88=new RewriteRuleTokenStream(adaptor,"token 88"); + RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); + try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt20=7; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + int alt21=7; switch ( input.LA(1) ) { - case 58: + case 60: { - alt20=1; + alt21=1; } break; - case 99: + case 101: { - alt20=2; + alt21=2; } break; - case 86: + case 88: { - alt20=3; + alt21=3; } break; - case 67: + case 69: { - alt20=4; + alt21=4; } break; - case 92: + case 94: { - alt20=5; + alt21=5; } break; - case 80: + case 82: { - alt20=6; + alt21=6; } break; - case 87: + case 89: { - alt20=7; + alt21=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 20, 0, input); + new NoViableAltException("", 21, 0, input); throw nvae; } - switch (alt20) { + switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:16: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:16: a= 'iadd' { - a=(Token)match(input,58,FOLLOW_58_in_aritmetica1356); - stream_58.add(a); + a=(Token)match(input,60,FOLLOW_60_in_aritmetica1462); + stream_60.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:19: a= 'isub' { - a=(Token)match(input,99,FOLLOW_99_in_aritmetica1380); - stream_99.add(a); + a=(Token)match(input,101,FOLLOW_101_in_aritmetica1486); + stream_101.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:120:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:19: a= 'imul' { - a=(Token)match(input,86,FOLLOW_86_in_aritmetica1404); - stream_86.add(a); + a=(Token)match(input,88,FOLLOW_88_in_aritmetica1510); + stream_88.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:121:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:19: a= 'idiv' { - a=(Token)match(input,67,FOLLOW_67_in_aritmetica1428); - stream_67.add(a); + a=(Token)match(input,69,FOLLOW_69_in_aritmetica1534); + stream_69.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:19: a= 'irem' { - a=(Token)match(input,92,FOLLOW_92_in_aritmetica1452); - stream_92.add(a); + a=(Token)match(input,94,FOLLOW_94_in_aritmetica1558); + stream_94.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:19: a= 'iinc' { - a=(Token)match(input,80,FOLLOW_80_in_aritmetica1476); - stream_80.add(a); + a=(Token)match(input,82,FOLLOW_82_in_aritmetica1582); + stream_82.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:19: a= 'ineg' { - a=(Token)match(input,87,FOLLOW_87_in_aritmetica1500); - stream_87.add(a); + a=(Token)match(input,89,FOLLOW_89_in_aritmetica1606); + stream_89.add(a); } @@ -2987,9 +3062,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 126:14: -> ^( ARITMETICA $a) + // 133:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3037,7 +3112,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -3048,259 +3123,259 @@ public final AssemblerParser.load_return load() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; + RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); + RewriteRuleTokenStream stream_67=new RewriteRuleTokenStream(adaptor,"token 67"); + RewriteRuleTokenStream stream_48=new RewriteRuleTokenStream(adaptor,"token 48"); RewriteRuleTokenStream stream_66=new RewriteRuleTokenStream(adaptor,"token 66"); - RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); RewriteRuleTokenStream stream_44=new RewriteRuleTokenStream(adaptor,"token 44"); - RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); RewriteRuleTokenStream stream_47=new RewriteRuleTokenStream(adaptor,"token 47"); RewriteRuleTokenStream stream_46=new RewriteRuleTokenStream(adaptor,"token 46"); RewriteRuleTokenStream stream_64=new RewriteRuleTokenStream(adaptor,"token 64"); - RewriteRuleTokenStream stream_82=new RewriteRuleTokenStream(adaptor,"token 82"); RewriteRuleTokenStream stream_65=new RewriteRuleTokenStream(adaptor,"token 65"); - RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); RewriteRuleTokenStream stream_62=new RewriteRuleTokenStream(adaptor,"token 62"); RewriteRuleTokenStream stream_63=new RewriteRuleTokenStream(adaptor,"token 63"); - RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60"); - RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); + RewriteRuleTokenStream stream_86=new RewriteRuleTokenStream(adaptor,"token 86"); + RewriteRuleTokenStream stream_87=new RewriteRuleTokenStream(adaptor,"token 87"); RewriteRuleTokenStream stream_84=new RewriteRuleTokenStream(adaptor,"token 84"); RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt21=16; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + int alt22=16; switch ( input.LA(1) ) { - case 66: - { - alt21=1; - } - break; - case 60: - { - alt21=2; - } - break; - case 61: + case 68: { - alt21=3; + alt22=1; } break; case 62: { - alt21=4; + alt22=2; } break; case 63: { - alt21=5; + alt22=3; } break; case 64: { - alt21=6; + alt22=4; } break; case 65: { - alt21=7; + alt22=5; } break; - case 42: + case 66: { - alt21=8; + alt22=6; } break; - case 82: + case 67: { - alt21=9; + alt22=7; } break; - case 83: + case 44: { - alt21=10; + alt22=8; } break; case 84: { - alt21=11; + alt22=9; } break; case 85: { - alt21=12; + alt22=10; } break; - case 44: + case 86: { - alt21=13; + alt22=11; } break; - case 45: + case 87: { - alt21=14; + alt22=12; } break; case 46: { - alt21=15; + alt22=13; } break; case 47: { - alt21=16; + alt22=14; + } + break; + case 48: + { + alt22=15; + } + break; + case 49: + { + alt22=16; } break; default: NoViableAltException nvae = - new NoViableAltException("", 21, 0, input); + new NoViableAltException("", 22, 0, input); throw nvae; } - switch (alt21) { + switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:10: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:10: a= 'iconst_m1' { - a=(Token)match(input,66,FOLLOW_66_in_load1574); - stream_66.add(a); + a=(Token)match(input,68,FOLLOW_68_in_load1680); + stream_68.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iconst_0' { - a=(Token)match(input,60,FOLLOW_60_in_load1592); - stream_60.add(a); + a=(Token)match(input,62,FOLLOW_62_in_load1698); + stream_62.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iconst_1' { - a=(Token)match(input,61,FOLLOW_61_in_load1610); - stream_61.add(a); + a=(Token)match(input,63,FOLLOW_63_in_load1716); + stream_63.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iconst_2' { - a=(Token)match(input,62,FOLLOW_62_in_load1628); - stream_62.add(a); + a=(Token)match(input,64,FOLLOW_64_in_load1734); + stream_64.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'iconst_3' { - a=(Token)match(input,63,FOLLOW_63_in_load1646); - stream_63.add(a); + a=(Token)match(input,65,FOLLOW_65_in_load1752); + stream_65.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:134:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'iconst_4' { - a=(Token)match(input,64,FOLLOW_64_in_load1664); - stream_64.add(a); + a=(Token)match(input,66,FOLLOW_66_in_load1770); + stream_66.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'iconst_5' { - a=(Token)match(input,65,FOLLOW_65_in_load1682); - stream_65.add(a); + a=(Token)match(input,67,FOLLOW_67_in_load1788); + stream_67.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'aconst_null' { - a=(Token)match(input,42,FOLLOW_42_in_load1700); - stream_42.add(a); + a=(Token)match(input,44,FOLLOW_44_in_load1806); + stream_44.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'iload_0' { - a=(Token)match(input,82,FOLLOW_82_in_load1718); - stream_82.add(a); + a=(Token)match(input,84,FOLLOW_84_in_load1824); + stream_84.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload_1' { - a=(Token)match(input,83,FOLLOW_83_in_load1736); - stream_83.add(a); + a=(Token)match(input,85,FOLLOW_85_in_load1842); + stream_85.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'iload_2' { - a=(Token)match(input,84,FOLLOW_84_in_load1754); - stream_84.add(a); + a=(Token)match(input,86,FOLLOW_86_in_load1860); + stream_86.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'iload_3' { - a=(Token)match(input,85,FOLLOW_85_in_load1772); - stream_85.add(a); + a=(Token)match(input,87,FOLLOW_87_in_load1878); + stream_87.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'aload_0' { - a=(Token)match(input,44,FOLLOW_44_in_load1790); - stream_44.add(a); + a=(Token)match(input,46,FOLLOW_46_in_load1896); + stream_46.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'aload_1' { - a=(Token)match(input,45,FOLLOW_45_in_load1808); - stream_45.add(a); + a=(Token)match(input,47,FOLLOW_47_in_load1914); + stream_47.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:13: a= 'aload_2' { - a=(Token)match(input,46,FOLLOW_46_in_load1826); - stream_46.add(a); + a=(Token)match(input,48,FOLLOW_48_in_load1932); + stream_48.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:13: a= 'aload_3' { - a=(Token)match(input,47,FOLLOW_47_in_load1844); - stream_47.add(a); + a=(Token)match(input,49,FOLLOW_49_in_load1950); + stream_49.add(a); } @@ -3321,9 +3396,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 146:8: -> ^( LOAD $a) + // 153:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3371,7 +3446,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -3384,76 +3459,76 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_43=new RewriteRuleTokenStream(adaptor,"token 43"); - RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); + RewriteRuleTokenStream stream_45=new RewriteRuleTokenStream(adaptor,"token 45"); + RewriteRuleTokenStream stream_83=new RewriteRuleTokenStream(adaptor,"token 83"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_101=new RewriteRuleTokenStream(adaptor,"token 101"); + RewriteRuleTokenStream stream_103=new RewriteRuleTokenStream(adaptor,"token 103"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) - int alt22=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + int alt23=3; switch ( input.LA(1) ) { - case 81: + case 83: { - alt22=1; + alt23=1; } break; - case 101: + case 103: { - alt22=2; + alt23=2; } break; - case 43: + case 45: { - alt22=3; + alt23=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 22, 0, input); + new NoViableAltException("", 23, 0, input); throw nvae; } - switch (alt22) { + switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,81,FOLLOW_81_in_loadint1894); - stream_81.add(a); + a=(Token)match(input,83,FOLLOW_83_in_loadint2000); + stream_83.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1900); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2006); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,101,FOLLOW_101_in_loadint1920); - stream_101.add(a); + a=(Token)match(input,103,FOLLOW_103_in_loadint2026); + stream_103.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1926); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2032); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,43,FOLLOW_43_in_loadint1946); - stream_43.add(a); + a=(Token)match(input,45,FOLLOW_45_in_loadint2052); + stream_45.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1952); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2058); stream_INTEIRO.add(b); @@ -3476,9 +3551,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 153:11: -> ^( LOAD $a $b) + // 160:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3528,7 +3603,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -3541,137 +3616,137 @@ public final AssemblerParser.store_return store() throws RecognitionException { BytecodesAST a_tree=null; RewriteRuleTokenStream stream_98=new RewriteRuleTokenStream(adaptor,"token 98"); RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97"); - RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); - RewriteRuleTokenStream stream_95=new RewriteRuleTokenStream(adaptor,"token 95"); - RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); + RewriteRuleTokenStream stream_55=new RewriteRuleTokenStream(adaptor,"token 55"); RewriteRuleTokenStream stream_52=new RewriteRuleTokenStream(adaptor,"token 52"); RewriteRuleTokenStream stream_53=new RewriteRuleTokenStream(adaptor,"token 53"); - RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); + RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); + RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99"); + RewriteRuleTokenStream stream_100=new RewriteRuleTokenStream(adaptor,"token 100"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt23=8; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + int alt24=8; switch ( input.LA(1) ) { - case 95: + case 97: { - alt23=1; + alt24=1; } break; - case 96: + case 98: { - alt23=2; + alt24=2; } break; - case 97: + case 99: { - alt23=3; + alt24=3; } break; - case 98: + case 100: { - alt23=4; + alt24=4; } break; - case 50: + case 52: { - alt23=5; + alt24=5; } break; - case 51: + case 53: { - alt23=6; + alt24=6; } break; - case 52: + case 54: { - alt23=7; + alt24=7; } break; - case 53: + case 55: { - alt23=8; + alt24=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 23, 0, input); + new NoViableAltException("", 24, 0, input); throw nvae; } - switch (alt23) { + switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:11: a= 'istore_0' { - a=(Token)match(input,95,FOLLOW_95_in_store2014); - stream_95.add(a); + a=(Token)match(input,97,FOLLOW_97_in_store2120); + stream_97.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'istore_1' { - a=(Token)match(input,96,FOLLOW_96_in_store2032); - stream_96.add(a); + a=(Token)match(input,98,FOLLOW_98_in_store2138); + stream_98.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'istore_2' { - a=(Token)match(input,97,FOLLOW_97_in_store2050); - stream_97.add(a); + a=(Token)match(input,99,FOLLOW_99_in_store2156); + stream_99.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:13: a= 'istore_3' { - a=(Token)match(input,98,FOLLOW_98_in_store2068); - stream_98.add(a); + a=(Token)match(input,100,FOLLOW_100_in_store2174); + stream_100.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'astore_0' { - a=(Token)match(input,50,FOLLOW_50_in_store2086); - stream_50.add(a); + a=(Token)match(input,52,FOLLOW_52_in_store2192); + stream_52.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:161:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:13: a= 'astore_1' { - a=(Token)match(input,51,FOLLOW_51_in_store2104); - stream_51.add(a); + a=(Token)match(input,53,FOLLOW_53_in_store2210); + stream_53.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:13: a= 'astore_2' { - a=(Token)match(input,52,FOLLOW_52_in_store2122); - stream_52.add(a); + a=(Token)match(input,54,FOLLOW_54_in_store2228); + stream_54.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:13: a= 'astore_3' { - a=(Token)match(input,53,FOLLOW_53_in_store2140); - stream_53.add(a); + a=(Token)match(input,55,FOLLOW_55_in_store2246); + stream_55.add(a); } @@ -3692,9 +3767,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 165:9: -> ^( STORE $a) + // 172:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3742,7 +3817,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3755,53 +3830,53 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept BytecodesAST a_tree=null; BytecodesAST b_tree=null; - RewriteRuleTokenStream stream_49=new RewriteRuleTokenStream(adaptor,"token 49"); - RewriteRuleTokenStream stream_94=new RewriteRuleTokenStream(adaptor,"token 94"); + RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96"); + RewriteRuleTokenStream stream_51=new RewriteRuleTokenStream(adaptor,"token 51"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) - int alt24=2; - int LA24_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + int alt25=2; + int LA25_0 = input.LA(1); - if ( (LA24_0==94) ) { - alt24=1; + if ( (LA25_0==96) ) { + alt25=1; } - else if ( (LA24_0==49) ) { - alt24=2; + else if ( (LA25_0==51) ) { + alt25=2; } else { NoViableAltException nvae = - new NoViableAltException("", 24, 0, input); + new NoViableAltException("", 25, 0, input); throw nvae; } - switch (alt24) { + switch (alt25) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:14: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,94,FOLLOW_94_in_storeint2194); - stream_94.add(a); + a=(Token)match(input,96,FOLLOW_96_in_storeint2300); + stream_96.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2200); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2306); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,49,FOLLOW_49_in_storeint2221); - stream_49.add(a); + a=(Token)match(input,51,FOLLOW_51_in_storeint2327); + stream_51.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2227); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2333); stream_INTEIRO.add(b); @@ -3812,7 +3887,7 @@ else if ( (LA24_0==49) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3824,9 +3899,9 @@ else if ( (LA24_0==49) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 171:12: -> ^( STORE $a $b) + // 178:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3876,7 +3951,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -3887,64 +3962,64 @@ public final AssemblerParser.logica_return logica() throws RecognitionException Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); - RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); - RewriteRuleTokenStream stream_100=new RewriteRuleTokenStream(adaptor,"token 100"); + RewriteRuleTokenStream stream_93=new RewriteRuleTokenStream(adaptor,"token 93"); + RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102"); + RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt25=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + int alt26=3; switch ( input.LA(1) ) { - case 59: + case 61: { - alt25=1; + alt26=1; } break; - case 91: + case 93: { - alt25=2; + alt26=2; } break; - case 100: + case 102: { - alt25=3; + alt26=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 25, 0, input); + new NoViableAltException("", 26, 0, input); throw nvae; } - switch (alt25) { + switch (alt26) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:12: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:12: a= 'iand' { - a=(Token)match(input,59,FOLLOW_59_in_logica2287); - stream_59.add(a); + a=(Token)match(input,61,FOLLOW_61_in_logica2393); + stream_61.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ior' { - a=(Token)match(input,91,FOLLOW_91_in_logica2306); - stream_91.add(a); + a=(Token)match(input,93,FOLLOW_93_in_logica2412); + stream_93.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'ixor' { - a=(Token)match(input,100,FOLLOW_100_in_logica2325); - stream_100.add(a); + a=(Token)match(input,102,FOLLOW_102_in_logica2431); + stream_102.add(a); } @@ -3965,9 +4040,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 178:10: -> ^( LOGICA $a) + // 185:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4015,7 +4090,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -4030,264 +4105,264 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException BytecodesAST b_tree=null; RewriteRuleTokenStream stream_79=new RewriteRuleTokenStream(adaptor,"token 79"); RewriteRuleTokenStream stream_78=new RewriteRuleTokenStream(adaptor,"token 78"); - RewriteRuleTokenStream stream_69=new RewriteRuleTokenStream(adaptor,"token 69"); - RewriteRuleTokenStream stream_68=new RewriteRuleTokenStream(adaptor,"token 68"); + RewriteRuleTokenStream stream_59=new RewriteRuleTokenStream(adaptor,"token 59"); RewriteRuleTokenStream stream_77=new RewriteRuleTokenStream(adaptor,"token 77"); - RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_70=new RewriteRuleTokenStream(adaptor,"token 70"); + RewriteRuleTokenStream stream_80=new RewriteRuleTokenStream(adaptor,"token 80"); RewriteRuleTokenStream stream_71=new RewriteRuleTokenStream(adaptor,"token 71"); RewriteRuleTokenStream stream_72=new RewriteRuleTokenStream(adaptor,"token 72"); + RewriteRuleTokenStream stream_81=new RewriteRuleTokenStream(adaptor,"token 81"); RewriteRuleTokenStream stream_73=new RewriteRuleTokenStream(adaptor,"token 73"); RewriteRuleTokenStream stream_74=new RewriteRuleTokenStream(adaptor,"token 74"); RewriteRuleTokenStream stream_75=new RewriteRuleTokenStream(adaptor,"token 75"); RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt26=13; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + int alt27=13; switch ( input.LA(1) ) { - case 74: + case 76: { - alt26=1; + alt27=1; } break; - case 79: + case 81: { - alt26=2; + alt27=2; } break; - case 78: + case 80: { - alt26=3; + alt27=3; } break; - case 75: + case 77: { - alt26=4; + alt27=4; } break; - case 76: + case 78: { - alt26=5; + alt27=5; } break; - case 77: + case 79: { - alt26=6; + alt27=6; } break; - case 68: + case 70: { - alt26=7; + alt27=7; } break; - case 73: + case 75: { - alt26=8; + alt27=8; } break; - case 72: + case 74: { - alt26=9; + alt27=9; } break; - case 69: + case 71: { - alt26=10; + alt27=10; } break; - case 70: + case 72: { - alt26=11; + alt27=11; } break; - case 71: + case 73: { - alt26=12; + alt27=12; } break; - case 57: + case 59: { - alt26=13; + alt27=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 26, 0, input); + new NoViableAltException("", 27, 0, input); throw nvae; } - switch (alt26) { + switch (alt27) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:12: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:12: a= 'ifeq' b= ID { - a=(Token)match(input,74,FOLLOW_74_in_desvio2376); - stream_74.add(a); + a=(Token)match(input,76,FOLLOW_76_in_desvio2482); + stream_76.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2382); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2488); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'ifne' b= ID { - a=(Token)match(input,79,FOLLOW_79_in_desvio2401); - stream_79.add(a); + a=(Token)match(input,81,FOLLOW_81_in_desvio2507); + stream_81.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2407); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2513); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'iflt' b= ID { - a=(Token)match(input,78,FOLLOW_78_in_desvio2426); - stream_78.add(a); + a=(Token)match(input,80,FOLLOW_80_in_desvio2532); + stream_80.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2432); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2538); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'ifge' b= ID { - a=(Token)match(input,75,FOLLOW_75_in_desvio2451); - stream_75.add(a); + a=(Token)match(input,77,FOLLOW_77_in_desvio2557); + stream_77.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2457); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2563); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'ifgt' b= ID { - a=(Token)match(input,76,FOLLOW_76_in_desvio2476); - stream_76.add(a); + a=(Token)match(input,78,FOLLOW_78_in_desvio2582); + stream_78.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2482); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2588); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:186:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'ifle' b= ID { - a=(Token)match(input,77,FOLLOW_77_in_desvio2501); - stream_77.add(a); + a=(Token)match(input,79,FOLLOW_79_in_desvio2607); + stream_79.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2507); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2613); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,68,FOLLOW_68_in_desvio2526); - stream_68.add(a); + a=(Token)match(input,70,FOLLOW_70_in_desvio2632); + stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2532); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2638); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2551); - stream_73.add(a); + a=(Token)match(input,75,FOLLOW_75_in_desvio2657); + stream_75.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2557); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2663); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2576); - stream_72.add(a); + a=(Token)match(input,74,FOLLOW_74_in_desvio2682); + stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2582); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2688); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:197:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,69,FOLLOW_69_in_desvio2601); - stream_69.add(a); + a=(Token)match(input,71,FOLLOW_71_in_desvio2707); + stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2607); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2713); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2626); - stream_70.add(a); + a=(Token)match(input,72,FOLLOW_72_in_desvio2732); + stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2632); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2738); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:14: a= 'if_icmple' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2651); - stream_71.add(a); + a=(Token)match(input,73,FOLLOW_73_in_desvio2757); + stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2657); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2763); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:14: a= 'goto' b= ID { - a=(Token)match(input,57,FOLLOW_57_in_desvio2676); - stream_57.add(a); + a=(Token)match(input,59,FOLLOW_59_in_desvio2782); + stream_59.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2682); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2788); stream_ID.add(b); @@ -4298,7 +4373,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -4310,9 +4385,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 195:10: -> ^( DESVIO $a $b) + // 202:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4362,7 +4437,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -4373,64 +4448,64 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { Token a=null; BytecodesAST a_tree=null; - RewriteRuleTokenStream stream_105=new RewriteRuleTokenStream(adaptor,"token 105"); - RewriteRuleTokenStream stream_104=new RewriteRuleTokenStream(adaptor,"token 104"); - RewriteRuleTokenStream stream_54=new RewriteRuleTokenStream(adaptor,"token 54"); + RewriteRuleTokenStream stream_56=new RewriteRuleTokenStream(adaptor,"token 56"); + RewriteRuleTokenStream stream_107=new RewriteRuleTokenStream(adaptor,"token 107"); + RewriteRuleTokenStream stream_106=new RewriteRuleTokenStream(adaptor,"token 106"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) - int alt27=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + int alt28=3; switch ( input.LA(1) ) { - case 104: + case 106: { - alt27=1; + alt28=1; } break; - case 105: + case 107: { - alt27=2; + alt28=2; } break; - case 54: + case 56: { - alt27=3; + alt28=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 27, 0, input); + new NoViableAltException("", 28, 0, input); throw nvae; } - switch (alt27) { + switch (alt28) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:11: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:11: a= 'pop' { - a=(Token)match(input,104,FOLLOW_104_in_pilha2743); - stream_104.add(a); + a=(Token)match(input,106,FOLLOW_106_in_pilha2849); + stream_106.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:13: a= 'pop2' { - a=(Token)match(input,105,FOLLOW_105_in_pilha2761); - stream_105.add(a); + a=(Token)match(input,107,FOLLOW_107_in_pilha2867); + stream_107.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:207:13: a= 'dup' { - a=(Token)match(input,54,FOLLOW_54_in_pilha2779); - stream_54.add(a); + a=(Token)match(input,56,FOLLOW_56_in_pilha2885); + stream_56.add(a); } @@ -4451,9 +4526,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 202:9: -> ^( PILHA $a) + // 209:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4502,7 +4577,7 @@ public static class classe_return extends ParserRuleReturnScope { // $ANTLR start "classe" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; public final AssemblerParser.classe_return classe() throws RecognitionException { AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); retval.start = input.LT(1); @@ -4510,40 +4585,40 @@ public final AssemblerParser.classe_return classe() throws RecognitionException BytecodesAST root_0 = null; - Token char_literal70=null; + Token char_literal69=null; Token cls=null; List list_cls=null; - BytecodesAST char_literal70_tree=null; + BytecodesAST char_literal69_tree=null; BytecodesAST cls_tree=null; retval.classe = new ArrayList(); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:8: (cls+= ID '/' )* (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:6: ( (cls+= ID '/' )* (cls+= ID ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:8: (cls+= ID '/' )* (cls+= ID ) { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:8: (cls+= ID '/' )* - loop28: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:8: (cls+= ID '/' )* + loop29: do { - int alt28=2; - int LA28_0 = input.LA(1); + int alt29=2; + int LA29_0 = input.LA(1); - if ( (LA28_0==ID) ) { - int LA28_1 = input.LA(2); + if ( (LA29_0==ID) ) { + int LA29_1 = input.LA(2); - if ( (LA28_1==40) ) { - int LA28_2 = input.LA(3); + if ( (LA29_1==42) ) { + int LA29_2 = input.LA(3); - if ( (LA28_2==ID) ) { - int LA28_4 = input.LA(4); + if ( (LA29_2==ID) ) { + int LA29_4 = input.LA(4); - if ( (LA28_4==NEWLINE||LA28_4==40) ) { - alt28=1; + if ( (LA29_4==NEWLINE||LA29_4==42) ) { + alt29=1; } @@ -4556,11 +4631,11 @@ public final AssemblerParser.classe_return classe() throws RecognitionException } - switch (alt28) { + switch (alt29) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2845); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2951); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4570,26 +4645,26 @@ public final AssemblerParser.classe_return classe() throws RecognitionException list_cls.add(cls); - char_literal70=(Token)match(input,40,FOLLOW_40_in_classe2847); - char_literal70_tree = - (BytecodesAST)adaptor.create(char_literal70) + char_literal69=(Token)match(input,42,FOLLOW_42_in_classe2953); + char_literal69_tree = + (BytecodesAST)adaptor.create(char_literal69) ; - adaptor.addChild(root_0, char_literal70_tree); + adaptor.addChild(root_0, char_literal69_tree); } break; default : - break loop28; + break loop29; } } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:25: (cls+= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:26: cls+= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:25: (cls+= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:26: cls+= ID { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2856); + cls=(Token)match(input,ID,FOLLOW_ID_in_classe2962); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -4635,7 +4710,7 @@ public static class chamadaMetodo_return extends ParserRuleReturnScope { // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:1: chamadaMetodo : (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo -> ^( METHOD_CALL $n argumentos $tip) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:1: chamadaMetodo : (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo -> ^( METHOD_CALL $n argumentos $tip) ; public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); retval.start = input.LT(1); @@ -4644,59 +4719,59 @@ public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws Recogni BytecodesAST root_0 = null; Token n=null; - Token char_literal72=null; - Token char_literal74=null; + Token char_literal71=null; + Token char_literal73=null; AssemblerParser.tipo_return tip =null; - AssemblerParser.argumentos_return argumentos71 =null; + AssemblerParser.argumentos_return argumentos70 =null; - AssemblerParser.argumentos_return argumentos73 =null; + AssemblerParser.argumentos_return argumentos72 =null; BytecodesAST n_tree=null; - BytecodesAST char_literal72_tree=null; - BytecodesAST char_literal74_tree=null; - RewriteRuleTokenStream stream_30=new RewriteRuleTokenStream(adaptor,"token 30"); + BytecodesAST char_literal71_tree=null; + BytecodesAST char_literal73_tree=null; RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); + RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_argumentos=new RewriteRuleSubtreeStream(adaptor,"rule argumentos"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo -> ^( METHOD_CALL $n argumentos $tip) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:10: (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:6: ( (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo -> ^( METHOD_CALL $n argumentos $tip) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:10: (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:10: (n= INIT |n= ID ) - int alt29=2; - int LA29_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:10: (n= INIT |n= ID ) + int alt30=2; + int LA30_0 = input.LA(1); - if ( (LA29_0==INIT) ) { - alt29=1; + if ( (LA30_0==INIT) ) { + alt30=1; } - else if ( (LA29_0==ID) ) { - alt29=2; + else if ( (LA30_0==ID) ) { + alt30=2; } else { NoViableAltException nvae = - new NoViableAltException("", 29, 0, input); + new NoViableAltException("", 30, 0, input); throw nvae; } - switch (alt29) { + switch (alt30) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:11: n= INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:11: n= INIT { - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2893); + n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2996); stream_INIT.add(n); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:22: n= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:22: n= ID { - n=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo2901); + n=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo3004); stream_ID.add(n); @@ -4706,52 +4781,52 @@ else if ( (LA29_0==ID) ) { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:30: ( argumentos | '(' argumentos ')' ) - int alt30=2; - int LA30_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:30: ( argumentos | '(' argumentos ')' ) + int alt31=2; + int LA31_0 = input.LA(1); - if ( (LA30_0==ID||LA30_0==TIPO_REF||LA30_0==31) ) { - alt30=1; + if ( (LA31_0==ID||LA31_0==TIPO_REF||LA31_0==33) ) { + alt31=1; } - else if ( (LA30_0==30) ) { - alt30=2; + else if ( (LA31_0==32) ) { + alt31=2; } else { NoViableAltException nvae = - new NoViableAltException("", 30, 0, input); + new NoViableAltException("", 31, 0, input); throw nvae; } - switch (alt30) { + switch (alt31) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:31: argumentos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:31: argumentos { - pushFollow(FOLLOW_argumentos_in_chamadaMetodo2905); - argumentos71=argumentos(); + pushFollow(FOLLOW_argumentos_in_chamadaMetodo3008); + argumentos70=argumentos(); state._fsp--; - stream_argumentos.add(argumentos71.getTree()); + stream_argumentos.add(argumentos70.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:44: '(' argumentos ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:44: '(' argumentos ')' { - char_literal72=(Token)match(input,30,FOLLOW_30_in_chamadaMetodo2909); - stream_30.add(char_literal72); + char_literal71=(Token)match(input,32,FOLLOW_32_in_chamadaMetodo3012); + stream_32.add(char_literal71); - pushFollow(FOLLOW_argumentos_in_chamadaMetodo2911); - argumentos73=argumentos(); + pushFollow(FOLLOW_argumentos_in_chamadaMetodo3014); + argumentos72=argumentos(); state._fsp--; - stream_argumentos.add(argumentos73.getTree()); + stream_argumentos.add(argumentos72.getTree()); - char_literal74=(Token)match(input,32,FOLLOW_32_in_chamadaMetodo2913); - stream_32.add(char_literal74); + char_literal73=(Token)match(input,34,FOLLOW_34_in_chamadaMetodo3016); + stream_34.add(char_literal73); } @@ -4760,7 +4835,7 @@ else if ( (LA30_0==30) ) { } - pushFollow(FOLLOW_tipo_in_chamadaMetodo2921); + pushFollow(FOLLOW_tipo_in_chamadaMetodo3024); tip=tipo(); state._fsp--; @@ -4768,7 +4843,7 @@ else if ( (LA30_0==30) ) { stream_tipo.add(tip.getTree()); // AST REWRITE - // elements: tip, argumentos, n + // elements: argumentos, tip, n // token labels: n // rule labels: retval, tip // token list labels: @@ -4780,9 +4855,9 @@ else if ( (LA30_0==30) ) { RewriteRuleSubtreeStream stream_tip=new RewriteRuleSubtreeStream(adaptor,"rule tip",tip!=null?tip.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 227:12: -> ^( METHOD_CALL $n argumentos $tip) + // 221:12: -> ^( METHOD_CALL $n argumentos $tip) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:15: ^( METHOD_CALL $n argumentos $tip) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:15: ^( METHOD_CALL $n argumentos $tip) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4834,7 +4909,7 @@ public static class argumentos_return extends ParserRuleReturnScope { // $ANTLR start "argumentos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:1: argumentos : ( '()' -> ^( ARGS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( ARGS $a) )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:1: argumentos : ( '()' -> ^( ARGS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( ARGS $a) )+ ); public final AssemblerParser.argumentos_return argumentos() throws RecognitionException { AssemblerParser.argumentos_return retval = new AssemblerParser.argumentos_return(); retval.start = input.LT(1); @@ -4843,38 +4918,38 @@ public final AssemblerParser.argumentos_return argumentos() throws RecognitionEx BytecodesAST root_0 = null; Token a=null; - Token string_literal75=null; + Token string_literal74=null; BytecodesAST a_tree=null; - BytecodesAST string_literal75_tree=null; + BytecodesAST string_literal74_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_31=new RewriteRuleTokenStream(adaptor,"token 31"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:2: ( '()' -> ^( ARGS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( ARGS $a) )+ ) - int alt32=2; - int LA32_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:2: ( '()' -> ^( ARGS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( ARGS $a) )+ ) + int alt33=2; + int LA33_0 = input.LA(1); - if ( (LA32_0==31) ) { - alt32=1; + if ( (LA33_0==33) ) { + alt33=1; } - else if ( (LA32_0==ID||LA32_0==TIPO_REF) ) { - alt32=2; + else if ( (LA33_0==ID||LA33_0==TIPO_REF) ) { + alt33=2; } else { NoViableAltException nvae = - new NoViableAltException("", 32, 0, input); + new NoViableAltException("", 33, 0, input); throw nvae; } - switch (alt32) { + switch (alt33) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:4: '()' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:4: '()' { - string_literal75=(Token)match(input,31,FOLLOW_31_in_argumentos2966); - stream_31.add(string_literal75); + string_literal74=(Token)match(input,33,FOLLOW_33_in_argumentos3069); + stream_33.add(string_literal74); // AST REWRITE @@ -4888,9 +4963,9 @@ else if ( (LA32_0==ID||LA32_0==TIPO_REF) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 231:9: -> ^( ARGS VOID ) + // 225:9: -> ^( ARGS VOID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:12: ^( ARGS VOID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:12: ^( ARGS VOID ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4912,43 +4987,43 @@ else if ( (LA32_0==ID||LA32_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:4: (a= ID |a= TIPO_REF )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:232:4: (a= ID |a= TIPO_REF )+ - int cnt31=0; - loop31: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:4: (a= ID |a= TIPO_REF )+ + int cnt32=0; + loop32: do { - int alt31=3; - int LA31_0 = input.LA(1); + int alt32=3; + int LA32_0 = input.LA(1); - if ( (LA31_0==TIPO_REF) ) { - int LA31_1 = input.LA(2); + if ( (LA32_0==TIPO_REF) ) { + int LA32_1 = input.LA(2); - if ( (LA31_1==ID||LA31_1==INT||(LA31_1 >= TIPO_REF && LA31_1 <= VOID)||LA31_1==32) ) { - alt31=2; + if ( (LA32_1==ID||LA32_1==INT||(LA32_1 >= TIPO_REF && LA32_1 <= VOID)||LA32_1==34) ) { + alt32=2; } } - else if ( (LA31_0==ID) ) { - alt31=1; + else if ( (LA32_0==ID) ) { + alt32=1; } - switch (alt31) { + switch (alt32) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:9: a= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:9: a= ID { - a=(Token)match(input,ID,FOLLOW_ID_in_argumentos2993); + a=(Token)match(input,ID,FOLLOW_ID_in_argumentos3096); stream_ID.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:9: a= TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:9: a= TIPO_REF { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_argumentos3008); + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_argumentos3111); stream_TIPO_REF.add(a); @@ -4956,12 +5031,12 @@ else if ( (LA31_0==ID) ) { break; default : - if ( cnt31 >= 1 ) break loop31; + if ( cnt32 >= 1 ) break loop32; EarlyExitException eee = - new EarlyExitException(31, input); + new EarlyExitException(32, input); throw eee; } - cnt31++; + cnt32++; } while (true); @@ -4977,13 +5052,13 @@ else if ( (LA31_0==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 236:4: -> ( ^( ARGS $a) )+ + // 230:4: -> ( ^( ARGS $a) )+ { if ( !(stream_a.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:7: ^( ARGS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:7: ^( ARGS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -5037,7 +5112,7 @@ public static class contagemParametros_return extends ParserRuleReturnScope { // $ANTLR start "contagemParametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:1: contagemParametros returns [int qtdParams] : ( '()' | ( ID | TIPO_REF )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:1: contagemParametros returns [int qtdParams] : ( '()' | ( ID | TIPO_REF )+ ); public final AssemblerParser.contagemParametros_return contagemParametros() throws RecognitionException { AssemblerParser.contagemParametros_return retval = new AssemblerParser.contagemParametros_return(); retval.start = input.LT(1); @@ -5045,44 +5120,44 @@ public final AssemblerParser.contagemParametros_return contagemParametros() thro BytecodesAST root_0 = null; - Token string_literal76=null; - Token ID77=null; - Token TIPO_REF78=null; + Token string_literal75=null; + Token ID76=null; + Token TIPO_REF77=null; - BytecodesAST string_literal76_tree=null; - BytecodesAST ID77_tree=null; - BytecodesAST TIPO_REF78_tree=null; + BytecodesAST string_literal75_tree=null; + BytecodesAST ID76_tree=null; + BytecodesAST TIPO_REF77_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:240:2: ( '()' | ( ID | TIPO_REF )+ ) - int alt34=2; - int LA34_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:2: ( '()' | ( ID | TIPO_REF )+ ) + int alt35=2; + int LA35_0 = input.LA(1); - if ( (LA34_0==31) ) { - alt34=1; + if ( (LA35_0==33) ) { + alt35=1; } - else if ( (LA34_0==ID||LA34_0==TIPO_REF) ) { - alt34=2; + else if ( (LA35_0==ID||LA35_0==TIPO_REF) ) { + alt35=2; } else { NoViableAltException nvae = - new NoViableAltException("", 34, 0, input); + new NoViableAltException("", 35, 0, input); throw nvae; } - switch (alt34) { + switch (alt35) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:240:4: '()' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:4: '()' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal76=(Token)match(input,31,FOLLOW_31_in_contagemParametros3047); - string_literal76_tree = - (BytecodesAST)adaptor.create(string_literal76) + string_literal75=(Token)match(input,33,FOLLOW_33_in_contagemParametros3150); + string_literal75_tree = + (BytecodesAST)adaptor.create(string_literal75) ; - adaptor.addChild(root_0, string_literal76_tree); + adaptor.addChild(root_0, string_literal75_tree); retval.qtdParams = 0; @@ -5090,35 +5165,35 @@ else if ( (LA34_0==ID||LA34_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:4: ( ID | TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:4: ( ID | TIPO_REF )+ { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:4: ( ID | TIPO_REF )+ - int cnt33=0; - loop33: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:4: ( ID | TIPO_REF )+ + int cnt34=0; + loop34: do { - int alt33=3; - int LA33_0 = input.LA(1); + int alt34=3; + int LA34_0 = input.LA(1); - if ( (LA33_0==ID) ) { - alt33=1; + if ( (LA34_0==ID) ) { + alt34=1; } - else if ( (LA33_0==TIPO_REF) ) { - alt33=2; + else if ( (LA34_0==TIPO_REF) ) { + alt34=2; } - switch (alt33) { + switch (alt34) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:242:9: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:9: ID { - ID77=(Token)match(input,ID,FOLLOW_ID_in_contagemParametros3064); - ID77_tree = - (BytecodesAST)adaptor.create(ID77) + ID76=(Token)match(input,ID,FOLLOW_ID_in_contagemParametros3167); + ID76_tree = + (BytecodesAST)adaptor.create(ID76) ; - adaptor.addChild(root_0, ID77_tree); + adaptor.addChild(root_0, ID76_tree); retval.qtdParams++; @@ -5126,13 +5201,13 @@ else if ( (LA33_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:9: TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:9: TIPO_REF { - TIPO_REF78=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_contagemParametros3076); - TIPO_REF78_tree = - (BytecodesAST)adaptor.create(TIPO_REF78) + TIPO_REF77=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_contagemParametros3179); + TIPO_REF77_tree = + (BytecodesAST)adaptor.create(TIPO_REF77) ; - adaptor.addChild(root_0, TIPO_REF78_tree); + adaptor.addChild(root_0, TIPO_REF77_tree); retval.qtdParams++; @@ -5141,12 +5216,12 @@ else if ( (LA33_0==TIPO_REF) ) { break; default : - if ( cnt33 >= 1 ) break loop33; + if ( cnt34 >= 1 ) break loop34; EarlyExitException eee = - new EarlyExitException(33, input); + new EarlyExitException(34, input); throw eee; } - cnt33++; + cnt34++; } while (true); @@ -5185,7 +5260,7 @@ public static class campo_return extends ParserRuleReturnScope { // $ANTLR start "campo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:247:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; public final AssemblerParser.campo_return campo() throws RecognitionException { AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); retval.start = input.LT(1); @@ -5194,12 +5269,12 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { BytecodesAST root_0 = null; Token cmp=null; - Token char_literal79=null; + Token char_literal78=null; Token cls=null; List list_cls=null; BytecodesAST cmp_tree=null; - BytecodesAST char_literal79_tree=null; + BytecodesAST char_literal78_tree=null; BytecodesAST cls_tree=null; @@ -5207,35 +5282,35 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { retval.campo =""; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:252:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:252:8: (cls+= ID '/' )+ cmp= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:246:6: ( (cls+= ID '/' )+ cmp= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:246:8: (cls+= ID '/' )+ cmp= ID { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:252:8: (cls+= ID '/' )+ - int cnt35=0; - loop35: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:246:8: (cls+= ID '/' )+ + int cnt36=0; + loop36: do { - int alt35=2; - int LA35_0 = input.LA(1); + int alt36=2; + int LA36_0 = input.LA(1); - if ( (LA35_0==ID) ) { - int LA35_1 = input.LA(2); + if ( (LA36_0==ID) ) { + int LA36_1 = input.LA(2); - if ( (LA35_1==40) ) { - alt35=1; + if ( (LA36_1==42) ) { + alt36=1; } } - switch (alt35) { + switch (alt36) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:252:9: cls+= ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:246:9: cls+= ID '/' { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo3118); + cls=(Token)match(input,ID,FOLLOW_ID_in_campo3221); cls_tree = (BytecodesAST)adaptor.create(cls) ; @@ -5245,27 +5320,27 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { list_cls.add(cls); - char_literal79=(Token)match(input,40,FOLLOW_40_in_campo3120); - char_literal79_tree = - (BytecodesAST)adaptor.create(char_literal79) + char_literal78=(Token)match(input,42,FOLLOW_42_in_campo3223); + char_literal78_tree = + (BytecodesAST)adaptor.create(char_literal78) ; - adaptor.addChild(root_0, char_literal79_tree); + adaptor.addChild(root_0, char_literal78_tree); } break; default : - if ( cnt35 >= 1 ) break loop35; + if ( cnt36 >= 1 ) break loop36; EarlyExitException eee = - new EarlyExitException(35, input); + new EarlyExitException(36, input); throw eee; } - cnt35++; + cnt36++; } while (true); - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo3128); + cmp=(Token)match(input,ID,FOLLOW_ID_in_campo3231); cmp_tree = (BytecodesAST)adaptor.create(cmp) ; @@ -5302,187 +5377,190 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { - public static final BitSet FOLLOW_instrucao_in_programa142 = new BitSet(new long[]{0xFFFFFC0200400802L,0x00001FFFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_instrucao170 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao184 = new BitSet(new long[]{0x0000000400000002L}); - public static final BitSet FOLLOW_34_in_instrucao187 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_operacao209 = new BitSet(new long[]{0xFFFFFC0000400000L,0x00001FFFFFFFFFFFL}); - public static final BitSet FOLLOW_comando_in_operacao211 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_comando_in_operacao215 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_label237 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_41_in_label239 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_manipulacaoObjetos_in_comando257 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_aritmetica_in_comando275 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_load_in_comando293 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_loadint_in_comando311 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_store_in_comando329 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_storeint_in_comando347 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_desvio_in_comando365 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_logica_in_comando383 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_pilha_in_comando401 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_retorno_in_comando419 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_103_in_comando437 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_NEWLINE_in_comando453 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_definicaoClasse479 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_definicaoClasse481 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse483 = new BitSet(new long[]{0x000000D000000000L}); - public static final BitSet FOLLOW_superClasse_in_definicaoClasse486 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse488 = new BitSet(new long[]{0x0000005000000000L}); - public static final BitSet FOLLOW_membroClasse_in_definicaoClasse493 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse495 = new BitSet(new long[]{0x0000005000000002L}); - public static final BitSet FOLLOW_39_in_superClasse556 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse558 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_36_in_membroClasse579 = new BitSet(new long[]{0x0000000000000800L,0x0000200000000000L}); - public static final BitSet FOLLOW_109_in_membroClasse581 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_membroClasse584 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse586 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_membroClasse604 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INIT_in_membroClasse606 = new BitSet(new long[]{0x00000000C8000800L}); - public static final BitSet FOLLOW_parametros_in_membroClasse609 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_30_in_membroClasse613 = new BitSet(new long[]{0x0000000088000800L}); - public static final BitSet FOLLOW_parametros_in_membroClasse615 = new BitSet(new long[]{0x0000000100000000L}); - public static final BitSet FOLLOW_32_in_membroClasse617 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse620 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse622 = new BitSet(new long[]{0xFFFFFC2800400800L,0x00001FFFFFFFFFFFL}); - public static final BitSet FOLLOW_limite_in_membroClasse625 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse627 = new BitSet(new long[]{0xFFFFFC0800400800L,0x00001FFFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse631 = new BitSet(new long[]{0xFFFFFC0800400800L,0x00001FFFFFFFFFFFL}); - public static final BitSet FOLLOW_35_in_membroClasse634 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_membroClasse663 = new BitSet(new long[]{0x0000000000000800L,0x0000200000000000L}); - public static final BitSet FOLLOW_109_in_membroClasse665 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_membroClasse668 = new BitSet(new long[]{0x00000000C8000800L}); - public static final BitSet FOLLOW_parametros_in_membroClasse671 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_30_in_membroClasse675 = new BitSet(new long[]{0x0000000088000800L}); - public static final BitSet FOLLOW_parametros_in_membroClasse677 = new BitSet(new long[]{0x0000000100000000L}); - public static final BitSet FOLLOW_32_in_membroClasse679 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse686 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse688 = new BitSet(new long[]{0xFFFFFC2800400800L,0x00001FFFFFFFFFFFL}); - public static final BitSet FOLLOW_limite_in_membroClasse691 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse693 = new BitSet(new long[]{0xFFFFFC0800400800L,0x00001FFFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse697 = new BitSet(new long[]{0xFFFFFC0800400800L,0x00001FFFFFFFFFFFL}); - public static final BitSet FOLLOW_35_in_membroClasse700 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_37_in_limite749 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_limite751 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_parametros773 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_parametros800 = new BitSet(new long[]{0x0000000008000802L}); - public static final BitSet FOLLOW_TIPO_REF_in_parametros815 = new BitSet(new long[]{0x0000000008000802L}); - public static final BitSet FOLLOW_55_in_manipulacaoObjetos877 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos883 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos885 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_manipulacaoObjetos909 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos915 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos917 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_106_in_manipulacaoObjetos955 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos961 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos963 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_107_in_manipulacaoObjetos1001 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos1007 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1009 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_manipulacaoObjetos1047 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1053 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_40_in_manipulacaoObjetos1055 = new BitSet(new long[]{0x0000000000001800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1061 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_manipulacaoObjetos1122 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1128 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_40_in_manipulacaoObjetos1130 = new BitSet(new long[]{0x0000000000001800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1136 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_manipulacaoObjetos1198 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1204 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_40_in_manipulacaoObjetos1206 = new BitSet(new long[]{0x0000000000001800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1212 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_102_in_manipulacaoObjetos1273 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1278 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_aritmetica1356 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_99_in_aritmetica1380 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_aritmetica1404 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_aritmetica1428 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_aritmetica1452 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_aritmetica1476 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_aritmetica1500 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_load1574 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_load1592 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_load1610 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load1628 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load1646 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_load1664 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_load1682 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_42_in_load1700 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_load1718 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_load1736 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_load1754 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_load1772 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load1790 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_load1808 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load1826 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1844 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_loadint1894 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1900 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_101_in_loadint1920 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1926 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_43_in_loadint1946 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1952 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_store2014 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_store2032 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_store2050 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_store2068 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_50_in_store2086 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_store2104 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_store2122 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_store2140 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_storeint2194 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2200 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_storeint2221 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2227 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_logica2287 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_logica2306 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_100_in_logica2325 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_desvio2376 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2382 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_desvio2401 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2407 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_desvio2426 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2432 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_desvio2451 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2457 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_desvio2476 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2482 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_desvio2501 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2507 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_desvio2526 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2532 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2551 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2557 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2576 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2582 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_desvio2601 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2607 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2626 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2632 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2651 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2657 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_desvio2676 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2682 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_104_in_pilha2743 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_105_in_pilha2761 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_pilha2779 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2845 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_40_in_classe2847 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_classe2856 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2893 = new BitSet(new long[]{0x00000000C8000800L}); - public static final BitSet FOLLOW_ID_in_chamadaMetodo2901 = new BitSet(new long[]{0x00000000C8000800L}); - public static final BitSet FOLLOW_argumentos_in_chamadaMetodo2905 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_30_in_chamadaMetodo2909 = new BitSet(new long[]{0x0000000088000800L}); - public static final BitSet FOLLOW_argumentos_in_chamadaMetodo2911 = new BitSet(new long[]{0x0000000100000000L}); - public static final BitSet FOLLOW_32_in_chamadaMetodo2913 = new BitSet(new long[]{0x0000000018002000L}); - public static final BitSet FOLLOW_tipo_in_chamadaMetodo2921 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_31_in_argumentos2966 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_argumentos2993 = new BitSet(new long[]{0x0000000008000802L}); - public static final BitSet FOLLOW_TIPO_REF_in_argumentos3008 = new BitSet(new long[]{0x0000000008000802L}); - public static final BitSet FOLLOW_31_in_contagemParametros3047 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_contagemParametros3064 = new BitSet(new long[]{0x0000000008000802L}); - public static final BitSet FOLLOW_TIPO_REF_in_contagemParametros3076 = new BitSet(new long[]{0x0000000008000802L}); - public static final BitSet FOLLOW_ID_in_campo3118 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_40_in_campo3120 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_campo3128 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_instrucao_in_programa152 = new BitSet(new long[]{0xFFFFF00800800802L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_instrucao180 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao194 = new BitSet(new long[]{0x0000001000000002L}); + public static final BitSet FOLLOW_36_in_instrucao197 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_label_in_operacao219 = new BitSet(new long[]{0xFFFFF00000800000L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_comando_in_operacao221 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_comando_in_operacao225 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_label247 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_43_in_label249 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_manipulacaoObjetos_in_comando267 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_aritmetica_in_comando285 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_load_in_comando303 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_loadint_in_comando321 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_store_in_comando339 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_storeint_in_comando357 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_desvio_in_comando375 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_logica_in_comando393 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_pilha_in_comando411 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_retorno_in_comando429 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_105_in_comando447 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_comando463 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_definicaoClasse486 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_definicaoClasse488 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse490 = new BitSet(new long[]{0x0000034000000000L}); + public static final BitSet FOLLOW_superClasse_in_definicaoClasse493 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse495 = new BitSet(new long[]{0x0000014000000000L}); + public static final BitSet FOLLOW_membroClasse_in_definicaoClasse500 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse502 = new BitSet(new long[]{0x0000014000000002L}); + public static final BitSet FOLLOW_41_in_superClasse563 = new BitSet(new long[]{0x0000000020000000L}); + public static final BitSet FOLLOW_TIPO_REF_in_superClasse565 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_membroClasse586 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); + public static final BitSet FOLLOW_111_in_membroClasse588 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse591 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse593 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_membroClasse611 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INIT_in_membroClasse613 = new BitSet(new long[]{0x0000000320000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse616 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_32_in_membroClasse620 = new BitSet(new long[]{0x0000000220000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse622 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_34_in_membroClasse624 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_VOID_in_membroClasse627 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse629 = new BitSet(new long[]{0xFFFFF0A000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse632 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse634 = new BitSet(new long[]{0xFFFFF02000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse638 = new BitSet(new long[]{0xFFFFF02000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_37_in_membroClasse641 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_membroClasse670 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); + public static final BitSet FOLLOW_111_in_membroClasse672 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse675 = new BitSet(new long[]{0x0000000320000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse678 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_32_in_membroClasse682 = new BitSet(new long[]{0x0000000220000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse684 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_34_in_membroClasse686 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse693 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse695 = new BitSet(new long[]{0xFFFFF0A000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse698 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse700 = new BitSet(new long[]{0xFFFFF02000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse704 = new BitSet(new long[]{0xFFFFF02000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_37_in_membroClasse707 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_limite756 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_limite758 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_parametros780 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_parametros807 = new BitSet(new long[]{0x0000000020000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros822 = new BitSet(new long[]{0x0000000020000802L}); + public static final BitSet FOLLOW_50_in_retorno868 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_retorno886 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_110_in_retorno904 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_manipulacaoObjetos983 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos989 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos991 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_manipulacaoObjetos1015 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos1021 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1023 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_108_in_manipulacaoObjetos1061 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos1067 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1069 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_109_in_manipulacaoObjetos1107 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_campo_in_manipulacaoObjetos1113 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1115 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_manipulacaoObjetos1153 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1159 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_manipulacaoObjetos1161 = new BitSet(new long[]{0x0000000000001800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1167 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_manipulacaoObjetos1228 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1234 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_manipulacaoObjetos1236 = new BitSet(new long[]{0x0000000000001800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1242 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_manipulacaoObjetos1304 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1310 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_manipulacaoObjetos1312 = new BitSet(new long[]{0x0000000000001800L}); + public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1318 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_104_in_manipulacaoObjetos1379 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1384 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_aritmetica1462 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_101_in_aritmetica1486 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_aritmetica1510 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_aritmetica1534 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_aritmetica1558 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_aritmetica1582 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_aritmetica1606 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_load1680 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load1698 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load1716 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_load1734 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_load1752 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_load1770 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_load1788 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load1806 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_load1824 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_load1842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_load1860 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_load1878 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load1896 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1914 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1932 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1950 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_loadint2000 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2006 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_103_in_loadint2026 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2032 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_loadint2052 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2058 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_store2120 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_store2138 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_store2156 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_100_in_store2174 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_store2192 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_store2210 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_store2228 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_store2246 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_storeint2300 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2306 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_storeint2327 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2333 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_logica2393 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_logica2412 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_102_in_logica2431 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_desvio2482 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2488 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_desvio2507 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2513 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_desvio2532 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2538 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_desvio2557 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2563 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_desvio2582 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2588 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_desvio2607 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2613 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2632 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2638 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_desvio2657 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2663 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2682 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2688 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2707 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2713 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2732 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2738 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2757 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2763 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio2782 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2788 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_106_in_pilha2849 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_107_in_pilha2867 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_pilha2885 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_classe2951 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_classe2953 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_classe2962 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INIT_in_chamadaMetodo2996 = new BitSet(new long[]{0x0000000320000800L}); + public static final BitSet FOLLOW_ID_in_chamadaMetodo3004 = new BitSet(new long[]{0x0000000320000800L}); + public static final BitSet FOLLOW_argumentos_in_chamadaMetodo3008 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_32_in_chamadaMetodo3012 = new BitSet(new long[]{0x0000000220000800L}); + public static final BitSet FOLLOW_argumentos_in_chamadaMetodo3014 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_34_in_chamadaMetodo3016 = new BitSet(new long[]{0x0000000060002000L}); + public static final BitSet FOLLOW_tipo_in_chamadaMetodo3024 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_33_in_argumentos3069 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_argumentos3096 = new BitSet(new long[]{0x0000000020000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_argumentos3111 = new BitSet(new long[]{0x0000000020000802L}); + public static final BitSet FOLLOW_33_in_contagemParametros3150 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_contagemParametros3167 = new BitSet(new long[]{0x0000000020000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_contagemParametros3179 = new BitSet(new long[]{0x0000000020000802L}); + public static final BitSet FOLLOW_ID_in_campo3221 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_campo3223 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_campo3231 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 16dbca6..9699fea 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,14 +1,15 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-17 19:14:28 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-18 12:35:14 package br.ufpb.iged.interpretador.parser; - import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; - import br.ufpb.iged.interpretador.symboltable.classes.Escopo; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; - import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; - import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; - import br.ufpb.iged.interpretador.symboltable.classes.EscopoLocal; + import br.ufpb.iged.interpretador.excecoes.LabelException; +import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; +import br.ufpb.iged.interpretador.symboltable.classes.Escopo; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloVariavel; +import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; +import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; +import br.ufpb.iged.interpretador.symboltable.classes.EscopoLocal; import org.antlr.runtime.*; @@ -22,12 +23,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__30=30; - public static final int T__31=31; public static final int T__32=32; public static final int T__33=33; public static final int T__34=34; @@ -106,6 +105,8 @@ public class Def extends TreeFilter { public static final int T__107=107; public static final int T__108=108; public static final int T__109=109; + public static final int T__110=110; + public static final int T__111=111; public static final int ARGS=4; public static final int ARITMETICA=5; public static final int BODY=6; @@ -124,14 +125,16 @@ public class Def extends TreeFilter { public static final int MEMBRO_CLASSE=19; public static final int METHOD_CALL=20; public static final int METHOD_DECL=21; - public static final int NEWLINE=22; - public static final int NULL=23; - public static final int PARAMS=24; - public static final int PILHA=25; - public static final int STORE=26; - public static final int TIPO_REF=27; - public static final int VOID=28; - public static final int WS=29; + public static final int NEW=22; + public static final int NEWLINE=23; + public static final int NULL=24; + public static final int PARAMS=25; + public static final int PILHA=26; + public static final int RETURN=27; + public static final int STORE=28; + public static final int TIPO_REF=29; + public static final int VOID=30; + public static final int WS=31; // delegates public TreeFilter[] getDelegates() { @@ -154,6 +157,7 @@ public Def(TreeNodeStream input, RecognizerSharedState state) { TabelaSimbolos tabelaSimbolos; Escopo escopoAtual; + int contador; public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { this(input); this.tabelaSimbolos = tabelaSimbolos; @@ -163,54 +167,15 @@ public Def(TreeNodeStream input, TabelaSimbolos tabelaSimbolos) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:1: topdown : ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | field | invoke | nenhumoperando | umoperando | label ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel ) - int alt1=6; - switch ( input.LA(1) ) { - case BODY: - { - alt1=1; - } - break; - case CONSTR_DECL: - { - alt1=2; - } - break; - case METHOD_DECL: - { - alt1=3; - } - break; - case 33: - { - alt1=4; - } - break; - case PARAMS: - { - alt1=5; - } - break; - case FIELD_DECL: - { - alt1=6; - } - break; - default: - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); - - throw nvae; - - } - + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:9: ( entraNoCorpoMetodo | entraNoConstrutor | entraNoMetodo | entraNaClasse | parametros | declaracaoVariavel | field | invoke | nenhumoperando | umoperando | label ) + int alt1=11; + alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:31:11: entraNoCorpoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:11: entraNoCorpoMetodo { pushFollow(FOLLOW_entraNoCorpoMetodo_in_topdown49); entraNoCorpoMetodo(); @@ -221,7 +186,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:32:11: entraNoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:11: entraNoConstrutor { pushFollow(FOLLOW_entraNoConstrutor_in_topdown61); entraNoConstrutor(); @@ -232,7 +197,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:33:11: entraNoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:11: entraNoMetodo { pushFollow(FOLLOW_entraNoMetodo_in_topdown73); entraNoMetodo(); @@ -243,7 +208,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:34:11: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:11: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown85); entraNaClasse(); @@ -254,7 +219,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:35:11: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:11: parametros { pushFollow(FOLLOW_parametros_in_topdown97); parametros(); @@ -265,7 +230,7 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:36:11: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:37:11: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown109); declaracaoVariavel(); @@ -273,6 +238,61 @@ public final void topdown() throws RecognitionException { state._fsp--; if (state.failed) return ; + } + break; + case 7 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:38:11: field + { + pushFollow(FOLLOW_field_in_topdown121); + field(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 8 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:11: invoke + { + pushFollow(FOLLOW_invoke_in_topdown133); + invoke(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 9 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:11: nenhumoperando + { + pushFollow(FOLLOW_nenhumoperando_in_topdown145); + nenhumoperando(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 10 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:11: umoperando + { + pushFollow(FOLLOW_umoperando_in_topdown157); + umoperando(); + + state._fsp--; + if (state.failed) return ; + + } + break; + case 11 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:11: label + { + pushFollow(FOLLOW_label_in_topdown169); + label(); + + state._fsp--; + if (state.failed) return ; + } break; @@ -281,7 +301,10 @@ public final void topdown() throws RecognitionException { catch (RecognitionException re) { reportError(re); recover(input,re); - } + } catch (LabelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { // do for sure before leaving @@ -293,10 +316,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: bottomup : ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:10: ( saiDoCorpoMetodo | saiDoMetodo | saiDoConstrutor | saiDaClasse ) int alt2=4; switch ( input.LA(1) ) { case BODY: @@ -314,7 +337,7 @@ public final void bottomup() throws RecognitionException { alt2=3; } break; - case 33: + case 35: { alt2=4; } @@ -330,9 +353,9 @@ public final void bottomup() throws RecognitionException { switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:39:12: saiDoCorpoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:12: saiDoCorpoMetodo { - pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup126); + pushFollow(FOLLOW_saiDoCorpoMetodo_in_bottomup186); saiDoCorpoMetodo(); state._fsp--; @@ -341,9 +364,9 @@ public final void bottomup() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:40:12: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:12: saiDoMetodo { - pushFollow(FOLLOW_saiDoMetodo_in_bottomup139); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup199); saiDoMetodo(); state._fsp--; @@ -352,9 +375,9 @@ public final void bottomup() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:41:12: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:47:12: saiDoConstrutor { - pushFollow(FOLLOW_saiDoConstrutor_in_bottomup152); + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup212); saiDoConstrutor(); state._fsp--; @@ -363,9 +386,9 @@ public final void bottomup() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:42:12: saiDaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:48:12: saiDaClasse { - pushFollow(FOLLOW_saiDaClasse_in_bottomup165); + pushFollow(FOLLOW_saiDaClasse_in_bottomup225); saiDaClasse(); state._fsp--; @@ -391,21 +414,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:45:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:51:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,33,FOLLOW_33_in_entraNaClasse197); if (state.failed) return ; + match(input,35,FOLLOW_35_in_entraNaClasse257); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse201); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse261); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -421,7 +444,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARGS && LA3_5 <= 109)) ) { + if ( ((LA3_5 >= ARGS && LA3_5 <= 111)) ) { alt3=1; } } @@ -430,12 +453,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:46:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse205); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse265); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse209); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse269); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -481,19 +504,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:60:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:66:1: declaracaoVariavel : ^( FIELD_DECL ID tipo= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:61:5: ( ^( FIELD_DECL ID tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:61:7: ^( FIELD_DECL ID tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:5: ( ^( FIELD_DECL ID tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:7: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel243); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel303); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel245); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel305); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -530,21 +553,21 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:73:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:79:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor280); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor340); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor282); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor342); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:23: ( . )+ int cnt4=0; loop4: do { @@ -581,16 +604,16 @@ else if ( (true) ) { case MEMBRO_CLASSE: case METHOD_CALL: case METHOD_DECL: + case NEW: case NEWLINE: case NULL: case PARAMS: case PILHA: + case RETURN: case STORE: case TIPO_REF: case VOID: case WS: - case 30: - case 31: case 32: case 33: case 34: @@ -669,6 +692,8 @@ else if ( (true) ) { case 107: case 108: case 109: + case 110: + case 111: { alt4=1; } @@ -683,7 +708,7 @@ else if ( (true) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:23: . { matchAny(input); if (state.failed) return ; @@ -701,7 +726,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:26: ( ^( LIMIT lim= INTEIRO ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -710,12 +735,12 @@ else if ( (true) ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:74:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor289); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor349); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor293); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor353); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -759,26 +784,26 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:88:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:94:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo313); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo373); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo315); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo375); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:32: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:32: ( . )+ int cnt6=0; loop6: do { @@ -815,16 +840,16 @@ else if ( (true) ) { case MEMBRO_CLASSE: case METHOD_CALL: case METHOD_DECL: + case NEW: case NEWLINE: case NULL: case PARAMS: case PILHA: + case RETURN: case STORE: case TIPO_REF: case VOID: case WS: - case 30: - case 31: case 32: case 33: case 34: @@ -903,6 +928,8 @@ else if ( (true) ) { case 107: case 108: case 109: + case 110: + case 111: { alt6=1; } @@ -917,7 +944,7 @@ else if ( (true) ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:32: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:32: . { matchAny(input); if (state.failed) return ; @@ -935,7 +962,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:35: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:35: ( ^( LIMIT lim= INTEIRO ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -944,12 +971,12 @@ else if ( (true) ) { } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:89:36: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:36: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo327); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo387); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo331); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo391); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -974,6 +1001,7 @@ else if ( (true) ) { ID3.simbolo = metodo; escopoAtual.definir(metodo); escopoAtual = metodo; + contador = 0; } } @@ -994,15 +1022,15 @@ else if ( (true) ) { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:104:1: parametros : ^( PARAMS pars= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:1: parametros : ^( PARAMS pars= . ) ; public final void parametros() throws RecognitionException { BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:105:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:105:4: ^( PARAMS pars= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:4: ^( PARAMS pars= . ) { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros351); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros411); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; pars=(BytecodesAST)input.LT(1); @@ -1039,13 +1067,13 @@ public final void parametros() throws RecognitionException { // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:116:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:123:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:117:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo379); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo439); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -1067,13 +1095,13 @@ public final void entraNoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:120:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:121:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:121:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo405); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo465); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -1098,13 +1126,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:135:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:135:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:135:15: '.class' { - match(input,33,FOLLOW_33_in_saiDaClasse432); if (state.failed) return ; + match(input,35,FOLLOW_35_in_saiDaClasse492); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -1129,13 +1157,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:135:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:142:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:136:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:136:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:143:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:143:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo482); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo542); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -1161,13 +1189,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:144:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:152:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:152:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor498); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor558); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); @@ -1189,9 +1217,389 @@ public final void saiDoConstrutor() throws RecognitionException { } // $ANTLR end "saiDoConstrutor" + + + // $ANTLR start "field" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:1: field : ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . . . ) ; + public final void field() throws RecognitionException { + BytecodesAST a=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:7: ( ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:9: ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . . . ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:11: (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) + int alt8=4; + switch ( input.LA(1) ) { + case 57: + { + alt8=1; + } + break; + case 58: + { + alt8=2; + } + break; + case 108: + { + alt8=3; + } + break; + case 109: + { + alt8=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); + + throw nvae; + + } + + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:12: a= 'getfield' + { + a=(BytecodesAST)match(input,57,FOLLOW_57_in_field580); if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:29: a= 'getstatic' + { + a=(BytecodesAST)match(input,58,FOLLOW_58_in_field588); if (state.failed) return ; + + } + break; + case 3 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:47: a= 'putfield' + { + a=(BytecodesAST)match(input,108,FOLLOW_108_in_field596); if (state.failed) return ; + + } + break; + case 4 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:64: a= 'putstatic' + { + a=(BytecodesAST)match(input,109,FOLLOW_109_in_field604); if (state.failed) return ; + + } + break; + + } + + + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + if (a.equals("getstatic") || a.equals("putstatic")) + contador += 9; + else + contador += 5; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "field" + + + + // $ANTLR start "invoke" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:1: invoke : ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL . ^( ARGS . ) . ) ) ; + public final void invoke() throws RecognitionException { + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:9: ( ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL . ^( ARGS . ) . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:11: ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL . ^( ARGS . ) . ) ) + { + if ( (input.LA(1) >= 90 && input.LA(1) <= 92) ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; + + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke666); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; + + match(input,ARGS,FOLLOW_ARGS_in_invoke671); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + contador += 9; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "invoke" + + + + // $ANTLR start "nenhumoperando" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:175:1: nenhumoperando : ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ; + public final void nenhumoperando() throws RecognitionException { + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:2: ( ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:4: ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) + { + if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||input.LA(1)==NEW||(input.LA(1) >= PILHA && input.LA(1) <= STORE) ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + contador++; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "nenhumoperando" + + + + // $ANTLR start "umoperando" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:182:1: umoperando : ^( ( DESVIO | LOAD | STORE ) . . ) ; + public final void umoperando() throws RecognitionException { + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:183:9: ( ^( ( DESVIO | LOAD | STORE ) . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:183:11: ^( ( DESVIO | LOAD | STORE ) . . ) + { + if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + contador += 5; + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "umoperando" + + + + // $ANTLR start "label" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:188:1: label : ^( LABEL id= . ) ; + public final void label() throws RecognitionException, LabelException { + BytecodesAST id=null; + + try { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:189:4: ( ^( LABEL id= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:189:6: ^( LABEL id= . ) + { + match(input,LABEL,FOLLOW_LABEL_in_label822); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + id=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; + + match(input, Token.UP, null); if (state.failed) return ; + + + if ( state.backtracking==1 ) { + System.out.println("Definindo label "+id.getText()+" no endereço "+contador); + SimboloMetodo metodo = (SimboloMetodo) escopoAtual.obterEscopoEnvolvente(); + metodo.definirLabel(id.token, contador); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + } + return ; + } + // $ANTLR end "label" + // Delegated rules + protected DFA1 dfa1 = new DFA1(this); + static final String DFA1_eotS = + "\22\uffff"; + static final String DFA1_eofS = + "\22\uffff"; + static final String DFA1_minS = + "\1\5\10\uffff\1\2\3\uffff\1\4\1\2\1\4\2\3"; + static final String DFA1_maxS = + "\1\155\10\uffff\1\2\3\uffff\5\157"; + static final String DFA1_acceptS = + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\uffff\1\11\1\12\1\13"+ + "\5\uffff"; + static final String DFA1_specialS = + "\22\uffff}>"; + static final String[] DFA1_transitionS = { + "\1\12\1\1\1\2\1\13\1\uffff\1\6\4\uffff\1\14\1\uffff\1\11\1\12"+ + "\2\uffff\1\3\1\12\2\uffff\1\5\2\12\1\11\6\uffff\1\4\25\uffff"+ + "\2\7\37\uffff\3\10\17\uffff\2\7", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\15", + "", + "", + "", + "\154\16", + "\1\17\1\12\154\13", + "\154\20", + "\1\21\154\20", + "\1\12\154\13" + }; + + static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); + static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS); + static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS); + static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS); + static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS); + static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS); + static final short[][] DFA1_transition; + + static { + int numStates = DFA1_transitionS.length; + DFA1_transition = new short[numStates][]; + for (int i=0; i", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEWLINE", "NULL", "PARAMS", "PILHA", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__30=30; - public static final int T__31=31; public static final int T__32=32; public static final int T__33=33; public static final int T__34=34; @@ -109,6 +107,8 @@ public class Ref extends TreeFilter { public static final int T__107=107; public static final int T__108=108; public static final int T__109=109; + public static final int T__110=110; + public static final int T__111=111; public static final int ARGS=4; public static final int ARITMETICA=5; public static final int BODY=6; @@ -127,14 +127,16 @@ public class Ref extends TreeFilter { public static final int MEMBRO_CLASSE=19; public static final int METHOD_CALL=20; public static final int METHOD_DECL=21; - public static final int NEWLINE=22; - public static final int NULL=23; - public static final int PARAMS=24; - public static final int PILHA=25; - public static final int STORE=26; - public static final int TIPO_REF=27; - public static final int VOID=28; - public static final int WS=29; + public static final int NEW=22; + public static final int NEWLINE=23; + public static final int NULL=24; + public static final int PARAMS=25; + public static final int PILHA=26; + public static final int RETURN=27; + public static final int STORE=28; + public static final int TIPO_REF=29; + public static final int VOID=30; + public static final int WS=31; // delegates public TreeFilter[] getDelegates() { @@ -254,11 +256,11 @@ private void newClass(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno ) - int alt1=22; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando ) + int alt1=9; alt1 = dfa1.predict(input); switch (alt1) { case 1 : @@ -306,10 +308,10 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: getfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: field { - pushFollow(FOLLOW_getfield_in_topdown101); - getfield(); + pushFollow(FOLLOW_field_in_topdown101); + field(); state._fsp--; if (state.failed) return ; @@ -317,10 +319,10 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: getstatic + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: invoke { - pushFollow(FOLLOW_getstatic_in_topdown111); - getstatic(); + pushFollow(FOLLOW_invoke_in_topdown111); + invoke(); state._fsp--; if (state.failed) return ; @@ -328,10 +330,10 @@ public final void topdown() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: putfield + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: novaClasse { - pushFollow(FOLLOW_putfield_in_topdown121); - putfield(); + pushFollow(FOLLOW_novaClasse_in_topdown121); + novaClasse(); state._fsp--; if (state.failed) return ; @@ -339,10 +341,10 @@ public final void topdown() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: putstatic + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: nenhumoperando { - pushFollow(FOLLOW_putstatic_in_topdown131); - putstatic(); + pushFollow(FOLLOW_nenhumoperando_in_topdown131); + nenhumoperando(); state._fsp--; if (state.failed) return ; @@ -350,153 +352,10 @@ public final void topdown() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: invokespecial - { - pushFollow(FOLLOW_invokespecial_in_topdown141); - invokespecial(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:9: invokestatic - { - pushFollow(FOLLOW_invokestatic_in_topdown151); - invokestatic(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:9: invokevirtual - { - pushFollow(FOLLOW_invokevirtual_in_topdown161); - invokevirtual(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:9: novaClasse - { - pushFollow(FOLLOW_novaClasse_in_topdown171); - novaClasse(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:9: aritmetica - { - pushFollow(FOLLOW_aritmetica_in_topdown181); - aritmetica(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:9: load - { - pushFollow(FOLLOW_load_in_topdown191); - load(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:9: loadint - { - pushFollow(FOLLOW_loadint_in_topdown201); - loadint(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:9: store - { - pushFollow(FOLLOW_store_in_topdown211); - store(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:138:9: storeint - { - pushFollow(FOLLOW_storeint_in_topdown221); - storeint(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:139:9: desvio - { - pushFollow(FOLLOW_desvio_in_topdown231); - desvio(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:9: logica - { - pushFollow(FOLLOW_logica_in_topdown241); - logica(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:141:9: pilha - { - pushFollow(FOLLOW_pilha_in_topdown251); - pilha(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:142:9: label - { - pushFollow(FOLLOW_label_in_topdown261); - label(); - - state._fsp--; - if (state.failed) return ; - - } - break; - case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:143:9: retorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: umoperando { - pushFollow(FOLLOW_retorno_in_topdown271); - retorno(); + pushFollow(FOLLOW_umoperando_in_topdown141); + umoperando(); state._fsp--; if (state.failed) return ; @@ -524,10 +383,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:146:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:3: ( saiDoMetodo | saiDoConstrutor ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:3: ( saiDoMetodo | saiDoConstrutor ) int alt2=2; int LA2_0 = input.LA(1); @@ -547,9 +406,9 @@ else if ( (LA2_0==CONSTR_DECL) ) { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:147:7: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:7: saiDoMetodo { - pushFollow(FOLLOW_saiDoMetodo_in_bottomup292); + pushFollow(FOLLOW_saiDoMetodo_in_bottomup162); saiDoMetodo(); state._fsp--; @@ -558,9 +417,9 @@ else if ( (LA2_0==CONSTR_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:148:7: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:7: saiDoConstrutor { - pushFollow(FOLLOW_saiDoConstrutor_in_bottomup300); + pushFollow(FOLLOW_saiDoConstrutor_in_bottomup170); saiDoConstrutor(); state._fsp--; @@ -586,21 +445,21 @@ else if ( (LA2_0==CONSTR_DECL) ) { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:152:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:139:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) { - match(input,33,FOLLOW_33_in_entraNaClasse323); if (state.failed) return ; + match(input,35,FOLLOW_35_in_entraNaClasse193); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse327); if (state.failed) return ; + nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse197); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:26: ( ^( EXTENDS sup= TIPO_REF ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -616,7 +475,7 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_4==UP) ) { int LA3_5 = input.LA(5); - if ( ((LA3_5 >= ARGS && LA3_5 <= 109)) ) { + if ( ((LA3_5 >= ARGS && LA3_5 <= 111)) ) { alt3=1; } } @@ -625,12 +484,12 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:153:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:27: ^( EXTENDS sup= TIPO_REF ) { - match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse331); if (state.failed) return ; + match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse201); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse335); if (state.failed) return ; + sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse205); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -681,19 +540,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:172:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:159:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:173:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:173:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:160:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:160:7: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel373); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel243); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel375); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel245); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -725,21 +584,21 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:180:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor410); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor280); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor412); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor282); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: ( . )+ int cnt4=0; loop4: do { @@ -776,16 +635,16 @@ else if ( (true) ) { case MEMBRO_CLASSE: case METHOD_CALL: case METHOD_DECL: + case NEW: case NEWLINE: case NULL: case PARAMS: case PILHA: + case RETURN: case STORE: case TIPO_REF: case VOID: case WS: - case 30: - case 31: case 32: case 33: case 34: @@ -864,6 +723,8 @@ else if ( (true) ) { case 107: case 108: case 109: + case 110: + case 111: { alt4=1; } @@ -878,7 +739,7 @@ else if ( (true) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: . { matchAny(input); if (state.failed) return ; @@ -896,7 +757,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:26: ( ^( LIMIT lim= INTEIRO ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -905,12 +766,12 @@ else if ( (true) ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:181:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor419); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor289); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor423); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor293); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -929,7 +790,7 @@ else if ( (true) ) { escopoAtual = (SimboloMetodo)INIT2.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; - BytecodeAssembler.labels = new HashMap(); + assembler.setMetodoAtual((SimboloMetodo)escopoAtual); } } @@ -950,23 +811,23 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:191:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo446); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo316); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo448); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo318); if (state.failed) return ; matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: ( . )+ int cnt6=0; loop6: do { @@ -1003,16 +864,16 @@ else if ( (true) ) { case MEMBRO_CLASSE: case METHOD_CALL: case METHOD_DECL: + case NEW: case NEWLINE: case NULL: case PARAMS: case PILHA: + case RETURN: case STORE: case TIPO_REF: case VOID: case WS: - case 30: - case 31: case 32: case 33: case 34: @@ -1091,6 +952,8 @@ else if ( (true) ) { case 107: case 108: case 109: + case 110: + case 111: { alt6=1; } @@ -1105,7 +968,7 @@ else if ( (true) ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: . { matchAny(input); if (state.failed) return ; @@ -1123,7 +986,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:26: ( ^( LIMIT lim= INTEIRO ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -1132,12 +995,12 @@ else if ( (true) ) { } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:192:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo457); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo327); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo461); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo331); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1156,7 +1019,7 @@ else if ( (true) ) { escopoAtual = (SimboloMetodo)ID3.simbolo; BytecodeAssembler.codigo = new byte[BytecodeAssembler.TAMANHO_INICIAL_MEMORIA_CODIGO]; BytecodeAssembler.ip = 0; - BytecodeAssembler.labels = new HashMap(); + assembler.setMetodoAtual((SimboloMetodo)escopoAtual); } } @@ -1177,13 +1040,13 @@ else if ( (true) ) { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:202:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:203:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo481); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo351); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do metodo... "); @@ -1209,13 +1072,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:211:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:212:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:212:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor497); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor367); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do construtor... "); @@ -1240,18 +1103,28 @@ public final void saiDoConstrutor() throws RecognitionException { - // $ANTLR start "getfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:220:1: getfield : ^( 'getfield' classe= . . campo= . tipo= . ) ; - public final void getfield() throws RecognitionException { + // $ANTLR start "field" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:1: field : ^( ( 'getfield' | 'getstatic' | 'putfield' | 'putstatic' ) classe= . . campo= . tipo= . ) ; + public final void field() throws RecognitionException { BytecodesAST classe=null; BytecodesAST campo=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:5: ( ^( 'getfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:221:7: ^( 'getfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:8: ( ^( ( 'getfield' | 'getstatic' | 'putfield' | 'putstatic' ) classe= . . campo= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:10: ^( ( 'getfield' | 'getstatic' | 'putfield' | 'putstatic' ) classe= . . campo= . tipo= . ) { - match(input,55,FOLLOW_55_in_getfield519); if (state.failed) return ; + if ( (input.LA(1) >= 57 && input.LA(1) <= 58)||(input.LA(1) >= 108 && input.LA(1) <= 109) ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1272,8 +1145,8 @@ public final void getfield() throws RecognitionException { if ( state.backtracking==1 ) { - acessarCampo("getfield", classe.getText(), campo.getText()); - } + acessarCampo("getfield", classe.getText(), campo.getText()); + } } @@ -1288,44 +1161,119 @@ public final void getfield() throws RecognitionException { } return ; } - // $ANTLR end "getfield" + // $ANTLR end "field" - // $ANTLR start "getstatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:227:1: getstatic : ^( 'getstatic' classe= . . campo= . tipo= . ) ; - public final void getstatic() throws RecognitionException { + // $ANTLR start "invoke" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:1: invoke : ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) . classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; + public final void invoke() throws RecognitionException { + BytecodesAST op=null; BytecodesAST classe=null; - BytecodesAST campo=null; - BytecodesAST tipo=null; + BytecodesAST nome=null; + BytecodesAST a=null; + BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:5: ( ^( 'getstatic' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:228:7: ^( 'getstatic' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:9: ( ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) . classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:12: ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) . classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) { - match(input,56,FOLLOW_56_in_getstatic568); if (state.failed) return ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:14: (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) + int alt8=3; + switch ( input.LA(1) ) { + case 90: + { + alt8=1; + } + break; + case 91: + { + alt8=2; + } + break; + case 92: + { + alt8=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return ;} + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); + + throw nvae; + + } + + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:15: op= 'invokespecial' + { + op=(BytecodesAST)match(input,90,FOLLOW_90_in_invoke461); if (state.failed) return ; + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:38: op= 'invokestatic' + { + op=(BytecodesAST)match(input,91,FOLLOW_91_in_invoke469); if (state.failed) return ; + + } + break; + case 3 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:60: op= 'invokevirtual' + { + op=(BytecodesAST)match(input,92,FOLLOW_92_in_invoke477); if (state.failed) return ; + + } + break; + + } + match(input, Token.DOWN, null); if (state.failed) return ; + matchAny(input); if (state.failed) return ; + classe=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke489); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + nome=(BytecodesAST)input.LT(1); + matchAny(input); if (state.failed) return ; - campo=(BytecodesAST)input.LT(1); + match(input,ARGS,FOLLOW_ARGS_in_invoke498); if (state.failed) return ; + + match(input, Token.DOWN, null); if (state.failed) return ; + a=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - tipo=(BytecodesAST)input.LT(1); + match(input, Token.UP, null); if (state.failed) return ; + + + tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; + match(input, Token.UP, null); if (state.failed) return ; + + if ( state.backtracking==1 ) { - acessarCampo("getstatic", classe.getText(), campo.getText()); - } + if (op.equals("invokespecial")) { + System.out.println("chamando construtor "+nome.getText()+"("+a.getText()+")"); + chamarMetodo(op.getText(), classe.getText(), nome.getText(), a.getText(), ""); + } else { + System.out.println("chamando metodo "+nome.getText()+"("+a.getText()+")"+tipoRet.getText()); + chamarMetodo(op.getText(), classe.getText(), nome.getText(), a.getText(), tipoRet.getText()); + } + } } @@ -1340,35 +1288,25 @@ public final void getstatic() throws RecognitionException { } return ; } - // $ANTLR end "getstatic" + // $ANTLR end "invoke" - // $ANTLR start "putfield" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:234:1: putfield : ^( 'putfield' classe= . . campo= . tipo= . ) ; - public final void putfield() throws RecognitionException { + // $ANTLR start "novaClasse" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:225:1: novaClasse : ^( NEW . classe= . ) ; + public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; - BytecodesAST campo=null; - BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:5: ( ^( 'putfield' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:235:7: ^( 'putfield' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:3: ( ^( NEW . classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:5: ^( NEW . classe= . ) { - match(input,106,FOLLOW_106_in_putfield617); if (state.failed) return ; + match(input,NEW,FOLLOW_NEW_in_novaClasse547); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - classe=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - matchAny(input); if (state.failed) return ; - - campo=(BytecodesAST)input.LT(1); - matchAny(input); if (state.failed) return ; - tipo=(BytecodesAST)input.LT(1); + classe=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; @@ -1376,8 +1314,8 @@ public final void putfield() throws RecognitionException { if ( state.backtracking==1 ) { - acessarCampo("putfield", classe.getText(), campo.getText()); - } + newClass(classe.getText()); + } } @@ -1392,35 +1330,33 @@ public final void putfield() throws RecognitionException { } return ; } - // $ANTLR end "putfield" + // $ANTLR end "novaClasse" - // $ANTLR start "putstatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:241:1: putstatic : ^( 'putstatic' classe= . . campo= . tipo= . ) ; - public final void putstatic() throws RecognitionException { - BytecodesAST classe=null; - BytecodesAST campo=null; - BytecodesAST tipo=null; + // $ANTLR start "nenhumoperando" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:232:1: nenhumoperando : ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ; + public final void nenhumoperando() throws RecognitionException { + BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:5: ( ^( 'putstatic' classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:242:7: ^( 'putstatic' classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:233:2: ( ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:233:4: ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) { - match(input,107,FOLLOW_107_in_putstatic666); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - classe=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - matchAny(input); if (state.failed) return ; - - campo=(BytecodesAST)input.LT(1); + if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||(input.LA(1) >= PILHA && input.LA(1) <= STORE) ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } - matchAny(input); if (state.failed) return ; - tipo=(BytecodesAST)input.LT(1); + match(input, Token.DOWN, null); if (state.failed) return ; + operacao=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; @@ -1428,8 +1364,8 @@ public final void putstatic() throws RecognitionException { if ( state.backtracking==1 ) { - acessarCampo("putstatic", classe.getText(), campo.getText()); - } + assembler.escreverOpcode(operacao.getText()); + } } @@ -1444,57 +1380,47 @@ public final void putstatic() throws RecognitionException { } return ; } - // $ANTLR end "putstatic" + // $ANTLR end "nenhumoperando" - // $ANTLR start "invokespecial" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:1: invokespecial : ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) ; - public final void invokespecial() throws RecognitionException { - BytecodesAST classe=null; - BytecodesAST nome=null; - BytecodesAST a=null; + // $ANTLR start "umoperando" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:239:1: umoperando : ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ; + public final void umoperando() throws RecognitionException, LabelException { + BytecodesAST operacao=null; + BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:5: ( ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:249:7: ^( 'invokespecial' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:240:9: ( ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:240:11: ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) { - match(input,88,FOLLOW_88_in_invokespecial715); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - classe=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokespecial724); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; + if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { + input.consume(); + state.errorRecovery=false; + state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } - match(input,ARGS,FOLLOW_ARGS_in_invokespecial733); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - a=(BytecodesAST)input.LT(1); + operacao=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - match(input, Token.UP, null); if (state.failed) return ; - + operando=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; - match(input, Token.UP, null); if (state.failed) return ; - - if ( state.backtracking==1 ) { - System.out.println("chamando construtor "+nome.getText()+"("+a.getText()+")"); - chamarMetodo("invokespecial", classe.getText(), nome.getText(), a.getText(), ""); - } + assembler.escreverOpcode(operacao.token, operando.token); + } } @@ -1509,699 +1435,43 @@ public final void invokespecial() throws RecognitionException { } return ; } - // $ANTLR end "invokespecial" - - + // $ANTLR end "umoperando" - // $ANTLR start "invokestatic" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:256:1: invokestatic : ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; - public final void invokestatic() throws RecognitionException { - BytecodesAST classe=null; - BytecodesAST nome=null; - BytecodesAST a=null; - BytecodesAST tipoRet=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:257:5: ( ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:257:7: ^( 'invokestatic' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) - { - match(input,89,FOLLOW_89_in_invokestatic772); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - classe=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokestatic781); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input,ARGS,FOLLOW_ARGS_in_invokestatic790); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - a=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - tipoRet=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - System.out.println("chamando metodo "+nome.getText()+"("+a.getText()+")"+tipoRet.getText()); - chamarMetodo("invokestatic", classe.getText(), nome.getText(), a.getText(), tipoRet.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "invokestatic" - - - - // $ANTLR start "invokevirtual" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:264:1: invokevirtual : ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; - public final void invokevirtual() throws RecognitionException { - BytecodesAST classe=null; - BytecodesAST nome=null; - BytecodesAST a=null; - BytecodesAST tipoRet=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:265:5: ( ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:265:7: ^( 'invokevirtual' classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) - { - match(input,90,FOLLOW_90_in_invokevirtual833); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - classe=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invokevirtual842); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input,ARGS,FOLLOW_ARGS_in_invokevirtual851); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - a=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - tipoRet=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - System.out.println("chamando metodo "+nome.getText()+"("+a.getText()+")"+tipoRet.getText()); - chamarMetodo("invokevirtual", classe.getText(), nome.getText(), a.getText(), tipoRet.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "invokevirtual" - - - - // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:272:1: novaClasse : ^( 'new' classe= . ) ; - public final void novaClasse() throws RecognitionException { - BytecodesAST classe=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:3: ( ^( 'new' classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:273:5: ^( 'new' classe= . ) - { - match(input,102,FOLLOW_102_in_novaClasse892); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - classe=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - newClass(classe.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "novaClasse" - - - - // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:279:1: aritmetica : ^( ARITMETICA operacao= . ) ; - public final void aritmetica() throws RecognitionException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:5: ( ^( ARITMETICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:280:7: ^( ARITMETICA operacao= . ) - { - match(input,ARITMETICA,FOLLOW_ARITMETICA_in_aritmetica923); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "aritmetica" - - - - // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:286:1: load : ^( LOAD operacao= . ) ; - public final void load() throws RecognitionException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:3: ( ^( LOAD operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:287:5: ^( LOAD operacao= . ) - { - match(input,LOAD,FOLLOW_LOAD_in_load957); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "load" - - - - // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:293:1: loadint : ^( LOAD operacao= . operando= . ) ; - public final void loadint() throws RecognitionException, LabelException { - BytecodesAST operacao=null; - BytecodesAST operando=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:294:5: ( ^( LOAD operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:294:7: ^( LOAD operacao= . operando= . ) - { - match(input,LOAD,FOLLOW_LOAD_in_loadint986); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - operando=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.token, operando.token); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "loadint" - - - - // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:300:1: store : ^( STORE operacao= . ) ; - public final void store() throws RecognitionException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:301:4: ( ^( STORE operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:301:6: ^( STORE operacao= . ) - { - match(input,STORE,FOLLOW_STORE_in_store1028); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "store" - - - - // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:307:1: storeint : ^( STORE operacao= . operando= . ) ; - public final void storeint() throws RecognitionException, LabelException { - BytecodesAST operacao=null; - BytecodesAST operando=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:308:5: ( ^( STORE operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:308:7: ^( STORE operacao= . operando= . ) - { - match(input,STORE,FOLLOW_STORE_in_storeint1057); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - operando=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.token, operando.token); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "storeint" - - - - // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:314:1: desvio : ^( DESVIO operacao= . operando= . ) ; - public final void desvio() throws RecognitionException, LabelException { - BytecodesAST operacao=null; - BytecodesAST operando=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:315:5: ( ^( DESVIO operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:315:7: ^( DESVIO operacao= . operando= . ) - { - match(input,DESVIO,FOLLOW_DESVIO_in_desvio1098); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - operando=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.token, operando.token); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "desvio" - - - - // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:321:1: logica : ^( LOGICA operacao= . ) ; - public final void logica() throws RecognitionException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:322:5: ( ^( LOGICA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:322:7: ^( LOGICA operacao= . ) - { - match(input,LOGICA,FOLLOW_LOGICA_in_logica1139); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "logica" - - - - // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:328:1: pilha : ^( PILHA operacao= . ) ; - public final void pilha() throws RecognitionException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:329:4: ( ^( PILHA operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:329:6: ^( PILHA operacao= . ) - { - match(input,PILHA,FOLLOW_PILHA_in_pilha1173); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "pilha" - - - - // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:335:1: label : ^( LABEL operacao= . ) ; - public final void label() throws RecognitionException, LabelException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:336:4: ( ^( LABEL operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:336:6: ^( LABEL operacao= . ) - { - match(input,LABEL,FOLLOW_LABEL_in_label1201); if (state.failed) return ; - - match(input, Token.DOWN, null); if (state.failed) return ; - operacao=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input, Token.UP, null); if (state.failed) return ; - - - if ( state.backtracking==1 ) { - assembler.definirLabel(operacao.token); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "label" - - - - // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:342:1: retorno : (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ; - public final void retorno() throws RecognitionException { - BytecodesAST operacao=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:343:2: ( (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:343:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) - { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:343:4: (operacao= 'ireturn' |operacao= 'areturn' |operacao= 'return' ) - int alt8=3; - switch ( input.LA(1) ) { - case 93: - { - alt8=1; - } - break; - case 48: - { - alt8=2; - } - break; - case 108: - { - alt8=3; - } - break; - default: - if (state.backtracking>0) {state.failed=true; return ;} - NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); - - throw nvae; - - } - - switch (alt8) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:343:8: operacao= 'ireturn' - { - operacao=(BytecodesAST)match(input,93,FOLLOW_93_in_retorno1237); if (state.failed) return ; - - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:344:8: operacao= 'areturn' - { - operacao=(BytecodesAST)match(input,48,FOLLOW_48_in_retorno1251); if (state.failed) return ; - - } - break; - case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:345:8: operacao= 'return' - { - operacao=(BytecodesAST)match(input,108,FOLLOW_108_in_retorno1265); if (state.failed) return ; - - } - break; - - } - - - if ( state.backtracking==1 ) { - assembler.escreverOpcode(operacao.getText()); - } - - } - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - } - - finally { - // do for sure before leaving - } - return ; - } - // $ANTLR end "retorno" - - // Delegated rules + // Delegated rules protected DFA1 dfa1 = new DFA1(this); static final String DFA1_eotS = - "\43\uffff"; + "\20\uffff"; static final String DFA1_eofS = - "\43\uffff"; + "\20\uffff"; static final String DFA1_minS = - "\1\5\15\uffff\2\2\5\uffff\2\4\2\2\1\4\2\uffff\1\4\2\uffff\4\3"; + "\1\5\7\uffff\1\2\2\uffff\1\4\1\2\1\4\2\3"; static final String DFA1_maxS = - "\1\154\15\uffff\2\2\5\uffff\5\155\2\uffff\1\155\2\uffff\4\155"; + "\1\155\7\uffff\1\2\2\uffff\5\157"; static final String DFA1_acceptS = - "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"+ - "\15\2\uffff\1\22\1\23\1\24\1\25\1\26\5\uffff\1\16\1\17\1\uffff\1"+ - "\20\1\21\4\uffff"; + "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\uffff\1\10\1\11\5\uffff"; static final String DFA1_specialS = - "\43\uffff}>"; + "\20\uffff}>"; static final String[] DFA1_transitionS = { - "\1\15\1\uffff\1\3\1\20\1\uffff\1\4\4\uffff\1\23\1\uffff\1\16"+ - "\1\21\2\uffff\1\2\3\uffff\1\22\1\17\6\uffff\1\1\16\uffff\1\24"+ - "\6\uffff\1\5\1\6\37\uffff\1\11\1\12\1\13\2\uffff\1\24\10\uffff"+ - "\1\14\3\uffff\1\7\1\10\1\24", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "\1\25", - "\1\26", + "\1\11\1\uffff\1\3\1\12\1\uffff\1\4\6\uffff\1\10\1\11\2\uffff"+ + "\1\2\1\7\3\uffff\2\11\1\10\6\uffff\1\1\25\uffff\2\5\37\uffff"+ + "\3\6\17\uffff\2\5", "", "", "", "", "", - "\152\27", - "\152\30", - "\1\31\1\32\152\33", - "\1\34\1\35\152\36", - "\152\37", "", "", - "\152\40", + "\1\13", "", "", - "\1\41\152\37", - "\1\42\152\40", - "\1\32\152\33", - "\1\35\152\36" + "\154\14", + "\1\15\1\11\154\12", + "\154\16", + "\1\17\154\16", + "\1\11\154\12" }; static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS); @@ -2234,7 +1504,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "121:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | getfield | getstatic | putfield | putstatic | invokespecial | invokestatic | invokevirtual | novaClasse | aritmetica | load | loadint | store | storeint | desvio | logica | pilha | label | retorno );"; + return "121:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando );"; } } @@ -2243,67 +1513,37 @@ public String getDescription() { public static final BitSet FOLLOW_entraNoMetodo_in_topdown71 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_entraNoConstrutor_in_topdown81 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declaracaoVariavel_in_topdown91 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getfield_in_topdown101 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_getstatic_in_topdown111 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putfield_in_topdown121 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_putstatic_in_topdown131 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokespecial_in_topdown141 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokestatic_in_topdown151 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_invokevirtual_in_topdown161 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_novaClasse_in_topdown171 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_aritmetica_in_topdown181 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_load_in_topdown191 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_loadint_in_topdown201 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_store_in_topdown211 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_storeint_in_topdown221 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_desvio_in_topdown231 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_logica_in_topdown241 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_pilha_in_topdown251 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_label_in_topdown261 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_retorno_in_topdown271 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoMetodo_in_bottomup292 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup300 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_entraNaClasse323 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNaClasse327 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); - public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse331 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse335 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel373 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel375 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); - public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor410 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor412 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor419 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor423 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo446 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo448 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00003FFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo457 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo461 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo481 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor497 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_getfield519 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_56_in_getstatic568 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_106_in_putfield617 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_107_in_putstatic666 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_88_in_invokespecial715 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invokespecial724 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARGS_in_invokespecial733 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_89_in_invokestatic772 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invokestatic781 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARGS_in_invokestatic790 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_90_in_invokevirtual833 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invokevirtual842 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARGS_in_invokevirtual851 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_102_in_novaClasse892 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARITMETICA_in_aritmetica923 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_load957 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOAD_in_loadint986 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_store1028 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_STORE_in_storeint1057 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_DESVIO_in_desvio1098 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LOGICA_in_logica1139 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_PILHA_in_pilha1173 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label1201 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_93_in_retorno1237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_retorno1251 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_108_in_retorno1265 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_field_in_topdown101 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_invoke_in_topdown111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_novaClasse_in_topdown121 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_nenhumoperando_in_topdown131 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_umoperando_in_topdown141 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoMetodo_in_bottomup162 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup170 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_entraNaClasse193 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNaClasse197 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse201 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse205 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel243 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel245 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor280 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor282 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor289 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor293 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo316 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo318 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo327 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo331 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo351 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor367 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_field383 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_90_in_invoke461 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_91_in_invoke469 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_92_in_invoke477 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invoke489 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARGS_in_invoke498 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_NEW_in_novaClasse547 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_nenhumoperando576 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_umoperando630 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index e17e231..0707515 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,5 +1,3 @@ -T__30=30 -T__31=31 T__32=32 T__33=33 T__34=34 @@ -78,6 +76,8 @@ T__106=106 T__107=107 T__108=108 T__109=109 +T__110=110 +T__111=111 ARGS=4 ARITMETICA=5 BODY=6 @@ -96,91 +96,93 @@ LOGICA=18 MEMBRO_CLASSE=19 METHOD_CALL=20 METHOD_DECL=21 -NEWLINE=22 -NULL=23 -PARAMS=24 -PILHA=25 -STORE=26 -TIPO_REF=27 -VOID=28 -WS=29 -'('=30 -'()'=31 -')'=32 -'.class'=33 -'.end class'=34 -'.end method'=35 -'.field'=36 -'.limit locals'=37 -'.method'=38 -'.super'=39 -'/'=40 -':'=41 -'aconst_null'=42 -'aload'=43 -'aload_0'=44 -'aload_1'=45 -'aload_2'=46 -'aload_3'=47 -'areturn'=48 -'astore'=49 -'astore_0'=50 -'astore_1'=51 -'astore_2'=52 -'astore_3'=53 -'dup'=54 -'getfield'=55 -'getstatic'=56 -'goto'=57 -'iadd'=58 -'iand'=59 -'iconst_0'=60 -'iconst_1'=61 -'iconst_2'=62 -'iconst_3'=63 -'iconst_4'=64 -'iconst_5'=65 -'iconst_m1'=66 -'idiv'=67 -'if_icmpeq'=68 -'if_icmpge'=69 -'if_icmpgt'=70 -'if_icmple'=71 -'if_icmplt'=72 -'if_icmpne'=73 -'ifeq'=74 -'ifge'=75 -'ifgt'=76 -'ifle'=77 -'iflt'=78 -'ifne'=79 -'iinc'=80 -'iload'=81 -'iload_0'=82 -'iload_1'=83 -'iload_2'=84 -'iload_3'=85 -'imul'=86 -'ineg'=87 -'invokespecial'=88 -'invokestatic'=89 -'invokevirtual'=90 -'ior'=91 -'irem'=92 -'ireturn'=93 -'istore'=94 -'istore_0'=95 -'istore_1'=96 -'istore_2'=97 -'istore_3'=98 -'isub'=99 -'ixor'=100 -'ldc'=101 -'new'=102 -'nop'=103 -'pop'=104 -'pop2'=105 -'putfield'=106 -'putstatic'=107 -'return'=108 -'static'=109 +NEW=22 +NEWLINE=23 +NULL=24 +PARAMS=25 +PILHA=26 +RETURN=27 +STORE=28 +TIPO_REF=29 +VOID=30 +WS=31 +'('=32 +'()'=33 +')'=34 +'.class'=35 +'.end class'=36 +'.end method'=37 +'.field'=38 +'.limit locals'=39 +'.method'=40 +'.super'=41 +'/'=42 +':'=43 +'aconst_null'=44 +'aload'=45 +'aload_0'=46 +'aload_1'=47 +'aload_2'=48 +'aload_3'=49 +'areturn'=50 +'astore'=51 +'astore_0'=52 +'astore_1'=53 +'astore_2'=54 +'astore_3'=55 +'dup'=56 +'getfield'=57 +'getstatic'=58 +'goto'=59 +'iadd'=60 +'iand'=61 +'iconst_0'=62 +'iconst_1'=63 +'iconst_2'=64 +'iconst_3'=65 +'iconst_4'=66 +'iconst_5'=67 +'iconst_m1'=68 +'idiv'=69 +'if_icmpeq'=70 +'if_icmpge'=71 +'if_icmpgt'=72 +'if_icmple'=73 +'if_icmplt'=74 +'if_icmpne'=75 +'ifeq'=76 +'ifge'=77 +'ifgt'=78 +'ifle'=79 +'iflt'=80 +'ifne'=81 +'iinc'=82 +'iload'=83 +'iload_0'=84 +'iload_1'=85 +'iload_2'=86 +'iload_3'=87 +'imul'=88 +'ineg'=89 +'invokespecial'=90 +'invokestatic'=91 +'invokevirtual'=92 +'ior'=93 +'irem'=94 +'ireturn'=95 +'istore'=96 +'istore_0'=97 +'istore_1'=98 +'istore_2'=99 +'istore_3'=100 +'isub'=101 +'ixor'=102 +'ldc'=103 +'new'=104 +'nop'=105 +'pop'=106 +'pop2'=107 +'putfield'=108 +'putstatic'=109 +'return'=110 +'static'=111 diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java index 2b224d3..0b13355 100755 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloLabel.java @@ -17,7 +17,7 @@ public class SimboloLabel { String name; /** Address in code memory */ - public int address; + public int endereco; /** Is this ref'd before def'd. */ boolean isForwardRef = false; @@ -32,19 +32,19 @@ public SimboloLabel(String name) { this.name = name; } - public SimboloLabel(String name, int address) { + public SimboloLabel(String name, int endereco) { this(name); - this.address = address; + this.endereco = endereco; } - public SimboloLabel(String name, int address, boolean forward) { + public SimboloLabel(String name, int endereco, boolean forward) { this(name); isForwardRef = forward; if (forward) { // if forward reference, then address is address to update - addForwardReference(address); + addForwardReference(endereco); } else { - this.address = address; + this.endereco = endereco; } } @@ -64,7 +64,7 @@ public void resolveForwardReferences(byte[] code) { * System.out.println("updating operand at addr "+ * addr+" to be "+getAddress()); */ - BytecodeAssembler.escreverInteiro(code, addrToPatch, address); + BytecodeAssembler.escreverInteiro(code, addrToPatch, endereco); } } @@ -73,6 +73,6 @@ public String toString() { if (forwardReferences != null) { refs = "[refs=" + forwardReferences.toString() + "]"; } - return name + "@" + address + refs; + return name + "@" + endereco + refs; } } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index 02b5989..266a791 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -12,6 +12,9 @@ public class SimboloMetodo extends SimboloComEscopo{ Map parametros = new LinkedHashMap(); + private Map labels = + new HashMap(); + private String retorno; public static final int TAMANHO_INICIAL_MEMORIA_CODIGO = 1024; @@ -78,6 +81,20 @@ private int contarOcorrencias(String str, char ch) { } + public void definirLabel(Token id, int endereco) throws LabelException { + + SimboloLabel label = labels.get(id.getText()); + + if (label != null) + throw new LabelException("Label duplicado"); + + + label = new SimboloLabel(id.getText(), endereco); + + labels.put(id.getText(), label); + + } + public String getRetorno() { return retorno; } @@ -102,6 +119,14 @@ public void setTamanhoMemoriaLocal(int tamanhoMemoriaLocal) { this.tamanhoMemoriaLocal = tamanhoMemoriaLocal; } + public Map getLabels() { + return labels; + } + + public void setLabels(Map labels) { + this.labels = labels; + } + public String toString() { return obterNome()+getRetorno(); } From 4e620f6eec57b93001e18209d8ef94fa1c801789 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Tue, 18 Sep 2012 19:04:49 -0300 Subject: [PATCH 69/79] commit --- .../iged/interpretador/gramaticas/Assembler.g | 2 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 4 +- .../parser/AssemblerLexer$DFA6.class | Bin 1962 -> 0 bytes .../interpretador/parser/AssemblerLexer.class | Bin 31134 -> 31356 bytes .../iged/interpretador/parser/Ref$DFA1.class | Bin 1311 -> 1311 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 27642 -> 27578 bytes classes/Main.class | 8 +- .../iged/interpretador/gramaticas/Assembler.g | 2 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 1 + .../ufpb/iged/interpretador/gramaticas/Ref.g | 4 +- .../interpretador/parser/AssemblerLexer.java | 99 +++++++++++------- .../interpretador/parser/AssemblerParser.java | 30 +++--- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 34 +++--- .../principal/MaquinaVirtual.java | 18 ++-- .../principal/ProgramCounter.java | 2 +- 16 files changed, 116 insertions(+), 90 deletions(-) delete mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index b8eac0c..1b38124 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -262,6 +262,6 @@ ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; //LETRA: ('a'..'z' | 'A'..'Z'); -NEWLINE : '\n'; +NEWLINE : '\n'+; WS : (' ' | '\t' | '\r') {$channel=HIDDEN;} ; \ No newline at end of file diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index c0505ea..9a103fc 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -210,7 +210,7 @@ field : ^(('getfield' | 'getstatic' | 'putfield' | 'putstatic') classe = . . ca } ; -invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') . classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) +invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) { if ($op.equals("invokespecial")) { System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); @@ -223,7 +223,7 @@ invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') ; novaClasse - : ^(NEW . classe = .) + : ^(NEW classe = .) { newClass($classe.getText()); } diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer$DFA6.class deleted file mode 100644 index 6f6c05f969f3ae3076e1247084295dc976e06b6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1962 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 ksW7olYCJ3o@ADzW@LL delta 3856 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 1 ) break loop6; + EarlyExitException eee = + new EarlyExitException(6, input); + throw eee; + } + cnt6++; + } while (true); + } @@ -2338,9 +2367,9 @@ public final void mWS() throws RecognitionException { public void mTokens() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) - int alt6=89; - alt6 = dfa6.predict(input); - switch (alt6) { + int alt7=89; + alt7 = dfa7.predict(input); + switch (alt7) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__32 { @@ -3059,8 +3088,8 @@ public void mTokens() throws RecognitionException { } - protected DFA6 dfa6 = new DFA6(this); - static final String DFA6_eotS = + protected DFA7 dfa7 = new DFA7(this); + static final String DFA7_eotS = "\1\uffff\1\31\4\uffff\11\25\1\uffff\1\73\1\74\1\25\1\uffff\1\25"+ "\13\uffff\33\25\2\uffff\1\25\1\144\1\uffff\4\25\1\152\6\25\1\uffff"+ "\11\25\1\176\4\25\1\u0084\1\u0085\1\u0086\1\25\1\u0089\4\25\1\144"+ @@ -3075,9 +3104,9 @@ public void mTokens() throws RecognitionException { "\uffff\1\u0104\1\25\1\uffff\1\u0106\4\uffff\3\25\1\uffff\1\u010a"+ "\1\uffff\3\25\1\uffff\4\25\1\u0112\1\25\1\u0114\1\uffff\1\u0115"+ "\2\uffff"; - static final String DFA6_eofS = + static final String DFA7_eofS = "\u0116\uffff"; - static final String DFA6_minS = + static final String DFA7_minS = "\1\11\1\51\1\uffff\1\143\2\uffff\1\143\1\165\1\145\1\141\1\144\1"+ "\145\1\157\1\145\1\164\1\uffff\2\56\1\125\1\uffff\1\101\6\uffff"+ "\1\156\4\uffff\2\157\1\145\1\164\1\160\2\164\1\144\1\157\1\151\1"+ @@ -3098,7 +3127,7 @@ public void mTokens() throws RecognitionException { "\1\56\1\143\1\uffff\1\56\4\uffff\1\143\2\164\1\uffff\1\56\1\uffff"+ "\2\151\1\165\1\uffff\1\141\1\143\1\141\1\154\1\56\1\154\1\56\1\uffff"+ "\1\56\2\uffff"; - static final String DFA6_maxS = + static final String DFA7_maxS = "\1\172\1\51\1\uffff\1\163\2\uffff\1\163\1\165\1\157\1\170\1\144"+ "\2\165\1\145\1\164\1\uffff\2\172\1\125\1\uffff\1\172\6\uffff\1\156"+ "\4\uffff\2\157\1\145\1\164\1\160\2\164\1\156\1\157\1\151\2\156\1"+ @@ -3119,7 +3148,7 @@ public void mTokens() throws RecognitionException { "\1\162\5\uffff\1\172\1\143\1\uffff\1\172\4\uffff\1\143\2\164\1\uffff"+ "\1\172\1\uffff\2\151\1\165\1\uffff\1\141\1\143\1\141\1\154\1\172"+ "\1\154\1\172\1\uffff\1\172\2\uffff"; - static final String DFA6_acceptS = + static final String DFA7_acceptS = "\2\uffff\1\3\1\uffff\1\13\1\14\11\uffff\1\121\3\uffff\1\125\1\uffff"+ "\1\127\1\130\1\131\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\1\12\33\uffff"+ "\1\122\1\123\47\uffff\1\126\5\uffff\1\31\23\uffff\1\76\5\uffff\1"+ @@ -3132,9 +3161,9 @@ public void mTokens() throws RecognitionException { "\44\1\45\1\47\2\uffff\1\54\3\uffff\1\100\1\102\1\103\1\104\1\105"+ "\2\uffff\1\32\1\uffff\1\50\1\51\1\52\1\53\3\uffff\1\115\1\uffff"+ "\1\33\3\uffff\1\116\7\uffff\1\74\1\uffff\1\73\1\75"; - static final String DFA6_specialS = + static final String DFA7_specialS = "\u0116\uffff}>"; - static final String[] DFA6_transitionS = { + static final String[] DFA7_transitionS = { "\1\27\1\26\2\uffff\1\27\22\uffff\1\27\7\uffff\1\1\1\2\3\uffff"+ "\1\23\1\3\1\4\12\23\1\5\1\uffff\1\17\4\uffff\10\25\1\20\2\25"+ "\1\24\1\25\1\22\7\25\1\21\4\25\6\uffff\1\6\2\25\1\7\2\25\1\10"+ @@ -3425,34 +3454,34 @@ public void mTokens() throws RecognitionException { "" }; - static final short[] DFA6_eot = DFA.unpackEncodedString(DFA6_eotS); - static final short[] DFA6_eof = DFA.unpackEncodedString(DFA6_eofS); - static final char[] DFA6_min = DFA.unpackEncodedStringToUnsignedChars(DFA6_minS); - static final char[] DFA6_max = DFA.unpackEncodedStringToUnsignedChars(DFA6_maxS); - static final short[] DFA6_accept = DFA.unpackEncodedString(DFA6_acceptS); - static final short[] DFA6_special = DFA.unpackEncodedString(DFA6_specialS); - static final short[][] DFA6_transition; + static final short[] DFA7_eot = DFA.unpackEncodedString(DFA7_eotS); + static final short[] DFA7_eof = DFA.unpackEncodedString(DFA7_eofS); + static final char[] DFA7_min = DFA.unpackEncodedStringToUnsignedChars(DFA7_minS); + static final char[] DFA7_max = DFA.unpackEncodedStringToUnsignedChars(DFA7_maxS); + static final short[] DFA7_accept = DFA.unpackEncodedString(DFA7_acceptS); + static final short[] DFA7_special = DFA.unpackEncodedString(DFA7_specialS); + static final short[][] DFA7_transition; static { - int numStates = DFA6_transitionS.length; - DFA6_transition = new short[numStates][]; + int numStates = DFA7_transitionS.length; + DFA7_transition = new short[numStates][]; for (int i=0; i Date: Wed, 19 Sep 2012 19:25:52 -0300 Subject: [PATCH 70/79] commit --- .../bytecodeassembler/asm/Definicao.class | Bin 5090 -> 5090 bytes .../iged/interpretador/gramaticas/Assembler.g | 62 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 12 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 59 +- .../interpretador/parser/Assembler.tokens | 33 +- .../interpretador/parser/AssemblerLexer.class | Bin 31356 -> 34951 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../parser/AssemblerParser$campo_return.class | Bin 744 -> 0 bytes ...AssemblerParser$chamadaMetodo_return.class | Bin 695 -> 0 bytes .../AssemblerParser$classe_return.class | Bin 710 -> 0 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../AssemblerParser$membroClasse_return.class | Bin 692 -> 692 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 85754 -> 78217 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 27693 -> 27694 bytes .../ufpb/iged/interpretador/parser/Def.tokens | 33 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1311 -> 1311 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 27578 -> 28158 bytes .../ufpb/iged/interpretador/parser/Ref.tokens | 33 +- .../ufpb/iged/interpretador/testes/Test.class | Bin 2295 -> 1441 bytes classes/Composicao.class | 2 +- classes/Heranca.class | 2 +- classes/Main.class | 4 +- .../iged/interpretador/gramaticas/Assembler.g | 62 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 11 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 59 +- .../interpretador/parser/Assembler.tokens | 33 +- .../interpretador/parser/AssemblerLexer.java | 1607 ++++++------ .../interpretador/parser/AssemblerParser.java | 2198 +++++++---------- .../ufpb/iged/interpretador/parser/Def.java | 275 ++- .../ufpb/iged/interpretador/parser/Def.tokens | 33 +- .../ufpb/iged/interpretador/parser/Ref.java | 404 +-- .../ufpb/iged/interpretador/parser/Ref.tokens | 33 +- .../principal/MaquinaVirtual.java | 2 +- .../ufpb/iged/interpretador/testes/Test.java | 29 +- 42 files changed, 2365 insertions(+), 2621 deletions(-) delete mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$campo_return.class delete mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class delete mode 100644 bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class diff --git a/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class b/bin/br/ufpb/iged/interpretador/bytecodeassembler/asm/Definicao.class index 71069b2b5f38b04dc02d64af8fe7267962dea1a3..73330b5c52e8999226f1c3db753f11f8881c30d4 100644 GIT binary patch delta 14 VcmaE){z!d877L@o=4_U7egG_A1o{8~ delta 14 VcmaE){z!d877L^N=4_U7egG_41o;2} diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 1b38124..a532ac3 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -77,12 +77,12 @@ definicaoClasse -> ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) ; -superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; +superClasse : '.super' (b = ID | b = REF)-> ^(EXTENDS $b) ; membroClasse : '.field' 'static'? ID tipo -> ^(FIELD_DECL ID tipo) - | '.method' INIT (parametros | '(' parametros ')') VOID NEWLINE (limite NEWLINE)? operacao* '.end method' - -> ^(CONSTR_DECL INIT parametros limite? ^(BODY operacao*)) + | '.method' INIT (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' + -> ^(CONSTR_DECL INIT $ret parametros limite? ^(BODY operacao*)) | '.method' 'static'? ID (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' -> ^(METHOD_DECL ID $ret parametros limite? ^(BODY operacao*)) ; @@ -106,17 +106,17 @@ retorno : -> ^(RETURN $a) ; -manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) - | a = 'getstatic' b = campo tipo -> ^('getstatic' $b tipo) - | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) - | a = 'putstatic' b = campo tipo -> ^('putstatic' $b tipo) - | a = 'invokespecial' c = classe '/' d = chamadaMetodo - -> ^('invokespecial' $c $d) - | a = 'invokestatic' c = classe '/' d = chamadaMetodo - -> ^('invokestatic' $c $d) - | a = 'invokevirtual' c = classe '/' d = chamadaMetodo - -> ^('invokevirtual' $c $d) - | a = 'new'c = classe -> ^(NEW $c) +manipulacaoObjetos : a = 'getfield' REF tipo -> ^('getfield' REF tipo) + | a = 'getstatic' REF tipo -> ^('getstatic' REF tipo) + | a = 'putfield' REF tipo -> ^('putfield' REF tipo) + | a = 'putstatic' REF tipo -> ^('putstatic' REF tipo) + | a = 'invokespecial' REF d = parametrosRetorno + -> ^('invokespecial' REF $d) + | a = 'invokestatic' REF d = parametrosRetorno + -> ^('invokestatic' REF $d) + | a = 'invokevirtual' REF d = parametrosRetorno + -> ^('invokevirtual' REF $d) + | a = 'new' (b = ID | b = REF) -> ^(NEW $b) ; @@ -208,28 +208,12 @@ pilha : ( a = 'pop' ) -> ^(PILHA $a) ; - -classe returns [List classe] - @init { - $classe = new ArrayList(); - } - : (cls += ID '/')* (cls += ID) {$classe = $cls;} - ; -chamadaMetodo - : (n = INIT | n = ID) (argumentos | '(' argumentos ')') tip = tipo - -> ^(METHOD_CALL $n argumentos $tip) +parametrosRetorno + : (parametros | '(' parametros ')') tip = tipo + -> ^(METHOD_CALL parametros $tip) ; -argumentos - : '()' -> ^(ARGS VOID) - | ( - a = ID - | a = TIPO_REF - )+ - -> ^(ARGS $a)+ - ; - contagemParametros returns [int qtdParams] : '()' {$qtdParams = 0;} | ( @@ -238,14 +222,6 @@ contagemParametros returns [int qtdParams] )+ ; -campo returns [List classe, String campo] - @init { - $classe = new ArrayList(); - $campo=""; - } - : (cls += ID '/')+ cmp = ID {$classe = $cls; $campo = $cmp.text;} - ; - INIT : ''; INT : 'I'; @@ -256,7 +232,9 @@ NULL : ('null' | 'NULL'); INTEIRO : '-'? '0'..'9'+ ; -TIPO_REF: 'L' ID ('/' ID)*; +REF : (ID '/')+ ( ID | INIT); + +TIPO_REF: 'L'ID ('/' ID)*';'; ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 6d1d47d..223589c 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -49,7 +49,7 @@ bottomup : saiDoCorpoMetodo ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + : ^('.class' nome=ID (^(EXTENDS sup = .))? .) { System.out.println("linha "+$nome.getLine()+ ": def class "+$nome.text); @@ -77,17 +77,19 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .+ (^(LIMIT lim=INTEIRO))?) + : ^(CONSTR_DECL INIT tipoRet =. .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); SimboloMetodo metodo = new SimboloMetodo($INIT.text, null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); + metodo.setRetorno($tipoRet.getText()); metodo.def = $INIT; $INIT.simbolo = metodo; escopoAtual.definir(metodo); escopoAtual = metodo; + contador = 0; } ; @@ -157,8 +159,8 @@ saiDoConstrutor ; -field : ^((a = 'getfield' | a = 'getstatic' | a = 'putfield' | a = 'putstatic') . . . .) - { +field : ^((a = 'getfield' | a = 'getstatic' | a = 'putfield' | a = 'putstatic') . .) + { if ($a.equals("getstatic") || $a.equals("putstatic")) contador += 9; else @@ -166,7 +168,7 @@ field : ^((a = 'getfield' | a = 'getstatic' | a = 'putfield' | a = 'putstatic') } ; -invoke : ^(('invokespecial' | 'invokestatic' | 'invokevirtual') . ^(METHOD_CALL . ^(ARGS .) .)) +invoke : ^(('invokespecial' | 'invokestatic' | 'invokevirtual') . ^(METHOD_CALL ^(PARAMS .) .)) { contador += 9; } diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index 9a103fc..97aaaa9 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -44,14 +44,11 @@ options { assembler.escreverOpcode(operacao); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - - /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ SimboloVariavel simboloVariavel = (SimboloVariavel) simboloClasse.resolver(nomeCampo); @@ -77,7 +74,7 @@ options { assembler.escreverOpcode(instrucao); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) @@ -105,7 +102,7 @@ options { assembler.escreverOpcode("new"); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver( nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) @@ -137,14 +134,14 @@ bottomup ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + : ^('.class' nome=ID (^(EXTENDS sup = .))? .) { simboloClasse =(SimboloClasse)tabelaSimbolos.global.resolver("L" + $nome.getText()); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); if ( $sup!=null ) { - $sup.simbolo = $sup.escopo.resolver($sup.text); + $sup.simbolo = $sup.escopo.resolver("L"+$sup.getText()); simboloClasse.superClasse = (SimboloClasse)$sup.simbolo; System.out.println("linha "+$nome.getLine()+": set "+$nome.text+ @@ -204,28 +201,50 @@ saiDoConstrutor } ; -field : ^(('getfield' | 'getstatic' | 'putfield' | 'putstatic') classe = . . campo = . tipo = .) +field : ^((op = 'getfield' | op = 'getstatic' | op = 'putfield' | op = 'putstatic') ref = . tipo = .) { - acessarCampo("getfield", $classe.getText(), $campo.getText()); + String[] tokens = $ref.getText().split("/"); + String campo = tokens[tokens.length - 1]; + String classe = "L"; + + int i; + + for (i = 0; i < tokens.length - 1; i++){ + if (i == tokens.length - 2) + classe += tokens[i]; + else + classe += tokens[i]+"/"; + } + + acessarCampo($op.getText(), classe, campo); } ; -invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) - { - if ($op.equals("invokespecial")) { - System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); - chamarMetodo($op.getText(), $classe.getText(), $nome.getText(), $a.getText(), ""); - } else { - System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); - chamarMetodo($op.getText(), $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); - } +invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') ref = . ^(METHOD_CALL ^(PARAMS a = .) tipoRet = .)) + { + + String[] tokens = $ref.getText().split("/"); + String nomeMetodo = tokens[tokens.length - 1]; + String classe = "L"; + + int i; + + for (i = 0; i < tokens.length - 1; i++){ + if (i == tokens.length - 2) + classe += tokens[i]; + else + classe += tokens[i]+"/"; + } + + System.out.println("chamando metodo "+nomeMetodo+"("+$a.getText()+")"+$tipoRet.getText()); + chamarMetodo($op.getText(), classe, nomeMetodo, $a.getText(), $tipoRet.getText()); } ; novaClasse : ^(NEW classe = .) { - newClass($classe.getText()); + newClass("L"+$classe.getText()); } ; diff --git a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens index 0707515..940c7a7 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__32=32 T__33=33 T__34=34 T__35=35 @@ -101,22 +100,22 @@ NEWLINE=23 NULL=24 PARAMS=25 PILHA=26 -RETURN=27 -STORE=28 -TIPO_REF=29 -VOID=30 -WS=31 -'('=32 -'()'=33 -')'=34 -'.class'=35 -'.end class'=36 -'.end method'=37 -'.field'=38 -'.limit locals'=39 -'.method'=40 -'.super'=41 -'/'=42 +REF=27 +RETURN=28 +STORE=29 +TIPO_REF=30 +VOID=31 +WS=32 +'('=33 +'()'=34 +')'=35 +'.class'=36 +'.end class'=37 +'.end method'=38 +'.field'=39 +'.limit locals'=40 +'.method'=41 +'.super'=42 ':'=43 'aconst_null'=44 'aload'=45 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index fecb5cd6b372982e124834c582de9f719307ab9e..7b2748bbf71a7e94d7f41d520b80d567a65a05ea 100644 GIT binary patch literal 34951 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 literal 31356 zcmcJ&2YeO9{>DAOnR9aHoHGjv8+unjdJP>>N`Ocx5{jXRBtReqlYoF&P*haxhz%7L zJr?YMASjw}Z5KOsEce=bxp>tp$otI9Cai*o{lD+$ z_KYDI;u%9Q)H8-)m}d;ZaL*WmOl$fY0*ndW^?eP&NY5C8QJygb7&a!GAvnb|hG4X3 z3_-SM48a)B7=p2$F$CkR>1PPWd&Ur)>KQ{Y!83*+$1{dtqGt@jB+nRv$(}I;Q#@k` zPV?(YphwmAyzkbl3lP7RyTgg zgdt;0B^!fkd{*`-(^^e1YeMG4NfXBEGMZvm&ctyOObN}1$%$Fx$IY6MIYQ5DjuI!2 zvyIUL%`(N5))J`&bMvs@>6`t3JwCJHx&PKB(0;W>!|8_J@-aadewTWx|ynOp{iS{Y6Df>Mpd`#xf`kK zPN-g0RYEU$FIC+qjNL?4_j~KE+GKKI_SR5+Gq--!33=FFdi7<(vlwgAu81m;s{-@# zBPbuV3r%`gor8DPU4}F-CzdJFIZ;|y%tc*ImzsJ~iRpo^hPBWvfx770qDFb(v~4tt zx|?~WD4`hT%t9?~N(J(mG~U&8URN)@0PF1Tm9)sL-{wcUT_fd7O=;Ju*H!K1W%Ihx-}nW=+fg)X%0aNA$C8C*9AMpDDA)&CAa(TvUm! z{)uR)shBWD#z~pI)v0Ef+s$|iokqFDi6~_9L`Y&c5NoOnoj^G!Xq{{-*4WkYU=xqR z+5IV|X>H9 zF#kJLmr^N>>X|v|CSPyrLw%{AiHDf?Cly*LuzDFT4Hz5nvSF6sSUNI6HHoX zQ`?hiC=H|GlxfnM7?$?f2s%uJhGCFN8Av!;c1*KYEGo<|$}2{@{)}U? z*@vEmljl@3v$8y|w4$i8sH_wRJ9pZVM>`yKO-39Jagd#cTs0nNT{gs?SkJ=wwCD4d z;?%&`rQ~(6M?$RbU)GJ&hH0kgLHWf+rA3v%6YV?TOf@vDte`MLIB`n->v343$Ju-| zVFS}N4eRL+ZD^W+h?@p+Nl+-}QrI*}UEKw;KBe;dl#b@F7pYHaA#(sjSJtNpCW-VY zGzN`hQkWd76R9tegp1Bb5=r_z4JTHO$aY6lYGwu(hLX{i5@Ud+QY*ckP-~Nhu9bun zD^6`BR*nMNnjzgzVid6MbV6;%>Sa2b8g;V6fXtvYF$Sg?Mm;6r9Ewvf2?SP$GE7;$ z&6@g1jB1qM*SLNX;~P2qON=n+07(rAZMjZ5HNu9M0k=Rn8LnXEr=rD;b20C0)hSp4pQ4bvLsPnFmbpc5pG(52?2>eiYlX_QW# zBpV#dw9c2<{X&Z* zcDo>7Xm&rv5{F%+mPqXCp`{YLTxglZ=>&9<#K8@Ey2Nf6S}tjY)(S~y>ryJ~==v{~ zbgp(wj5|Zpc{iH(n{ zR!X|s1m{UwYl8D7tuw(zlCCG#*bX9WELE!`e;G+P;=+ZhE-{s?x>VA7v)mdcTCk6QT1x7 zzL=^nk@S_Bg?{?x=nU0sY8bvVInixDm;l}OlL^pm`%Qpu`>!egYO215s@GCAI_X#4 zl-29ZKCJpWN&hohua|V-Z`OB1&HDZ@Id77jnP9!-+?2k7s&Av}+o}2v$wOw=M#)o5 zaHr%_kIw45s5(K_cT@E}RDCa1-`7`fEY+JNkLi7PwYfH;>IY2cRX?cLNYxKXt_tDl)R4#u9Cc;39gAU;sX@>FZ(6N2l2rXj&p|kN8TUB z!CLW?_{lgySX{a&FMnZXX+93i1@?NFScCRQo;GxtmZM7_s@SjWHysUE?0@Vxy`B+@ zkL06>9e0$%CYDXY>Bzj&!h&J*aSQkF${wamJVmkJ*#RA8D|XOEV-@?uu5Y|zhuCis zYjV)3I8|hIvx`a#$1X0JQ&>JR5BG)j^?g}>Uh(9-@*?fM#AxZ_lAOxC%0d9(6qq?M z`3uM7E%N58d4-k33yTZq*(}Z4cbJxaWV4yu%D9~ns+?bhf_na+??+(SltJcnD8>Yz zrT7dI5sn*Xz5id`*@*GkJRgPNa+OVK|9_`BN)?CZRTNGr%rBc)TC}{dd|-#kx;N%3 z_AiG0PwVzaSweR!#!X>f335kpWx!52vgHmJnS<`{?VyNW-8RS)Nx?l2<;WsJL)! zUI_|FZ{Oj_ZAbDY#HI}!Fnto9VN^_?Sd=%fZ2HKe%IR4nGlx(A(}Rxb73KNU=af&^ z&q1c^=OBNXJr66)t1QaTtC(KJc|B0Px15hUC&VEvPFeD;R3}k)CrON`FW+K zg}Nzc>3KMRnN^!);d)7aDNaz@chKv)Ot0&5?46Fbt3mhKMX;l@L2t>gM%*>OIIjYm zo=xl{`L(EU*TT|*R)3n&SMuv|!D42V6jshJ!v2BJ5r z_w3>18j9Yi+Y5)2YcWv07jcv-SiGoaZK&ES$cW9z-yOYCx7Tq3i)6h~7U`!3dT{qf z?cT)5n^#te8}ufr532SKl8W*QYFe=m>V>l?B$d`Cp;jMaJw>(~YFf4rYK5IzO>#}G z`k+>y9!{>QRUg#qi^It^wd#XfeSJ8&X1w-6)xJBN+`EPsRr?WD^GHf+*NLj_*U$w; z*io3O^+nZw(OKutD#|ZeRCsz#I_ihBt(x?CHC@*il|1N6$DYrY(@P4RYSrY|M@XBV zA%*az*XHjn1vclJ{H3+|`$!Shh;t94^p!%Hq{9^bq`*T7nXV zsWt7~50yBfHnpZ}`=K5<{qjnv>Dhj$N*BHQlEpP!Z9h~6qbGz@j+#Age^doaI7OvP z$`%&Z-VQNM+#hx7gHudzo_{R&N8Rwe)LU#xQF-O!yqdN2MVPe(?;DN^~*$#BL7C+AJxOjnY4+uEz}?N8+|yrriuEaj$;oeqm3eZ ze^qf z#1*(dhf@I@?iQC6M#NPp?8wF#Q&eG2FmM`J=&#$A;u>AIwZsM-4Pj_eCGrnEMh$Up zA=W8zoxlk|q#S3mOY{M{)6oj_&g=ek8l=x*#f`+;9EqKoS6;jvbLW>O*>JHl zEUm!xiP);dV?v*l;7y)_qWnr?t&Y|gzCoI$sUBDS3=%rpsrbbyH{;T-=Hu_cZk8Jcm#Xq*u0mVPF(I1L` zX`&EQ{2Lo_#lN>vNb#R+l%n|0Hj;|}YNMFqzuQPD{)dg~C_y$#RU%}gdP+oWl&(a~ zMh%p3Y}81JR2wx>0{8OKx}j!DG_X+%B^ukPl@iTtbes|`ZPZ4I<80JUiMBRsuS9zr zbyT90jXEpQ)ka;F=wYMoN@UomrxJZ_l%d1`8}(7*L>u)};$#~QP-2*k1}QPZMuU~e zveC&(WZP({660(%T!{%b8ll7_8;w%pG#j0w#55aaD>2hXW0lCW(Rd{aY&1cMc{ZA; z!~z>lR-(j4rzx?>MpKoju+elS7Taj15=(3}TM4`Mgytx*#-hm%9xX&wi$LH(7*Y){S_%xrd2k-iPI(&VfZvfxW=NrK{_W34o zO?|!@d~=^~0pHT+Tfw*X`QzY^_xU#PZGFBS{0Tna9=?OmcZBcc^PSq0i5SpXc-Q;fs8J0sKOrFNQDi`BL~YpI-!jy3d!x zSNMD-{9>P90)K|jFNI&`^ULAS^m)C#p5^mr!=K~x=fbb_`Saj$_osIIUIl-F&tC|C zkx!(Zd`YvHf;`E~Hu`TX_pH~9RG@HhGV zdia}t{ucOKeSQP{Z9acH{2e~O5&lk}zY9L$^LNAFi z_W4KPANBdo@LPO-EBs?VzYTu7&p!^o!{>LxKjHIF!te6=r{JIV`6~EopWhAt51)Sq z{#l=Y4*q$ce*ylVKEDV4MW25O{$-zk1^!i^e+~Y1pWh4rhR?qV|CZ0c4gZeMzYG7K z&+mhO-{(Jo|Ip_@Vj+eb-#C^vVjr_lYRCPj@Spqq7w}*C{MYc``uunBKluEQ@c;4o z{qT5XW7dO*D@O5X#V8(#7{%idqj(r%6puo*>Zc&k*-YZq8Qkch5M$11;O2Oz;gU3J z@C1c(ajF%`$ql&_&B+bB6wk>`ammTajhI-P|5K4vHzzk0X=xB7x{xT|YJuR5i-wT6 zON}AQrKS+arRI=2F13WzwWXxG)EX|$NE+TmNQO(N zLVCND1L@<^BuHPEra=0+lnd$a(lp2bmu5f)+Byufa-vJKkT}?-Jjh8dZASuQPxoZ`|MkkKwJgJipOCS;6D zXFu1bm=%KS3|C=YrIp22 zmRLE%%2F%KtSoowQ7m_+bt|l#<xZ~kgeFZR+eacPGx=TeuR(7MK@U0N@5>1nN(d-<<$sapFhUHXUCt6X|k z>(wqjuk{+2{;74XOD}4@)}@!VuJhJ&ou}7(dV@=^>iIW%{w9}R*M7a{Z}#*SPjB^f zgQvH7db_80xb%izexv8_^z<&5-qPs_&)@CRJKEpl(tBF(_0sS2bd#s|d-{M&@9TUI zy7Zyehg|xX)`wmCSnDHRzDGUX?9!(?eTz$2sbw@97Jk{?p69$K|BUdC^OM$>l=(mt7v#`ijdVT3>Z}RO@SAzSlk7>**VwzUlI~ z&i9tf9j$MB>v_lJb+v!j%lDqk)3o2`a#!p7Uit@~e(32(p8m_ze|!3|r=NJ`f9mr3 zx}49v^v^y0!qYE3{mRp?J^jYhZ$16aa-csv+ zZ~o7o{@2rAJpI+v-#pI$xxBSr?sqT!fR}#I^M81H$SSU*_3<{1$mPdtno{zY^gPt#4-briJGZF1Y8?;gfEir^FRInCA72A{XgWKzvy zbyPk}R|TwzDrBwHT-Hv_V_npImZ6H+K(&AkRSQ{`Dq-VQDVw6o*i5yE6{^!&u_|X3 zs)8+7m29P2%vP%<>gSw2mt1GClx{?N~ zt0+@lP1))i%28`+s=Ai))H<54uA?$_JuOi;&{^t6TBUBHOVxV1THQ=Hs9R`*x|I@Y z13jQ_qb=%o+NtiKYPFGGPMnX)CFnzSH+`n=p>Nf_v|rsvzpG80tNVFWJ-}1d zgS?@7h__G=^S0^{-dR1$d#TNM(`O4GqPFr;>M=e}ZR3;Gc0NNr&I{BIzEJJtM4G?dYWIWs`z?U&F@gV`Mv5N{9*MB-=?1ByVP_18TCAWQN6(Ts(&2SUTu!BDpPBQ#MR3Qc$L36VpgVuyz+9T8gLghH#FaA=K_ z5?bp-LhBtF+UUeWo1A!Pv!g;g9VfKgsT11c)D7)*QbYTkw9qF`z0fy~8`|%rhYmRP z!y%_ZSUC;D=}x0?GpBL5jngFD*=ZWiaGHe&InBevofhG2r&V~O(>greIWAn_93L)r z+Jq~ew&4{{yYMRKgzy@teR!?YF}&XC6yE4`4sUY0gf}}~!#kaB;oVO6@E)f}c(2nl zywB+s{=~@$f8+EH?|1ry4>)~OLQcOF>OR?F>zs=nPAl?hH>Ua57Vhoe?RO&d8J%&Zv}CPFBhq=aiJS&ghi&PIk&hXH3c_ zXKc!5XI#ooXMDaSk>O5WB-@!2ndsz4raJ|Z0;e!i?97c+I`bkcocWPe zPEllyvmmn8Sr}RG6h}5XC6P@|X=Jlg7TM`6itKhykL+>EBYT~S$Udhs@`(HaS+cWpw(PEE%3jV&InX&z4s*_zqn%YU$GJdG zb1szm&LwibbEzzI*2qfdGPx3ZG46#=!rrL?<8nSbj!(w*ACsrEMtq9C66B|0o@D%> ztR$)npUbD(t1R59!^IcohQ$+1JcNMj9h|v*WbABHsInROG(H`3NWbpoEj%1IO7+6^ zIzGl{cHF^d=XOLiXA3XXyGmP99dlE4B?~DRw?S9>O00LdL_W_eG1Ff3F{fjv9ejT7 zV|>A5eBt53V)}{@cW)G1Ra0Mh$16xjc!sHKq+iAIiku2aeP1`dW2erK@kL27@e&X) zU3QTvy_H?Aw)Awbbd;svBmxWZ3SQ~0r>kBs))R91;=eZJYG1WOUU_Ny*$^6Osa^&p zEz?)MtQ4hc+GeS(28k0prncY8&+NFFpVM>;U#Yd(7QX6mdoQU5;8_jr-E; zKz|+X53l#tpqaNuf$?DPY=v0^z8cGNmZqOe9YIm%Q8Z6&ttni7$yUDRSQxhh;|^dX z&^`CFboKyi#vb)yG_S>IT#M1L76T8(j=(tF7{{5$=n$YWwu9nvP&|pos6t~@qcNWI zQ6z5+Jditr;&5XeZyV#P0FChyFkS}6>u8L3&=~KcF+TKRByWssl47*67;6JydkEfYA{coq*8|7`=hf2N(kbW8evJ5{&j1 zV?zLpA;1_4j1j=d2F4g*ObCpD$InSHI#`T50$`j5j9g&M00z#asQ?&7fidvx`v{D~ zyN!+-BemPHcNcJlV>`@^3ZUfKVlTdUr6axZKtOCUaptu+m zmx1DPP+a3{i{un|GI|8X;hk4!+a-4g=#m?NaU(EpL6>Yqm)waixz~r0eCLH14w7JW zu^9ISz<3B44+CQhFm?cACorB4jDfcul3;YT7!L%%corDX0b>s^UIWJKz<4__241yD zg3--lJRAVy17LgzjE{lwB{04M#`l3S@Ps@GMt6&`IRM7b!1ymP{)baeeIkT6#du0! z47_BL1fz$=cdUav`l(aT~y5ddQVFa`qSBw%C$V+1fp2gbm=JxMS!EXGp-Fir)=1Yk@C#&lrJ z0LGla7h zE(OMwfidt(RT7N87UTH<80&y>9WZVJ#%;j39T@vB z8!)y5BQf3Rjk1jfKSd`U0{S&X-jjUl2; z;4QkasKb;?*+iXnVx73jJCk&1dPtW=n)tLZ!adn7;G^< z2!PQS82x}T2pB_wF$@@^0%PFS$s`yjS&V-Lz!(dRalps{MlLX>0%KNS47|6Q1mk3j z@ks!TLSW1V#sXk00>tR}%2 zYB9bFfN>2l)&k>tVB7+XTY<4LFa}}}gfw3bn2Hw?8 zf-&4;{15=+X<$?V;~8M=0mh5Kcr7pnUKCD(k!dmh69D6FV7vp2_kr;-Fg^jsmw_?x zmU0q|5fQ4~+i-<9F5!Z_w!5!uAq2`BfWUkxqg!(qjB}Y>ZF}6QKwT zhvH0y(pY+^9xxgP#=!g8NiarPi~|8MnggQ+FpdL8dth_`M%Ta?csV=?MwZ1m6aXUw z7`=hf9~dVA<78lD2F1{CrYFHT#b5{?0An;TvVk!k7?Xi91sKx$ztXVicFa|z< zNrI7MF`5U!XabC;z-S4Kw!mlyj81_u@a;_!jENSbRRD}0z~~8#KEN0Rj1z$|G%yA} z{7Hf_$zmKI0Amy|vVbuL7&*Y02#nmo82IWa3C3iL(JlbSEMUwAMgcGu0AnFA76rz@ zCr?Q*rdSL-@H^IH$M6zhoB@n8fw2-8=K;h2{5I)nkN(~&3C3v_qjLZZJcJG7A#C_+ zU|bK38-Q_3;MTy$UP&-=Ee4)r9J4hx0^?3#+yjgUf$(4IcorCY0%PDawt^mfhz*q;2 zn*z56zNJlqQD8B~2f(-u7`FrCE?{f|#{Ix}Brpa(_tQx*=39*E0Wb~%;|~^&aHb-XrAMNyS)@*241Bzu1f$4e%sMtkB%O&! zePA>OMoVC{0!G`w82EBL3C048F(&{B~I76!mr z1dP*xu^1R<0%HX*>b0^`BJ7!^q|l*OnFfUyM_TY>R7FrEU&)4+HpFb004;fU5a z{JNE+F;cUR{i0K34=7#)#j7kHd4su;H(Arjdp?S!FFNTTh)6=w!cgFda;z6;BmV-$ zzd`XCD82&4*P!?zFvU?`-=)5IsTSwiYa;vzuvD}64D)7O5f;HJ8ZpbyO ze@xsoKw{3SFeMI^9qmPG+hygf8D7-KZ6=A^OtLSF$bQU~1JGpySu=Se>n?||KJpaS zUyfme{(gN zUXUg1MOn_?kQMBGxzr5zxh#ej_@K6H->vQ1w`;rh89Z>bUHdp5JL<0O&(?|!h{9|T zyIkns7)W8G*m>f1XoPKKQE`XZi0=;Y&V{&B+{L6B0-ag>5UP222)N+`_`&aktR+#s z4h>}LArvUg00C2){=JvKjthKe&XI|+$*IlF#-6P=_O0UXBR05hhet?@KlQPFDHMw& z4!!vI{V^E7o$h1@{3ms&22~E?0DD5}A z!kwmnwZrPtAXtrpp!k|?_2xhI#9<&5Hp9n5fguz?*Lj|AFDET@5bbx)^XO#Yt zAv(2YaL|~V!9kiatLGu}Ge@PV4KZ}Y;BcSN;Wq9Qt{+Z~VG9rG zgO@oVHT88}y^g6dYDWs|0p<_y2vnj>VCJNxX(6@fwo+ z6+67&Sxg>a4dfr#zz(riQNc2z5jG$iV<$!(mKm+fCPeG7iP2OxC0dV7jk;_`v=J+e z;zwwrEzAaI+LV>nv?*Iq)23{G?apj6zIDMz)V9)Wua!pEj6Bm0ct`6X>q!)M8HvqD4kcW0aDAF0eoW0B1k^%3j<$*| zgPNLw!^B74(8gejOj{D*I~K^)18<$VR{tPQ7LdJWS%m{2$VIi~M0{fr5}aw6~*7hY;( zA`Md`Of50B!_);+2Bv|ShGNRXG#=9wOfxYRVk*W|foVCWm6%pzx&qTWOxSzksLF7} zU>LAWY{&Ezre`s|gy{`T`*1Map5XH#I}$t(@(M~Ylsq548gfWAtaojnUF|=ra+;UBW1p67%Ho?AwoRDCjLpmhbN03el_70>=g1rXmmSF#c^hmJXkX{M)1f+L@ZH4qr zum>Ui6YOrtzy!Mua$*nqU(lIXFXsOiHj3kSPfqSht396RaO(T7va}%t)|~kXZ?KJR~o{nnCgt ztUem~?gXm?SD0WC$UOZyqS+7eH}OMGEQ*^T(P6A^bU3Ywj-u7kY`Qc$p00>aq^qN+ z(Yok#x*~JI{$_@X4`$ zd}?eEpAkEm=f#Heg4ifNKbFlG#>Vrq*hF3)JB=@iP3OyEv-w%E0)B36K3^3p<`=~l z@k?Ws{PNgResydGzczL*zah4YuaB+f8)9qt9kDBUBDR*_8@rxA5L?e5j&0yuVjKCk z*xh_*Y!lxVdx%%ZHuGm<+xQEyo&3evQ~cG~ZoW769Dh5uhrbtlg?|{^%l{pFn|~JD z$G?ny#J`Pw!heW;!S~0$;lIRw;J?TA^FLz03LZNk!f|vVE=W~eiqtrMfftVeiFACztVqScaSQxJqrSYYrJibCKj-M-*#aD?H z@zvto_!@D3{7P|Ae66@7e!aLnzFu4v-yp7yZxq+Z?-uLho5Zd0hr}K6&El^3HgRu! zr?@}WQ5An%JQLq1o{xVdUW|VtUWtDp_Qt;vZ^eHQ z@5T3v58}Uyf5#7qPZbkist`Wam*NMNYL1uqv>L}EAF*~EASAz2S_)5dPPB0$WzD4vHX}Ww9+fE_)x2?>7o^aM zQzL2$%cE0sW^@^Bsz=s`U4?e7tFSU_rN$+C9N4-x1(^aXux#Kc0w8=cRQv>?t(2wvR>iP+EO7u{6LU1`10f>*!sXMZ}Xzr*f0WCOtN6 ztNeGd6;7;Ics$ho2l0V`M)l-poU;@`txv3@Dd2L23R+%Vk0M$Nj1 O`+|LuQFwqy==}oX1icsl diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$chamadaMetodo_return.class deleted file mode 100644 index e7e0e260bcecc8ed833c148a45ba13b8c90d86ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmb7CU279T6g`uqS+iY@#?)5d1i{t^2k|ksPy?aD+Lk8twao5b(7nfdeg_BVi!com=}FiD)OzAX}|=aflpJh_DX=I* z+SrT`;E_N-)`pI&A|W@c=Lig9o2vX=IbG*>n;n0tOM#2z*#0+-j;k zeAUC@HFIh6hY-A&5Ze~VEFaq*XOewWdv}BIXH$;YcI(YSg2x<3%LY6_pEH4{c*gcV c_!kC09)PnI;1-5W*A`x|4|$BhHeRCl58sotPyhe` diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$classe_return.class deleted file mode 100644 index c0d3081ca655e078833542e1b506133ebdf5c0f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcma)4O-md>5PiM7?qt{TD_K7hy$C|oLzx(JZxH+^V$F;fMV4H;s$RV+Ucc^tkAMCG_=dFrHG#d@%KX77sf{N)w&c|y zvvRDgBP+Yk(I`&Io|N@Qk}5{dnUz};pds)%vqPzjPp!1M@p?qE;-2OyotC^_l8s5A zSq%%!N0;iilDXHZjI{GR0u678DLLCz z6b#At%e!?px2k)m$_(Xkd`XGlX+dByM1Xe!?OvAKgbsC~tMkhFFNI|S;gK<956V|? z0X_+Qo#5Ep8UmM9OgaEIXax=c delta 19 acmbQkI)`+jjLRoiGU)&SJ$41x delta 19 acmZ3=x|DT;H4|geWE&~L3=`wu$+1i}jQ=OkV$uNsO7sUT delta 19 bcmX@cdW>~L3=`wE$+1i}j5j9FV$uNsNQ4I7 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$membroClasse_return.class index 4535314692453954d977b7bbe59ae8d5639d6766..fd1cb1f0fa017c53aafd87217a1b4b3d04dc26ce 100644 GIT binary patch delta 19 bcmdnOx`lOv7Zc;@$=*yhjAtizFzEmQLwE*m delta 19 bcmdnOx`lOv7Zc<1$=*yhj4LO1FzEmQK{y5` diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index 1121a279cc9110fdf6fdc1b15258c243ee2f3c8b..446b2c82b3e6b2c0a3c1c0bb5f62b71941a7652d 100644 GIT binary patch delta 19 acmbQwI-hleDHCJMWHTlk#Hq)$ delta 21 dcmZ3%x`K6sEfW*p)5-Qs)=YfQC)Y6P002qF27&+p diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class index dfd18347408f03818f7002aae7b511dff9a83c93..e0fa0562213435a1e049fa198868421df3de4180 100644 GIT binary patch delta 19 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ʹ!^{4 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/Def.class b/bin/br/ufpb/iged/interpretador/parser/Def.class index 7de488f509f55059be10939f857447d5993ae362..3abbf217cf1a77d804f0c36fdb7e932aa07bffec 100644 GIT binary patch literal 27694 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 ZSq57+IR+Ot`N`{8oSE1ZCx2$q0RU%q3Q_<7 delta 69 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens index 0707515..940c7a7 100644 --- a/bin/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/bin/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__32=32 T__33=33 T__34=34 T__35=35 @@ -101,22 +100,22 @@ NEWLINE=23 NULL=24 PARAMS=25 PILHA=26 -RETURN=27 -STORE=28 -TIPO_REF=29 -VOID=30 -WS=31 -'('=32 -'()'=33 -')'=34 -'.class'=35 -'.end class'=36 -'.end method'=37 -'.field'=38 -'.limit locals'=39 -'.method'=40 -'.super'=41 -'/'=42 +REF=27 +RETURN=28 +STORE=29 +TIPO_REF=30 +VOID=31 +WS=32 +'('=33 +'()'=34 +')'=35 +'.class'=36 +'.end class'=37 +'.end method'=38 +'.field'=39 +'.limit locals'=40 +'.method'=41 +'.super'=42 ':'=43 'aconst_null'=44 'aload'=45 diff --git a/bin/br/ufpb/iged/interpretador/testes/Test.class b/bin/br/ufpb/iged/interpretador/testes/Test.class index ce83129cba5ef3549fbf813c102251a89b36d0c4..7f9356f8219c29fe1f07fd0e75d06665cca80b5a 100644 GIT binary patch literal 1441 zcma)6U3U{z6y3L($s}>gM@pcP3P|}#nv}t!pbZwGQVgao(yp$>;%PE-lMb28%$iIP zY$ePfR7C7AS0=d@jHf6kNH+?CPZ-kERZ`rY@*1JY6+4gz@rN;lurpA-H zwigH-FFkDRXSI>UUeKa?t7 z-|qFK_2lU{85|c7Ru0p6*Ff<=1x9C?IEfhny%+f&%W<(ZCYv!CW^oE<44giQ_>|@D zns^^)SyW_XF_byX0Su$}0 zpD_hr2JK{fsM)%5+%mC@&jqr*ezP}}kP=qCJ_eh@v*R|UIyL52Sx;LD{J+(tT+>O| zkpcJVj@^wy8l0iZxW!|uvo+Zqfys@;b~>weG<+HcR;cBTupc{e#Z&JmtDfT}bp(Y% z4t&eN1ZRA2>H7fbS04G+f)g8@USoL_O~Ka|(`r+`Ot4})RZI`?spbxFb9a}a zA`M0=jwvXPOXL9-CWW(H&yvYGUhsL$piIjgRaC(W=HYN1;xfL*0-o_>_!HIn9M^`m zxj$l!+l*AWKjRL*U{!MX5p~)oi24KW(v~9b_xO@C4X5!f8dzn`p78;$(UvA^7VDfD fxJRTJXs?+>+Q3%^ruX`3Udrr@y1@I4nZU+B(YH$4 literal 2295 zcmb_d-BKGj7(D_T;mxK=Z5#rn{3H&wlfV*ak`|}57)VNMej2+ZE^QOp7G}Y_>yg(P za^Dx}RjW+9NjIyvx##(+y7F>p&N2YDMa}3?_ z#0EoP!6`}&-3aLjqKDy1+O*|r&B{xa75TDc2&bKbC~pX5dhdrH1Maq2Wr(NG$0kWT zS;Dj#uEjUg$E-50GVM~*W1=nX6=cOV9lOdAW{4cmYK?I8F^oB?WC+_WD?`<6*R-TD zznV=yeQcH`;Ynfj;u^yxX}d}k#iYCEYKY*v7vKOxG~RB1j!zh-Is{V@sw$N+U#&`u z(xB3EPbv+A_|(H4CR*|ISz-&@LNz&2j2xp3H``2dEX%R8&aSkZb2W_Mh6j6-;YK^y z=3J+y3ev~D#gOX2J^$L31v+POMBWfp%Sau5ZG{xVXGn0w8D=jGwkWr#t_s4@aT|B& zG)=qes#?L3R3%R~JC#X$b}hizauZ27NewYfczKy*F#kI*ehno5r#%xJ8m2JKagX6% zhqRook9EIZbdv4o480ZQl$5Xp!%{raDH-iyVn^#=kkV_)PKNLRUvNA;A@R&>Qop6+ zOU#nIof@e<+N^ccG1f_F?qMl%JYwiS))##y6{c!txhPeLl02v5YkWgyK~-ax9EPsV zl!g=*ITlWC>95qWgvSj0l_=Nb+LouW<-}Q)X-MLFFP0hDsMr5qM;a@%i>OqjU1XSO zC(ScBhdikol33HRjvpw&uG0*Hp^p-LIy9P_!H*o-BU?F{5FHzyGXyJMj>xHmDpA!& z+87lDd1xyP!=3d`cxBHc7^W|B;J&YrUG})19}taO?Y24X7~XdW(sE|f zpN{5o#ubI#6;bhxp5r+O9q3RS*J@cCsXgO+k>|h+A@BN`^p1c*U$$+j7RsLUkge}B zEOyY)xt)MEX}JOi-751PP|qhRy7^9t3}YY}(aj5VQIBp%dUAR*sAbd!Z`aZLr$4OG z(;EgfT%xDmoIvemdJEwrTp^IF)DO_e$3D!zJ|yt6fk-YKt)oBPz+mo99YZS(jO6at zF}B)3EH|-_@jC9#1_lBLFrIZk2>yZCKJGV=%+66h>J!{A_!v$eMlfm0rlfP21q0Qc!6O*f;ozZxZxR|Q>&3e za`=h3N3eoT{7lgdVG+OJSHe! ^('.class' ID superClasse? ^(MEMBRO_CLASSE membroClasse+)) ; -superClasse : '.super' TIPO_REF -> ^(EXTENDS TIPO_REF) ; +superClasse : '.super' (b = ID | b = REF)-> ^(EXTENDS $b) ; membroClasse : '.field' 'static'? ID tipo -> ^(FIELD_DECL ID tipo) - | '.method' INIT (parametros | '(' parametros ')') VOID NEWLINE (limite NEWLINE)? operacao* '.end method' - -> ^(CONSTR_DECL INIT parametros limite? ^(BODY operacao*)) + | '.method' INIT (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' + -> ^(CONSTR_DECL INIT $ret parametros limite? ^(BODY operacao*)) | '.method' 'static'? ID (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' -> ^(METHOD_DECL ID $ret parametros limite? ^(BODY operacao*)) ; @@ -106,17 +106,17 @@ retorno : -> ^(RETURN $a) ; -manipulacaoObjetos : a = 'getfield' b = campo tipo -> ^('getfield' $b tipo) - | a = 'getstatic' b = campo tipo -> ^('getstatic' $b tipo) - | a = 'putfield' b = campo tipo -> ^('putfield' $b tipo) - | a = 'putstatic' b = campo tipo -> ^('putstatic' $b tipo) - | a = 'invokespecial' c = classe '/' d = chamadaMetodo - -> ^('invokespecial' $c $d) - | a = 'invokestatic' c = classe '/' d = chamadaMetodo - -> ^('invokestatic' $c $d) - | a = 'invokevirtual' c = classe '/' d = chamadaMetodo - -> ^('invokevirtual' $c $d) - | a = 'new'c = classe -> ^(NEW $c) +manipulacaoObjetos : a = 'getfield' REF tipo -> ^('getfield' REF tipo) + | a = 'getstatic' REF tipo -> ^('getstatic' REF tipo) + | a = 'putfield' REF tipo -> ^('putfield' REF tipo) + | a = 'putstatic' REF tipo -> ^('putstatic' REF tipo) + | a = 'invokespecial' REF d = parametrosRetorno + -> ^('invokespecial' REF $d) + | a = 'invokestatic' REF d = parametrosRetorno + -> ^('invokestatic' REF $d) + | a = 'invokevirtual' REF d = parametrosRetorno + -> ^('invokevirtual' REF $d) + | a = 'new' (b = ID | b = REF) -> ^(NEW $b) ; @@ -208,28 +208,12 @@ pilha : ( a = 'pop' ) -> ^(PILHA $a) ; - -classe returns [List classe] - @init { - $classe = new ArrayList(); - } - : (cls += ID '/')* (cls += ID) {$classe = $cls;} - ; -chamadaMetodo - : (n = INIT | n = ID) (argumentos | '(' argumentos ')') tip = tipo - -> ^(METHOD_CALL $n argumentos $tip) +parametrosRetorno + : (parametros | '(' parametros ')') tip = tipo + -> ^(METHOD_CALL parametros $tip) ; -argumentos - : '()' -> ^(ARGS VOID) - | ( - a = ID - | a = TIPO_REF - )+ - -> ^(ARGS $a)+ - ; - contagemParametros returns [int qtdParams] : '()' {$qtdParams = 0;} | ( @@ -238,14 +222,6 @@ contagemParametros returns [int qtdParams] )+ ; -campo returns [List classe, String campo] - @init { - $classe = new ArrayList(); - $campo=""; - } - : (cls += ID '/')+ cmp = ID {$classe = $cls; $campo = $cmp.text;} - ; - INIT : ''; INT : 'I'; @@ -256,7 +232,9 @@ NULL : ('null' | 'NULL'); INTEIRO : '-'? '0'..'9'+ ; -TIPO_REF: 'L' ID ('/' ID)*; +REF : (ID '/')+ ( ID | INIT); + +TIPO_REF: 'L'ID ('/' ID)*';'; ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 53a0e48..223589c 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -49,7 +49,7 @@ bottomup : saiDoCorpoMetodo ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + : ^('.class' nome=ID (^(EXTENDS sup = .))? .) { System.out.println("linha "+$nome.getLine()+ ": def class "+$nome.text); @@ -77,13 +77,14 @@ declaracaoVariavel ; entraNoConstrutor - : ^(CONSTR_DECL INIT .+ (^(LIMIT lim=INTEIRO))?) + : ^(CONSTR_DECL INIT tipoRet =. .+ (^(LIMIT lim=INTEIRO))?) { System.out.println("linha "+$INIT.getLine()+ ": def method init "); SimboloMetodo metodo = new SimboloMetodo($INIT.text, null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); + metodo.setRetorno($tipoRet.getText()); metodo.def = $INIT; $INIT.simbolo = metodo; escopoAtual.definir(metodo); @@ -158,8 +159,8 @@ saiDoConstrutor ; -field : ^((a = 'getfield' | a = 'getstatic' | a = 'putfield' | a = 'putstatic') . . . .) - { +field : ^((a = 'getfield' | a = 'getstatic' | a = 'putfield' | a = 'putstatic') . .) + { if ($a.equals("getstatic") || $a.equals("putstatic")) contador += 9; else @@ -167,7 +168,7 @@ field : ^((a = 'getfield' | a = 'getstatic' | a = 'putfield' | a = 'putstatic') } ; -invoke : ^(('invokespecial' | 'invokestatic' | 'invokevirtual') . ^(METHOD_CALL . ^(ARGS .) .)) +invoke : ^(('invokespecial' | 'invokestatic' | 'invokevirtual') . ^(METHOD_CALL ^(PARAMS .) .)) { contador += 9; } diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 9a103fc..97aaaa9 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -44,14 +44,11 @@ options { assembler.escreverOpcode(operacao); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - - /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ SimboloVariavel simboloVariavel = (SimboloVariavel) simboloClasse.resolver(nomeCampo); @@ -77,7 +74,7 @@ options { assembler.escreverOpcode(instrucao); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) @@ -105,7 +102,7 @@ options { assembler.escreverOpcode("new"); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver( nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) @@ -137,14 +134,14 @@ bottomup ; entraNaClasse - : ^('.class' nome=ID (^(EXTENDS sup=TIPO_REF))? .) + : ^('.class' nome=ID (^(EXTENDS sup = .))? .) { simboloClasse =(SimboloClasse)tabelaSimbolos.global.resolver("L" + $nome.getText()); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); if ( $sup!=null ) { - $sup.simbolo = $sup.escopo.resolver($sup.text); + $sup.simbolo = $sup.escopo.resolver("L"+$sup.getText()); simboloClasse.superClasse = (SimboloClasse)$sup.simbolo; System.out.println("linha "+$nome.getLine()+": set "+$nome.text+ @@ -204,28 +201,50 @@ saiDoConstrutor } ; -field : ^(('getfield' | 'getstatic' | 'putfield' | 'putstatic') classe = . . campo = . tipo = .) +field : ^((op = 'getfield' | op = 'getstatic' | op = 'putfield' | op = 'putstatic') ref = . tipo = .) { - acessarCampo("getfield", $classe.getText(), $campo.getText()); + String[] tokens = $ref.getText().split("/"); + String campo = tokens[tokens.length - 1]; + String classe = "L"; + + int i; + + for (i = 0; i < tokens.length - 1; i++){ + if (i == tokens.length - 2) + classe += tokens[i]; + else + classe += tokens[i]+"/"; + } + + acessarCampo($op.getText(), classe, campo); } ; -invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') classe = . ^(METHOD_CALL nome = . ^(ARGS a = .) tipoRet = .)) - { - if ($op.equals("invokespecial")) { - System.out.println("chamando construtor "+$nome.getText()+"("+$a.getText()+")"); - chamarMetodo($op.getText(), $classe.getText(), $nome.getText(), $a.getText(), ""); - } else { - System.out.println("chamando metodo "+$nome.getText()+"("+$a.getText()+")"+$tipoRet.getText()); - chamarMetodo($op.getText(), $classe.getText(), $nome.getText(), $a.getText(), $tipoRet.getText()); - } +invoke : ^((op = 'invokespecial' | op = 'invokestatic' | op = 'invokevirtual') ref = . ^(METHOD_CALL ^(PARAMS a = .) tipoRet = .)) + { + + String[] tokens = $ref.getText().split("/"); + String nomeMetodo = tokens[tokens.length - 1]; + String classe = "L"; + + int i; + + for (i = 0; i < tokens.length - 1; i++){ + if (i == tokens.length - 2) + classe += tokens[i]; + else + classe += tokens[i]+"/"; + } + + System.out.println("chamando metodo "+nomeMetodo+"("+$a.getText()+")"+$tipoRet.getText()); + chamarMetodo($op.getText(), classe, nomeMetodo, $a.getText(), $tipoRet.getText()); } ; novaClasse : ^(NEW classe = .) { - newClass($classe.getText()); + newClass("L"+$classe.getText()); } ; diff --git a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens index 0707515..940c7a7 100644 --- a/src/br/ufpb/iged/interpretador/parser/Assembler.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Assembler.tokens @@ -1,4 +1,3 @@ -T__32=32 T__33=33 T__34=34 T__35=35 @@ -101,22 +100,22 @@ NEWLINE=23 NULL=24 PARAMS=25 PILHA=26 -RETURN=27 -STORE=28 -TIPO_REF=29 -VOID=30 -WS=31 -'('=32 -'()'=33 -')'=34 -'.class'=35 -'.end class'=36 -'.end method'=37 -'.field'=38 -'.limit locals'=39 -'.method'=40 -'.super'=41 -'/'=42 +REF=27 +RETURN=28 +STORE=29 +TIPO_REF=30 +VOID=31 +WS=32 +'('=33 +'()'=34 +')'=35 +'.class'=36 +'.end class'=37 +'.end method'=38 +'.field'=39 +'.limit locals'=40 +'.method'=41 +'.super'=42 ':'=43 'aconst_null'=44 'aload'=45 diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 19610bd..8622605 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-18 18:25:44 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-19 19:24:02 package br.ufpb.iged.interpretador.parser; @@ -11,7 +11,6 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class AssemblerLexer extends Lexer { public static final int EOF=-1; - public static final int T__32=32; public static final int T__33=33; public static final int T__34=34; public static final int T__35=35; @@ -114,11 +113,12 @@ public class AssemblerLexer extends Lexer { public static final int NULL=24; public static final int PARAMS=25; public static final int PILHA=26; - public static final int RETURN=27; - public static final int STORE=28; - public static final int TIPO_REF=29; - public static final int VOID=30; - public static final int WS=31; + public static final int REF=27; + public static final int RETURN=28; + public static final int STORE=29; + public static final int TIPO_REF=30; + public static final int VOID=31; + public static final int WS=32; // delegates // delegators @@ -135,10 +135,10 @@ public AssemblerLexer(CharStream input, RecognizerSharedState state) { } public String getGrammarFileName() { return "C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g"; } - // $ANTLR start "T__32" - public final void mT__32() throws RecognitionException { + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { try { - int _type = T__32; + int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:7: ( '(' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:6:9: '(' @@ -154,12 +154,12 @@ public final void mT__32() throws RecognitionException { // do for sure before leaving } } - // $ANTLR end "T__32" + // $ANTLR end "T__33" - // $ANTLR start "T__33" - public final void mT__33() throws RecognitionException { + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { try { - int _type = T__33; + int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:7: ( '()' ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:7:9: '()' @@ -168,27 +168,6 @@ public final void mT__33() throws RecognitionException { - } - - state.type = _type; - state.channel = _channel; - } - finally { - // do for sure before leaving - } - } - // $ANTLR end "T__33" - - // $ANTLR start "T__34" - public final void mT__34() throws RecognitionException { - try { - int _type = T__34; - int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' - { - match(')'); - } state.type = _type; @@ -205,12 +184,10 @@ public final void mT__35() throws RecognitionException { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:7: ( ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:8:9: ')' { - match(".class"); - - + match(')'); } @@ -228,10 +205,10 @@ public final void mT__36() throws RecognitionException { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:7: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:9:9: '.class' { - match(".end class"); + match(".class"); @@ -251,10 +228,10 @@ public final void mT__37() throws RecognitionException { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:7: ( '.end class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:10:9: '.end class' { - match(".end method"); + match(".end class"); @@ -274,10 +251,10 @@ public final void mT__38() throws RecognitionException { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:7: ( '.end method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:11:9: '.end method' { - match(".field"); + match(".end method"); @@ -297,10 +274,10 @@ public final void mT__39() throws RecognitionException { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.limit locals' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.limit locals' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:7: ( '.field' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:12:9: '.field' { - match(".limit locals"); + match(".field"); @@ -320,10 +297,10 @@ public final void mT__40() throws RecognitionException { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.method' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:7: ( '.limit locals' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:13:9: '.limit locals' { - match(".method"); + match(".limit locals"); @@ -343,10 +320,10 @@ public final void mT__41() throws RecognitionException { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '.super' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '.super' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:7: ( '.method' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:14:9: '.method' { - match(".super"); + match(".method"); @@ -366,10 +343,12 @@ public final void mT__42() throws RecognitionException { try { int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( '/' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:7: ( '.super' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:15:9: '.super' { - match('/'); + match(".super"); + + } @@ -387,8 +366,8 @@ public final void mT__43() throws RecognitionException { try { int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( ':' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: ':' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:7: ( ':' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:16:9: ':' { match(':'); @@ -408,8 +387,8 @@ public final void mT__44() throws RecognitionException { try { int _type = T__44; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aconst_null' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:7: ( 'aconst_null' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:17:9: 'aconst_null' { match("aconst_null"); @@ -431,8 +410,8 @@ public final void mT__45() throws RecognitionException { try { int _type = T__45; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:7: ( 'aload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:18:9: 'aload' { match("aload"); @@ -454,8 +433,8 @@ public final void mT__46() throws RecognitionException { try { int _type = T__46; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:7: ( 'aload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:19:9: 'aload_0' { match("aload_0"); @@ -477,8 +456,8 @@ public final void mT__47() throws RecognitionException { try { int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:7: ( 'aload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:20:9: 'aload_1' { match("aload_1"); @@ -500,8 +479,8 @@ public final void mT__48() throws RecognitionException { try { int _type = T__48; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:7: ( 'aload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:21:9: 'aload_2' { match("aload_2"); @@ -523,8 +502,8 @@ public final void mT__49() throws RecognitionException { try { int _type = T__49; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'aload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:7: ( 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:22:9: 'aload_3' { match("aload_3"); @@ -546,8 +525,8 @@ public final void mT__50() throws RecognitionException { try { int _type = T__50; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'areturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:7: ( 'areturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:23:9: 'areturn' { match("areturn"); @@ -569,8 +548,8 @@ public final void mT__51() throws RecognitionException { try { int _type = T__51; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:7: ( 'astore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:24:9: 'astore' { match("astore"); @@ -592,8 +571,8 @@ public final void mT__52() throws RecognitionException { try { int _type = T__52; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:7: ( 'astore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:25:9: 'astore_0' { match("astore_0"); @@ -615,8 +594,8 @@ public final void mT__53() throws RecognitionException { try { int _type = T__53; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:7: ( 'astore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:26:9: 'astore_1' { match("astore_1"); @@ -638,8 +617,8 @@ public final void mT__54() throws RecognitionException { try { int _type = T__54; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:7: ( 'astore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:27:9: 'astore_2' { match("astore_2"); @@ -661,8 +640,8 @@ public final void mT__55() throws RecognitionException { try { int _type = T__55; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'astore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:7: ( 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:28:9: 'astore_3' { match("astore_3"); @@ -684,8 +663,8 @@ public final void mT__56() throws RecognitionException { try { int _type = T__56; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'dup' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:7: ( 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:29:9: 'dup' { match("dup"); @@ -707,8 +686,8 @@ public final void mT__57() throws RecognitionException { try { int _type = T__57; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'getfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:7: ( 'getfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:30:9: 'getfield' { match("getfield"); @@ -730,8 +709,8 @@ public final void mT__58() throws RecognitionException { try { int _type = T__58; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'getstatic' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'getstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:7: ( 'getstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:31:9: 'getstatic' { match("getstatic"); @@ -753,8 +732,8 @@ public final void mT__59() throws RecognitionException { try { int _type = T__59; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'goto' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'goto' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:7: ( 'goto' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:32:9: 'goto' { match("goto"); @@ -776,8 +755,8 @@ public final void mT__60() throws RecognitionException { try { int _type = T__60; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iadd' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:7: ( 'iadd' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:33:9: 'iadd' { match("iadd"); @@ -799,8 +778,8 @@ public final void mT__61() throws RecognitionException { try { int _type = T__61; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iand' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:7: ( 'iand' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:34:9: 'iand' { match("iand"); @@ -822,8 +801,8 @@ public final void mT__62() throws RecognitionException { try { int _type = T__62; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:7: ( 'iconst_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:35:9: 'iconst_0' { match("iconst_0"); @@ -845,8 +824,8 @@ public final void mT__63() throws RecognitionException { try { int _type = T__63; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:7: ( 'iconst_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:36:9: 'iconst_1' { match("iconst_1"); @@ -868,8 +847,8 @@ public final void mT__64() throws RecognitionException { try { int _type = T__64; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:7: ( 'iconst_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:37:9: 'iconst_2' { match("iconst_2"); @@ -891,8 +870,8 @@ public final void mT__65() throws RecognitionException { try { int _type = T__65; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:7: ( 'iconst_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:38:9: 'iconst_3' { match("iconst_3"); @@ -914,8 +893,8 @@ public final void mT__66() throws RecognitionException { try { int _type = T__66; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_4' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:7: ( 'iconst_4' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:39:9: 'iconst_4' { match("iconst_4"); @@ -937,8 +916,8 @@ public final void mT__67() throws RecognitionException { try { int _type = T__67; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iconst_5' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:7: ( 'iconst_5' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:40:9: 'iconst_5' { match("iconst_5"); @@ -960,8 +939,8 @@ public final void mT__68() throws RecognitionException { try { int _type = T__68; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'iconst_m1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:7: ( 'iconst_m1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:41:9: 'iconst_m1' { match("iconst_m1"); @@ -983,8 +962,8 @@ public final void mT__69() throws RecognitionException { try { int _type = T__69; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'idiv' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:7: ( 'idiv' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:42:9: 'idiv' { match("idiv"); @@ -1006,8 +985,8 @@ public final void mT__70() throws RecognitionException { try { int _type = T__70; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:7: ( 'if_icmpeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:43:9: 'if_icmpeq' { match("if_icmpeq"); @@ -1029,8 +1008,8 @@ public final void mT__71() throws RecognitionException { try { int _type = T__71; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmpge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmpge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:7: ( 'if_icmpge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:44:9: 'if_icmpge' { match("if_icmpge"); @@ -1052,8 +1031,8 @@ public final void mT__72() throws RecognitionException { try { int _type = T__72; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmpgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmpgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:7: ( 'if_icmpgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:45:9: 'if_icmpgt' { match("if_icmpgt"); @@ -1075,8 +1054,8 @@ public final void mT__73() throws RecognitionException { try { int _type = T__73; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmple' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmple' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:7: ( 'if_icmple' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:46:9: 'if_icmple' { match("if_icmple"); @@ -1098,8 +1077,8 @@ public final void mT__74() throws RecognitionException { try { int _type = T__74; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'if_icmplt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'if_icmplt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:7: ( 'if_icmplt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:47:9: 'if_icmplt' { match("if_icmplt"); @@ -1121,8 +1100,8 @@ public final void mT__75() throws RecognitionException { try { int _type = T__75; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'if_icmpne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'if_icmpne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:7: ( 'if_icmpne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:48:9: 'if_icmpne' { match("if_icmpne"); @@ -1144,8 +1123,8 @@ public final void mT__76() throws RecognitionException { try { int _type = T__76; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifeq' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifeq' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:7: ( 'ifeq' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:49:9: 'ifeq' { match("ifeq"); @@ -1167,8 +1146,8 @@ public final void mT__77() throws RecognitionException { try { int _type = T__77; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifge' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifge' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:7: ( 'ifge' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:50:9: 'ifge' { match("ifge"); @@ -1190,8 +1169,8 @@ public final void mT__78() throws RecognitionException { try { int _type = T__78; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ifgt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ifgt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:7: ( 'ifgt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:51:9: 'ifgt' { match("ifgt"); @@ -1213,8 +1192,8 @@ public final void mT__79() throws RecognitionException { try { int _type = T__79; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'ifle' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'ifle' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:7: ( 'ifle' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:52:9: 'ifle' { match("ifle"); @@ -1236,8 +1215,8 @@ public final void mT__80() throws RecognitionException { try { int _type = T__80; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'iflt' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'iflt' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:7: ( 'iflt' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:53:9: 'iflt' { match("iflt"); @@ -1259,8 +1238,8 @@ public final void mT__81() throws RecognitionException { try { int _type = T__81; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'ifne' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'ifne' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:7: ( 'ifne' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:54:9: 'ifne' { match("ifne"); @@ -1282,8 +1261,8 @@ public final void mT__82() throws RecognitionException { try { int _type = T__82; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iinc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:7: ( 'iinc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:9: 'iinc' { match("iinc"); @@ -1305,8 +1284,8 @@ public final void mT__83() throws RecognitionException { try { int _type = T__83; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:7: ( 'iload' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:56:9: 'iload' { match("iload"); @@ -1328,8 +1307,8 @@ public final void mT__84() throws RecognitionException { try { int _type = T__84; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:7: ( 'iload_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:57:9: 'iload_0' { match("iload_0"); @@ -1351,8 +1330,8 @@ public final void mT__85() throws RecognitionException { try { int _type = T__85; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:7: ( 'iload_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:58:9: 'iload_1' { match("iload_1"); @@ -1374,8 +1353,8 @@ public final void mT__86() throws RecognitionException { try { int _type = T__86; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'iload_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:7: ( 'iload_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:59:9: 'iload_2' { match("iload_2"); @@ -1397,8 +1376,8 @@ public final void mT__87() throws RecognitionException { try { int _type = T__87; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'iload_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:7: ( 'iload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:60:9: 'iload_3' { match("iload_3"); @@ -1420,8 +1399,8 @@ public final void mT__88() throws RecognitionException { try { int _type = T__88; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'imul' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:7: ( 'imul' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:61:9: 'imul' { match("imul"); @@ -1443,8 +1422,8 @@ public final void mT__89() throws RecognitionException { try { int _type = T__89; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'ineg' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:7: ( 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:62:9: 'ineg' { match("ineg"); @@ -1466,8 +1445,8 @@ public final void mT__90() throws RecognitionException { try { int _type = T__90; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'invokespecial' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:7: ( 'invokespecial' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:63:9: 'invokespecial' { match("invokespecial"); @@ -1489,8 +1468,8 @@ public final void mT__91() throws RecognitionException { try { int _type = T__91; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'invokestatic' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'invokestatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:7: ( 'invokestatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:64:9: 'invokestatic' { match("invokestatic"); @@ -1512,8 +1491,8 @@ public final void mT__92() throws RecognitionException { try { int _type = T__92; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'invokevirtual' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'invokevirtual' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:7: ( 'invokevirtual' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:65:9: 'invokevirtual' { match("invokevirtual"); @@ -1535,8 +1514,8 @@ public final void mT__93() throws RecognitionException { try { int _type = T__93; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'ior' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:7: ( 'ior' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:66:9: 'ior' { match("ior"); @@ -1558,8 +1537,8 @@ public final void mT__94() throws RecognitionException { try { int _type = T__94; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'irem' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:7: ( 'irem' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:67:9: 'irem' { match("irem"); @@ -1581,8 +1560,8 @@ public final void mT__95() throws RecognitionException { try { int _type = T__95; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'ireturn' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:7: ( 'ireturn' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:68:9: 'ireturn' { match("ireturn"); @@ -1604,8 +1583,8 @@ public final void mT__96() throws RecognitionException { try { int _type = T__96; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:7: ( 'istore' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:69:9: 'istore' { match("istore"); @@ -1627,8 +1606,8 @@ public final void mT__97() throws RecognitionException { try { int _type = T__97; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'istore_0' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:7: ( 'istore_0' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:70:9: 'istore_0' { match("istore_0"); @@ -1650,8 +1629,8 @@ public final void mT__98() throws RecognitionException { try { int _type = T__98; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'istore_1' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:7: ( 'istore_1' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:71:9: 'istore_1' { match("istore_1"); @@ -1673,8 +1652,8 @@ public final void mT__99() throws RecognitionException { try { int _type = T__99; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:7: ( 'istore_2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:9: 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:7: ( 'istore_2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:72:9: 'istore_2' { match("istore_2"); @@ -1696,8 +1675,8 @@ public final void mT__100() throws RecognitionException { try { int _type = T__100; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: ( 'istore_3' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:10: 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:8: ( 'istore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:73:10: 'istore_3' { match("istore_3"); @@ -1719,8 +1698,8 @@ public final void mT__101() throws RecognitionException { try { int _type = T__101; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: ( 'isub' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:10: 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:8: ( 'isub' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:74:10: 'isub' { match("isub"); @@ -1742,8 +1721,8 @@ public final void mT__102() throws RecognitionException { try { int _type = T__102; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: ( 'ixor' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:10: 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:8: ( 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:75:10: 'ixor' { match("ixor"); @@ -1765,8 +1744,8 @@ public final void mT__103() throws RecognitionException { try { int _type = T__103; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: ( 'ldc' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:10: 'ldc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:8: ( 'ldc' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:10: 'ldc' { match("ldc"); @@ -1788,8 +1767,8 @@ public final void mT__104() throws RecognitionException { try { int _type = T__104; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: ( 'new' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:10: 'new' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:8: ( 'new' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:77:10: 'new' { match("new"); @@ -1811,8 +1790,8 @@ public final void mT__105() throws RecognitionException { try { int _type = T__105; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: ( 'nop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: 'nop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:8: ( 'nop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:78:10: 'nop' { match("nop"); @@ -1834,8 +1813,8 @@ public final void mT__106() throws RecognitionException { try { int _type = T__106; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: ( 'pop' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:10: 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:8: ( 'pop' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:79:10: 'pop' { match("pop"); @@ -1857,8 +1836,8 @@ public final void mT__107() throws RecognitionException { try { int _type = T__107; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: ( 'pop2' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:10: 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:8: ( 'pop2' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:10: 'pop2' { match("pop2"); @@ -1880,8 +1859,8 @@ public final void mT__108() throws RecognitionException { try { int _type = T__108; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: ( 'putfield' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:10: 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:8: ( 'putfield' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:81:10: 'putfield' { match("putfield"); @@ -1903,8 +1882,8 @@ public final void mT__109() throws RecognitionException { try { int _type = T__109; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: ( 'putstatic' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:10: 'putstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:8: ( 'putstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:10: 'putstatic' { match("putstatic"); @@ -1926,8 +1905,8 @@ public final void mT__110() throws RecognitionException { try { int _type = T__110; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: ( 'return' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:10: 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:8: ( 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:10: 'return' { match("return"); @@ -1949,8 +1928,8 @@ public final void mT__111() throws RecognitionException { try { int _type = T__111; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:8: ( 'static' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:10: 'static' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:8: ( 'static' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:10: 'static' { match("static"); @@ -1972,8 +1951,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:249:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:249:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:8: '' { match(""); @@ -1995,8 +1974,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:251:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:251:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:7: 'I' { match('I'); @@ -2016,8 +1995,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:253:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:253:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:8: 'V' { match('V'); @@ -2037,10 +2016,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -2059,7 +2038,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:9: 'null' { match("null"); @@ -2068,7 +2047,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:255:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:18: 'NULL' { match("NULL"); @@ -2096,10 +2075,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -2108,7 +2087,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:11: '-' { match('-'); @@ -2118,7 +2097,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:257:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2168,33 +2147,118 @@ public final void mINTEIRO() throws RecognitionException { } // $ANTLR end "INTEIRO" + // $ANTLR start "REF" + public final void mREF() throws RecognitionException { + try { + int _type = REF; + int _channel = DEFAULT_TOKEN_CHANNEL; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:6: ( ( ID '/' )+ ( ID | INIT ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: ( ID '/' )+ ( ID | INIT ) + { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: ( ID '/' )+ + int cnt4=0; + loop4: + do { + int alt4=2; + alt4 = dfa4.predict(input); + switch (alt4) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:10: ID '/' + { + mID(); + + + match('/'); + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:19: ( ID | INIT ) + int alt5=2; + int LA5_0 = input.LA(1); + + if ( ((LA5_0 >= 'A' && LA5_0 <= 'Z')||(LA5_0 >= 'a' && LA5_0 <= 'z')) ) { + alt5=1; + } + else if ( (LA5_0=='<') ) { + alt5=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 5, 0, input); + + throw nvae; + + } + switch (alt5) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:21: ID + { + mID(); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:26: INIT + { + mINIT(); + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "REF" + // $ANTLR start "TIPO_REF" public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:9: ( 'L' ID ( '/' ID )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:11: 'L' ID ( '/' ID )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:9: ( 'L' ID ( '/' ID )* ';' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: 'L' ID ( '/' ID )* ';' { match('L'); mID(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:18: ( '/' ID )* - loop4: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:17: ( '/' ID )* + loop6: do { - int alt4=2; - int LA4_0 = input.LA(1); + int alt6=2; + int LA6_0 = input.LA(1); - if ( (LA4_0=='/') ) { - alt4=1; + if ( (LA6_0=='/') ) { + alt6=1; } - switch (alt4) { + switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:259:19: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:18: '/' ID { match('/'); @@ -2205,11 +2269,13 @@ public final void mTIPO_REF() throws RecognitionException { break; default : - break loop4; + break loop6; } } while (true); + match(';'); + } state.type = _type; @@ -2226,8 +2292,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2239,18 +2305,18 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:261:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - loop5: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + loop7: do { - int alt5=2; - int LA5_0 = input.LA(1); + int alt7=2; + int LA7_0 = input.LA(1); - if ( (LA5_0=='.'||(LA5_0 >= '0' && LA5_0 <= '9')||(LA5_0 >= 'A' && LA5_0 <= 'Z')||(LA5_0 >= 'a' && LA5_0 <= 'z')) ) { - alt5=1; + if ( (LA7_0=='.'||(LA7_0 >= '0' && LA7_0 <= '9')||(LA7_0 >= 'A' && LA7_0 <= 'Z')||(LA7_0 >= 'a' && LA7_0 <= 'z')) ) { + alt7=1; } - switch (alt5) { + switch (alt7) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { @@ -2268,7 +2334,7 @@ public final void mID() throws RecognitionException { break; default : - break loop5; + break loop7; } } while (true); @@ -2289,24 +2355,24 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:9: ( ( '\\n' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:11: ( '\\n' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:9: ( ( '\\n' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:11: ( '\\n' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:11: ( '\\n' )+ - int cnt6=0; - loop6: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:11: ( '\\n' )+ + int cnt8=0; + loop8: do { - int alt6=2; - int LA6_0 = input.LA(1); + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA6_0=='\n') ) { - alt6=1; + if ( (LA8_0=='\n') ) { + alt8=1; } - switch (alt6) { + switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:265:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:11: '\\n' { match('\n'); @@ -2314,12 +2380,12 @@ public final void mNEWLINE() throws RecognitionException { break; default : - if ( cnt6 >= 1 ) break loop6; + if ( cnt8 >= 1 ) break loop8; EarlyExitException eee = - new EarlyExitException(6, input); + new EarlyExitException(8, input); throw eee; } - cnt6++; + cnt8++; } while (true); @@ -2339,8 +2405,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:267:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2366,692 +2432,692 @@ public final void mWS() throws RecognitionException { // $ANTLR end "WS" public void mTokens() throws RecognitionException { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | INIT | INT | VOID | NULL | INTEIRO | TIPO_REF | ID | NEWLINE | WS ) - int alt7=89; - alt7 = dfa7.predict(input); - switch (alt7) { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | INIT | INT | VOID | NULL | INTEIRO | REF | TIPO_REF | ID | NEWLINE | WS ) + int alt9=89; + alt9 = dfa9.predict(input); + switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__32 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__33 { - mT__32(); + mT__33(); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__33 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:16: T__34 { - mT__33(); + mT__34(); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__34 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:22: T__35 { - mT__34(); + mT__35(); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__35 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:28: T__36 { - mT__35(); + mT__36(); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__36 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:34: T__37 { - mT__36(); + mT__37(); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__37 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:40: T__38 { - mT__37(); + mT__38(); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__38 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:46: T__39 { - mT__38(); + mT__39(); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__39 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:52: T__40 { - mT__39(); + mT__40(); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__40 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:58: T__41 { - mT__40(); + mT__41(); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__41 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:64: T__42 { - mT__41(); + mT__42(); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__42 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:70: T__43 { - mT__42(); + mT__43(); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__43 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:76: T__44 { - mT__43(); + mT__44(); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__44 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:82: T__45 { - mT__44(); + mT__45(); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__45 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:88: T__46 { - mT__45(); + mT__46(); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__46 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:94: T__47 { - mT__46(); + mT__47(); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__47 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:100: T__48 { - mT__47(); + mT__48(); } break; case 17 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__48 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:106: T__49 { - mT__48(); + mT__49(); } break; case 18 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__49 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:112: T__50 { - mT__49(); + mT__50(); } break; case 19 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__50 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:118: T__51 { - mT__50(); + mT__51(); } break; case 20 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__51 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:124: T__52 { - mT__51(); + mT__52(); } break; case 21 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__52 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:130: T__53 { - mT__52(); + mT__53(); } break; case 22 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__53 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:136: T__54 { - mT__53(); + mT__54(); } break; case 23 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__54 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:142: T__55 { - mT__54(); + mT__55(); } break; case 24 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__55 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:148: T__56 { - mT__55(); + mT__56(); } break; case 25 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__56 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:154: T__57 { - mT__56(); + mT__57(); } break; case 26 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__57 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:160: T__58 { - mT__57(); + mT__58(); } break; case 27 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__58 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:166: T__59 { - mT__58(); + mT__59(); } break; case 28 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__59 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:172: T__60 { - mT__59(); + mT__60(); } break; case 29 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__60 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:178: T__61 { - mT__60(); + mT__61(); } break; case 30 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__61 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:184: T__62 { - mT__61(); + mT__62(); } break; case 31 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__62 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:190: T__63 { - mT__62(); + mT__63(); } break; case 32 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__63 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:196: T__64 { - mT__63(); + mT__64(); } break; case 33 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__64 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:202: T__65 { - mT__64(); + mT__65(); } break; case 34 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__65 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:208: T__66 { - mT__65(); + mT__66(); } break; case 35 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__66 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:214: T__67 { - mT__66(); + mT__67(); } break; case 36 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__67 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:220: T__68 { - mT__67(); + mT__68(); } break; case 37 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__68 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:226: T__69 { - mT__68(); + mT__69(); } break; case 38 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__69 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:232: T__70 { - mT__69(); + mT__70(); } break; case 39 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__70 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:238: T__71 { - mT__70(); + mT__71(); } break; case 40 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__71 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:244: T__72 { - mT__71(); + mT__72(); } break; case 41 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__72 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:250: T__73 { - mT__72(); + mT__73(); } break; case 42 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__73 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:256: T__74 { - mT__73(); + mT__74(); } break; case 43 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__74 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:262: T__75 { - mT__74(); + mT__75(); } break; case 44 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__75 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:268: T__76 { - mT__75(); + mT__76(); } break; case 45 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__76 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:274: T__77 { - mT__76(); + mT__77(); } break; case 46 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__77 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:280: T__78 { - mT__77(); + mT__78(); } break; case 47 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__78 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:286: T__79 { - mT__78(); + mT__79(); } break; case 48 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__79 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:292: T__80 { - mT__79(); + mT__80(); } break; case 49 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__80 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:298: T__81 { - mT__80(); + mT__81(); } break; case 50 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__81 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:304: T__82 { - mT__81(); + mT__82(); } break; case 51 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__82 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:310: T__83 { - mT__82(); + mT__83(); } break; case 52 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__83 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:316: T__84 { - mT__83(); + mT__84(); } break; case 53 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__84 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:322: T__85 { - mT__84(); + mT__85(); } break; case 54 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__85 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:328: T__86 { - mT__85(); + mT__86(); } break; case 55 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__86 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:334: T__87 { - mT__86(); + mT__87(); } break; case 56 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__87 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:340: T__88 { - mT__87(); + mT__88(); } break; case 57 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__88 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:346: T__89 { - mT__88(); + mT__89(); } break; case 58 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__89 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:352: T__90 { - mT__89(); + mT__90(); } break; case 59 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__90 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:358: T__91 { - mT__90(); + mT__91(); } break; case 60 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__91 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:364: T__92 { - mT__91(); + mT__92(); } break; case 61 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__92 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:370: T__93 { - mT__92(); + mT__93(); } break; case 62 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__93 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:376: T__94 { - mT__93(); + mT__94(); } break; case 63 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__94 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:382: T__95 { - mT__94(); + mT__95(); } break; case 64 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__95 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:388: T__96 { - mT__95(); + mT__96(); } break; case 65 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__96 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:394: T__97 { - mT__96(); + mT__97(); } break; case 66 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__97 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:400: T__98 { - mT__97(); + mT__98(); } break; case 67 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__98 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:406: T__99 { - mT__98(); + mT__99(); } break; case 68 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__99 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:412: T__100 { - mT__99(); + mT__100(); } break; case 69 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:418: T__100 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:419: T__101 { - mT__100(); + mT__101(); } break; case 70 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:425: T__101 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:426: T__102 { - mT__101(); + mT__102(); } break; case 71 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:432: T__102 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:433: T__103 { - mT__102(); + mT__103(); } break; case 72 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:439: T__103 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:440: T__104 { - mT__103(); + mT__104(); } break; case 73 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:446: T__104 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:447: T__105 { - mT__104(); + mT__105(); } break; case 74 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:453: T__105 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:454: T__106 { - mT__105(); + mT__106(); } break; case 75 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:460: T__106 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:461: T__107 { - mT__106(); + mT__107(); } break; case 76 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:467: T__107 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:468: T__108 { - mT__107(); + mT__108(); } break; case 77 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:474: T__108 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:475: T__109 { - mT__108(); + mT__109(); } break; case 78 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:481: T__109 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:482: T__110 { - mT__109(); + mT__110(); } break; case 79 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:488: T__110 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:489: T__111 { - mT__110(); + mT__111(); } break; case 80 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:495: T__111 + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:496: INIT { - mT__111(); + mINIT(); } break; case 81 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:502: INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:501: INT { - mINIT(); + mINT(); } break; case 82 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:507: INT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:505: VOID { - mINT(); + mVOID(); } break; case 83 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:511: VOID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:510: NULL { - mVOID(); + mNULL(); } break; case 84 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:516: NULL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:515: INTEIRO { - mNULL(); + mINTEIRO(); } break; case 85 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:521: INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:523: REF { - mINTEIRO(); + mREF(); } break; case 86 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:529: TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:527: TIPO_REF { mTIPO_REF(); @@ -3059,7 +3125,7 @@ public void mTokens() throws RecognitionException { } break; case 87 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:538: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:536: ID { mID(); @@ -3067,7 +3133,7 @@ public void mTokens() throws RecognitionException { } break; case 88 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:541: NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:539: NEWLINE { mNEWLINE(); @@ -3075,7 +3141,7 @@ public void mTokens() throws RecognitionException { } break; case 89 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:549: WS + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:547: WS { mWS(); @@ -3088,244 +3154,298 @@ public void mTokens() throws RecognitionException { } - protected DFA7 dfa7 = new DFA7(this); - static final String DFA7_eotS = - "\1\uffff\1\31\4\uffff\11\25\1\uffff\1\73\1\74\1\25\1\uffff\1\25"+ - "\13\uffff\33\25\2\uffff\1\25\1\144\1\uffff\4\25\1\152\6\25\1\uffff"+ - "\11\25\1\176\4\25\1\u0084\1\u0085\1\u0086\1\25\1\u0089\4\25\1\144"+ - "\2\uffff\4\25\1\uffff\2\25\1\u0096\1\u0097\1\u0098\1\25\1\u009a"+ - "\1\uffff\1\u009c\1\u009d\1\u009e\1\u009f\1\u00a0\1\u00a1\1\u00a2"+ - "\1\25\1\u00a4\1\u00a5\1\25\1\uffff\1\u00a7\2\25\1\u00aa\1\u00ab"+ - "\3\uffff\1\u00ac\1\u00ad\1\uffff\4\25\1\u00ac\1\uffff\1\25\1\u00b6"+ - "\4\25\3\uffff\1\25\11\uffff\1\u00be\2\uffff\1\25\1\uffff\2\25\4"+ - "\uffff\4\25\2\uffff\1\25\2\uffff\1\25\1\u00cd\3\25\3\uffff\2\25"+ - "\1\u00da\2\25\1\u00dd\1\u00de\5\uffff\1\u00df\2\uffff\2\25\6\uffff"+ - "\2\25\1\u00f4\2\uffff\2\25\7\uffff\1\u00fb\1\25\13\uffff\3\25\5"+ - "\uffff\1\u0104\1\25\1\uffff\1\u0106\4\uffff\3\25\1\uffff\1\u010a"+ - "\1\uffff\3\25\1\uffff\4\25\1\u0112\1\25\1\u0114\1\uffff\1\u0115"+ - "\2\uffff"; - static final String DFA7_eofS = - "\u0116\uffff"; - static final String DFA7_minS = - "\1\11\1\51\1\uffff\1\143\2\uffff\1\143\1\165\1\145\1\141\1\144\1"+ - "\145\1\157\1\145\1\164\1\uffff\2\56\1\125\1\uffff\1\101\6\uffff"+ - "\1\156\4\uffff\2\157\1\145\1\164\1\160\2\164\1\144\1\157\1\151\1"+ - "\137\1\156\1\157\1\165\1\145\1\162\1\145\1\164\1\157\1\143\1\167"+ - "\1\160\1\154\1\160\2\164\1\141\2\uffff\1\114\1\56\1\144\1\156\1"+ - "\141\1\164\1\157\1\56\1\146\1\157\2\144\1\156\1\166\1\151\1\161"+ - "\3\145\1\143\1\141\1\154\1\147\1\157\1\56\1\155\1\157\1\142\1\162"+ - "\3\56\1\154\1\56\1\146\1\165\1\164\1\114\1\56\1\uffff\1\40\1\163"+ - "\1\144\1\165\1\162\1\uffff\1\151\1\164\3\56\1\163\1\56\1\143\7\56"+ - "\1\144\2\56\1\153\1\uffff\1\56\1\165\1\162\2\56\3\uffff\2\56\1\uffff"+ - "\1\151\1\164\1\162\1\151\1\56\1\143\1\164\1\56\1\162\2\145\1\141"+ - "\3\uffff\1\164\1\uffff\1\155\7\uffff\1\56\2\uffff\1\145\1\uffff"+ - "\1\162\1\145\4\uffff\1\145\1\141\1\156\1\143\2\uffff\1\137\1\60"+ - "\1\uffff\1\156\1\56\1\154\1\164\1\137\1\160\1\60\1\uffff\1\163\1"+ - "\156\1\56\1\154\1\164\2\56\5\uffff\1\56\1\60\1\uffff\1\144\1\151"+ - "\1\60\1\145\4\uffff\1\160\1\151\1\56\1\60\1\uffff\1\144\1\151\7"+ - "\uffff\1\56\1\143\10\uffff\2\145\1\uffff\1\145\1\141\1\162\5\uffff"+ - "\1\56\1\143\1\uffff\1\56\4\uffff\1\143\2\164\1\uffff\1\56\1\uffff"+ - "\2\151\1\165\1\uffff\1\141\1\143\1\141\1\154\1\56\1\154\1\56\1\uffff"+ + protected DFA4 dfa4 = new DFA4(this); + protected DFA9 dfa9 = new DFA9(this); + static final String DFA4_eotS = + "\1\uffff\1\2\1\uffff\1\2\1\uffff"; + static final String DFA4_eofS = + "\5\uffff"; + static final String DFA4_minS = + "\1\74\1\56\1\uffff\1\56\1\uffff"; + static final String DFA4_maxS = + "\2\172\1\uffff\1\172\1\uffff"; + static final String DFA4_acceptS = + "\2\uffff\1\2\1\uffff\1\1"; + static final String DFA4_specialS = + "\5\uffff}>"; + static final String[] DFA4_transitionS = { + "\1\2\4\uffff\32\1\6\uffff\32\1", + "\1\3\1\4\12\3\7\uffff\32\3\6\uffff\32\3", + "", + "\1\3\1\4\12\3\7\uffff\32\3\6\uffff\32\3", + "" + }; + + static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS); + static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS); + static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS); + static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS); + static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS); + static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS); + static final short[][] DFA4_transition; + + static { + int numStates = DFA4_transitionS.length; + DFA4_transition = new short[numStates][]; + for (int i=0; i"; - static final String[] DFA7_transitionS = { - "\1\27\1\26\2\uffff\1\27\22\uffff\1\27\7\uffff\1\1\1\2\3\uffff"+ - "\1\23\1\3\1\4\12\23\1\5\1\uffff\1\17\4\uffff\10\25\1\20\2\25"+ - "\1\24\1\25\1\22\7\25\1\21\4\25\6\uffff\1\6\2\25\1\7\2\25\1\10"+ - "\1\25\1\11\2\25\1\12\1\25\1\13\1\25\1\14\1\25\1\15\1\16\7\25", - "\1\30", - "", - "\1\32\1\uffff\1\33\1\34\5\uffff\1\35\1\36\5\uffff\1\37", - "", - "", - "\1\40\10\uffff\1\41\5\uffff\1\42\1\43", - "\1\44", - "\1\45\11\uffff\1\46", - "\1\47\1\uffff\1\50\1\51\1\uffff\1\52\2\uffff\1\53\2\uffff\1"+ - "\54\1\55\1\56\1\57\2\uffff\1\60\1\61\4\uffff\1\62", - "\1\63", - "\1\64\11\uffff\1\65\5\uffff\1\66", - "\1\67\5\uffff\1\70", - "\1\71", - "\1\72", - "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\75", - "", - "\32\76\6\uffff\32\76", - "", - "", - "", - "", - "", - "", - "\1\77", - "", - "", - "", - "", - "\1\100", - "\1\101", - "\1\102", - "\1\103", - "\1\104", - "\1\105", - "\1\106", - "\1\107\11\uffff\1\110", - "\1\111", - "\1\112", - "\1\113\5\uffff\1\114\1\uffff\1\115\4\uffff\1\116\1\uffff\1"+ - "\117", - "\1\120", - "\1\121", - "\1\122", - "\1\123\20\uffff\1\124", - "\1\125", - "\1\126", - "\1\127\1\130", - "\1\131", - "\1\132", - "\1\133", - "\1\134", - "\1\135", - "\1\136", - "\1\137", - "\1\140", - "\1\141", - "", - "", - "\1\142", - "\1\143\1\uffff\12\143\7\uffff\32\143\6\uffff\32\143", - "\1\145", - "\1\146", - "\1\147", - "\1\150", - "\1\151", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\153\14\uffff\1\154", - "\1\155", - "\1\156", - "\1\157", - "\1\160", - "\1\161", - "\1\162", - "\1\163", - "\1\164\16\uffff\1\165", - "\1\166\16\uffff\1\167", - "\1\170", - "\1\171", - "\1\172", - "\1\173", - "\1\174", - "\1\175", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\177\6\uffff\1\u0080", - "\1\u0081", - "\1\u0082", - "\1\u0083", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u0087", - "\1\25\1\uffff\2\25\1\u0088\7\25\7\uffff\32\25\6\uffff\32\25", - "\1\u008a\14\uffff\1\u008b", - "\1\u008c", - "\1\u008d", - "\1\u008e", - "\1\143\1\uffff\12\143\7\uffff\32\143\6\uffff\32\143", - "", - "\1\u008f", - "\1\u0090", - "\1\u0091", - "\1\u0092", - "\1\u0093", + static final String DFA9_maxS = + "\1\172\1\51\1\uffff\1\163\1\uffff\11\172\1\uffff\3\172\1\uffff\2"+ + "\172\5\uffff\1\156\4\uffff\5\172\2\uffff\27\172\2\uffff\2\172\1"+ + "\144\13\172\1\151\31\172\1\uffff\1\40\4\172\1\uffff\7\172\1\143"+ + "\13\172\1\uffff\5\172\3\uffff\2\172\1\uffff\6\172\1\155\6\172\3"+ + "\uffff\1\172\1\uffff\1\155\7\uffff\1\172\2\uffff\1\172\1\uffff\2"+ + "\172\4\uffff\5\172\2\uffff\1\172\1\63\1\uffff\5\172\1\160\1\63\1"+ + "\uffff\7\172\5\uffff\1\172\1\63\1\uffff\2\172\1\155\1\156\4\uffff"+ + "\3\172\1\63\1\uffff\2\172\7\uffff\2\172\10\uffff\2\164\1\uffff\3"+ + "\172\5\uffff\2\172\1\uffff\1\172\4\uffff\3\172\1\uffff\1\172\1\uffff"+ + "\3\172\1\uffff\7\172\1\uffff\1\172\2\uffff"; + static final String DFA9_acceptS = + "\2\uffff\1\3\1\uffff\1\13\11\uffff\1\120\3\uffff\1\124\2\uffff\1"+ + "\130\1\131\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\1\12\5\uffff\1\127"+ + "\1\125\27\uffff\1\121\1\122\50\uffff\1\126\5\uffff\1\30\23\uffff"+ + "\1\75\5\uffff\1\107\1\110\1\111\2\uffff\1\112\15\uffff\1\33\1\34"+ + "\1\35\1\uffff\1\45\1\uffff\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1"+ + "\uffff\1\70\1\71\1\uffff\1\76\2\uffff\1\105\1\106\1\123\1\113\5"+ + "\uffff\1\5\1\6\2\uffff\1\15\7\uffff\1\63\7\uffff\1\14\1\16\1\17"+ + "\1\20\1\21\2\uffff\1\23\4\uffff\1\64\1\65\1\66\1\67\4\uffff\1\100"+ + "\2\uffff\1\116\1\117\1\22\1\24\1\25\1\26\1\27\2\uffff\1\36\1\37"+ + "\1\40\1\41\1\42\1\43\1\44\1\46\2\uffff\1\53\3\uffff\1\77\1\101\1"+ + "\102\1\103\1\104\2\uffff\1\31\1\uffff\1\47\1\50\1\51\1\52\3\uffff"+ + "\1\114\1\uffff\1\32\3\uffff\1\115\7\uffff\1\73\1\uffff\1\72\1\74"; + static final String DFA9_specialS = + "\u011b\uffff}>"; + static final String[] DFA9_transitionS = { + "\1\26\1\25\2\uffff\1\26\22\uffff\1\26\7\uffff\1\1\1\2\3\uffff"+ + "\1\22\1\3\1\uffff\12\22\1\4\1\uffff\1\16\4\uffff\10\24\1\17"+ + "\2\24\1\23\1\24\1\21\7\24\1\20\4\24\6\uffff\1\5\2\24\1\6\2\24"+ + "\1\7\1\24\1\10\2\24\1\11\1\24\1\12\1\24\1\13\1\24\1\14\1\15"+ + "\7\24", + "\1\27", + "", + "\1\31\1\uffff\1\32\1\33\5\uffff\1\34\1\35\5\uffff\1\36", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\37\10\43\1\40"+ + "\5\43\1\41\1\42\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\46\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\47\11\43\1\50"+ + "\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\51\1\43\1\52\1\53"+ + "\1\43\1\54\2\43\1\55\2\43\1\56\1\57\1\60\1\61\2\43\1\62\1\63"+ + "\4\43\1\64\2\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\65\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\66\11\43\1\67"+ + "\5\43\1\70\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\71\5\43\1\72"+ + "\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\73\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\74\6\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\24\43\1\77\5\43\6\uffff\32\43", + "", + "\1\43\1\45\12\43\7\uffff\32\100\6\uffff\32\100", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "", "", - "\1\u0094", - "\1\u0095", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u0099", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u009b", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00a3", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00a6", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00a8", - "\1\u00a9", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", "", + "\1\101", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", "", - "\1\u00ae", - "\1\u00af", - "\1\u00b0", - "\1\u00b1", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00b2\11\uffff\1\u00b3", - "\1\u00b4", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00b5\1\uffff\32"+ - "\25", - "\1\u00b7", - "\1\u00b8", - "\1\u00b9", - "\1\u00ba", "", "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\102\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\103\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\104\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\105\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\106\12\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\107\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\110\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\111\11\43\1\112"+ + "\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\113\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\114\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\115\1\uffff\4\43\1"+ + "\116\1\43\1\117\4\43\1\120\1\43\1\121\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\122\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\123\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\124\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\125\20\43\1\126"+ + "\4\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\127\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\130\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\131\1\132\5"+ + "\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\133\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\134\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\26\43\1\135\3\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\136\12\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\137\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\140\12\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\141\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\142\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\143\31\43", + "", + "", + "\1\43\1\45\12\43\7\uffff\13\43\1\144\16\43\6\uffff\32\43", + "\1\146\1\145\12\146\1\uffff\1\147\5\uffff\32\146\6\uffff\32"+ + "\146", + "\1\150", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\151\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\152\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\153\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\154\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\5\43\1\156\14\43\1\157"+ + "\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\160\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\161\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\162\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\163\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\25\43\1\164\4\43", + "\1\165", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\20\43\1\166\11\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\167\16\43\1\170"+ + "\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\171\16\43\1\172"+ + "\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\173\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\174\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\175\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\176\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\6\43\1\177\23\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\u0080\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\14\43\1\u0082\6\43\1"+ + "\u0083\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\u0084\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\43\1\u0085\30\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0086\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u008a\16\43", + "\1\43\1\45\2\43\1\u008b\7\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\5\43\1\u008d\14\43\1"+ + "\u008e\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u008f\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u0090\6\43", + "\1\43\1\45\12\43\7\uffff\13\43\1\u0091\16\43\6\uffff\32\43", + "\1\45\4\uffff\32\u0092\6\uffff\32\u0092", + "\1\146\1\145\12\146\1\uffff\1\147\5\uffff\32\146\6\uffff\32"+ + "\146", "", - "\1\u00bb", + "\1\u0093", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u0094\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u0095\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0096\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0097\10\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0098\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u0099\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u009d\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\u009f", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00a7\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\12\43\1\u00aa\17\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u00ac\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00ad\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "", + "", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00b2\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00b3\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00b4\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00b5\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\u00b6\1\145\12\u00b6\1\uffff\1\147\5\uffff\32\u00b6\6\uffff"+ + "\32\u00b6", + "\1\u00b7\11\uffff\1\u00b8", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00b9\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00ba\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00bc\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00bd\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00be\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u00bf\31\43", + "", + "", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00c0\6\43", "", - "\1\u00bc", + "\1\u00c1", "", "", "", @@ -3333,68 +3453,69 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00bd\1\uffff\32"+ - "\25", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00c2\1\uffff\32\43", "", "", - "\1\u00bf", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c4\25\43", "", - "\1\u00c0", - "\1\u00c1", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00c5\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c6\25\43", "", "", "", "", - "\1\u00c2", - "\1\u00c3", - "\1\u00c4", - "\1\u00c5", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c7\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u00c8\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00c9\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u00ca\27\43", + "\1\u00b6\1\145\12\u00b6\1\uffff\1\147\5\uffff\32\u00b6\6\uffff"+ + "\32\u00b6", "", "", - "\1\u00c6", - "\1\u00c7\1\u00c8\1\u00c9\1\u00ca", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00cb\1\uffff\32\43", + "\1\u00cc\1\u00cd\1\u00ce\1\u00cf", "", - "\1\u00cb", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00cc\1\uffff\32"+ - "\25", - "\1\u00ce", - "\1\u00cf", - "\1\u00d0", - "\1\u00d1", - "\1\u00d2\1\u00d3\1\u00d4\1\u00d5", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00d0\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00d1\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u00d3\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00d4\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00d5\1\uffff\32\43", + "\1\u00d6", + "\1\u00d7\1\u00d8\1\u00d9\1\u00da", "", - "\1\u00d6\2\uffff\1\u00d7", - "\1\u00d8", - "\1\25\1\uffff\12\25\7\uffff\32\25\4\uffff\1\u00d9\1\uffff\32"+ - "\25", - "\1\u00db", - "\1\u00dc", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u00db\2\43\1"+ + "\u00dc\4\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00dd\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00de\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u00e0\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00e1\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "", "", "", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00e0\1\u00e1\1\u00e2\1\u00e3", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\u00e5\1\u00e6\1\u00e7\1\u00e8", "", - "\1\u00e4", - "\1\u00e5", - "\1\u00e6\1\u00e7\1\u00e8\1\u00e9\1\u00ea\1\u00eb\67\uffff\1"+ - "\u00ec", - "\1\u00ed\1\uffff\1\u00ee\4\uffff\1\u00ef\1\uffff\1\u00f0", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00e9\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00ea\21\43", + "\1\u00eb\1\u00ec\1\u00ed\1\u00ee\1\u00ef\1\u00f0\67\uffff\1"+ + "\u00f1", + "\1\u00f2\1\uffff\1\u00f3\4\uffff\1\u00f4\1\uffff\1\u00f5", "", "", "", "", - "\1\u00f1\3\uffff\1\u00f2", - "\1\u00f3", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00f5\1\u00f6\1\u00f7\1\u00f8", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\u00f6\3\43\1"+ + "\u00f7\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00f8\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\u00fa\1\u00fb\1\u00fc\1\u00fd", "", - "\1\u00f9", - "\1\u00fa", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00fe\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00ff\21\43", "", "", "", @@ -3402,8 +3523,8 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u00fc", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u0101\27\43", "", "", "", @@ -3412,79 +3533,79 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\u00fd\16\uffff\1\u00fe", - "\1\u00ff\16\uffff\1\u0100", + "\1\u0102\16\uffff\1\u0103", + "\1\u0104\16\uffff\1\u0105", "", - "\1\u0101", - "\1\u0102", - "\1\u0103", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u0106\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0107\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0108\10\43", "", "", "", "", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u0105", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u010a\27\43", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "", "", "", - "\1\u0107", - "\1\u0108", - "\1\u0109", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u010c\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u010d\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u010e\6\43", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", - "\1\u010b", - "\1\u010c", - "\1\u010d", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0110\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0111\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0112\5\43", "", - "\1\u010e", - "\1\u010f", - "\1\u0110", - "\1\u0111", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", - "\1\u0113", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0113\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u0114\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0115\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u0116\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u0118\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", - "\1\25\1\uffff\12\25\7\uffff\32\25\6\uffff\32\25", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "" }; - static final short[] DFA7_eot = DFA.unpackEncodedString(DFA7_eotS); - static final short[] DFA7_eof = DFA.unpackEncodedString(DFA7_eofS); - static final char[] DFA7_min = DFA.unpackEncodedStringToUnsignedChars(DFA7_minS); - static final char[] DFA7_max = DFA.unpackEncodedStringToUnsignedChars(DFA7_maxS); - static final short[] DFA7_accept = DFA.unpackEncodedString(DFA7_acceptS); - static final short[] DFA7_special = DFA.unpackEncodedString(DFA7_specialS); - static final short[][] DFA7_transition; + static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS); + static final short[] DFA9_eof = DFA.unpackEncodedString(DFA9_eofS); + static final char[] DFA9_min = DFA.unpackEncodedStringToUnsignedChars(DFA9_minS); + static final char[] DFA9_max = DFA.unpackEncodedStringToUnsignedChars(DFA9_maxS); + static final short[] DFA9_accept = DFA.unpackEncodedString(DFA9_acceptS); + static final short[] DFA9_special = DFA.unpackEncodedString(DFA9_specialS); + static final short[][] DFA9_transition; static { - int numStates = DFA7_transitionS.length; - DFA7_transition = new short[numStates][]; + int numStates = DFA9_transitionS.length; + DFA9_transition = new short[numStates][]; for (int i=0; i", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "REF", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__32=32; public static final int T__33=33; public static final int T__34=34; public static final int T__35=35; @@ -125,11 +124,12 @@ public abstract class AssemblerParser extends Parser { public static final int NULL=24; public static final int PARAMS=25; public static final int PILHA=26; - public static final int RETURN=27; - public static final int STORE=28; - public static final int TIPO_REF=29; - public static final int VOID=30; - public static final int WS=31; + public static final int REF=27; + public static final int RETURN=28; + public static final int STORE=29; + public static final int TIPO_REF=30; + public static final int VOID=31; + public static final int WS=32; // delegates public Parser[] getDelegates() { @@ -198,7 +198,7 @@ public final AssemblerParser.programa_return programa() throws RecognitionExcept int alt1=2; int LA1_0 = input.LA(1); - if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==35||(LA1_0 >= 44 && LA1_0 <= 110)) ) { + if ( (LA1_0==ID||LA1_0==NEWLINE||LA1_0==36||(LA1_0 >= 44 && LA1_0 <= 110)) ) { alt1=1; } @@ -278,7 +278,7 @@ public final AssemblerParser.instrucao_return instrucao() throws RecognitionExce if ( (LA3_0==ID||LA3_0==NEWLINE||(LA3_0 >= 44 && LA3_0 <= 110)) ) { alt3=1; } - else if ( (LA3_0==35) ) { + else if ( (LA3_0==36) ) { alt3=2; } else { @@ -321,14 +321,14 @@ else if ( (LA3_0==35) ) { int alt2=2; int LA2_0 = input.LA(1); - if ( (LA2_0==36) ) { + if ( (LA2_0==37) ) { alt2=1; } switch (alt2) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:55:30: '.end class' { - string_literal4=(Token)match(input,36,FOLLOW_36_in_instrucao197); + string_literal4=(Token)match(input,37,FOLLOW_37_in_instrucao197); string_literal4_tree = (BytecodesAST)adaptor.create(string_literal4) ; @@ -928,15 +928,15 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec BytecodesAST NEWLINE27_tree=null; RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_36=new RewriteRuleTokenStream(adaptor,"token 36"); RewriteRuleSubtreeStream stream_membroClasse=new RewriteRuleSubtreeStream(adaptor,"rule membroClasse"); RewriteRuleSubtreeStream stream_superClasse=new RewriteRuleSubtreeStream(adaptor,"rule superClasse"); try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:5: ( '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ -> ^( '.class' ID ( superClasse )? ^( MEMBRO_CLASSE ( membroClasse )+ ) ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:76:7: '.class' ID NEWLINE ( superClasse NEWLINE )? ( membroClasse NEWLINE )+ { - string_literal21=(Token)match(input,35,FOLLOW_35_in_definicaoClasse486); - stream_35.add(string_literal21); + string_literal21=(Token)match(input,36,FOLLOW_36_in_definicaoClasse486); + stream_36.add(string_literal21); ID22=(Token)match(input,ID,FOLLOW_ID_in_definicaoClasse488); @@ -951,7 +951,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec int alt6=2; int LA6_0 = input.LA(1); - if ( (LA6_0==41) ) { + if ( (LA6_0==42) ) { alt6=1; } switch (alt6) { @@ -982,7 +982,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec int alt7=2; int LA7_0 = input.LA(1); - if ( (LA7_0==38||LA7_0==40) ) { + if ( (LA7_0==39||LA7_0==41) ) { alt7=1; } @@ -1016,7 +1016,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: 35, ID, membroClasse, superClasse + // elements: superClasse, ID, membroClasse, 36 // token labels: // rule labels: retval // token list labels: @@ -1032,7 +1032,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( - stream_35.nextNode() + stream_36.nextNode() , root_1); adaptor.addChild(root_1, @@ -1104,7 +1104,7 @@ public static class superClasse_return extends ParserRuleReturnScope { // $ANTLR start "superClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:1: superClasse : '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:1: superClasse : '.super' (b= ID |b= REF ) -> ^( EXTENDS $b) ; public final AssemblerParser.superClasse_return superClasse() throws RecognitionException { AssemblerParser.superClasse_return retval = new AssemblerParser.superClasse_return(); retval.start = input.LT(1); @@ -1112,49 +1112,85 @@ public final AssemblerParser.superClasse_return superClasse() throws Recognition BytecodesAST root_0 = null; + Token b=null; Token string_literal28=null; - Token TIPO_REF29=null; + BytecodesAST b_tree=null; BytecodesAST string_literal28_tree=null; - BytecodesAST TIPO_REF29_tree=null; - RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); - RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); + RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); + RewriteRuleTokenStream stream_REF=new RewriteRuleTokenStream(adaptor,"token REF"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:13: ( '.super' TIPO_REF -> ^( EXTENDS TIPO_REF ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:15: '.super' TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:13: ( '.super' (b= ID |b= REF ) -> ^( EXTENDS $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:15: '.super' (b= ID |b= REF ) { - string_literal28=(Token)match(input,41,FOLLOW_41_in_superClasse563); - stream_41.add(string_literal28); + string_literal28=(Token)match(input,42,FOLLOW_42_in_superClasse563); + stream_42.add(string_literal28); + + + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:24: (b= ID |b= REF ) + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==ID) ) { + alt8=1; + } + else if ( (LA8_0==REF) ) { + alt8=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); + + throw nvae; + } + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:25: b= ID + { + b=(Token)match(input,ID,FOLLOW_ID_in_superClasse570); + stream_ID.add(b); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:34: b= REF + { + b=(Token)match(input,REF,FOLLOW_REF_in_superClasse578); + stream_REF.add(b); + + + } + break; - TIPO_REF29=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_superClasse565); - stream_TIPO_REF.add(TIPO_REF29); + } // AST REWRITE - // elements: TIPO_REF - // token labels: + // elements: b + // token labels: b // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; + RewriteRuleTokenStream stream_b=new RewriteRuleTokenStream(adaptor,"token b",b); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 80:33: -> ^( EXTENDS TIPO_REF ) + // 80:42: -> ^( EXTENDS $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:36: ^( EXTENDS TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:80:45: ^( EXTENDS $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(EXTENDS, "EXTENDS") , root_1); - adaptor.addChild(root_1, - stream_TIPO_REF.nextNode() - ); + adaptor.addChild(root_1, stream_b.nextNode()); adaptor.addChild(root_0, root_1); } @@ -1195,7 +1231,7 @@ public static class membroClasse_return extends ParserRuleReturnScope { // $ANTLR start "membroClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:1: membroClasse : ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:82:1: membroClasse : ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT $ret parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ); public final AssemblerParser.membroClasse_return membroClasse() throws RecognitionException { AssemblerParser.membroClasse_return retval = new AssemblerParser.membroClasse_return(); retval.start = input.LT(1); @@ -1203,99 +1239,96 @@ public final AssemblerParser.membroClasse_return membroClasse() throws Recogniti BytecodesAST root_0 = null; + Token string_literal29=null; Token string_literal30=null; - Token string_literal31=null; - Token ID32=null; - Token string_literal34=null; - Token INIT35=null; - Token char_literal37=null; - Token char_literal39=null; - Token VOID40=null; + Token ID31=null; + Token string_literal33=null; + Token INIT34=null; + Token char_literal36=null; + Token char_literal38=null; + Token NEWLINE39=null; Token NEWLINE41=null; - Token NEWLINE43=null; + Token string_literal43=null; + Token string_literal44=null; Token string_literal45=null; - Token string_literal46=null; - Token string_literal47=null; - Token ID48=null; + Token ID46=null; + Token char_literal48=null; Token char_literal50=null; - Token char_literal52=null; + Token NEWLINE51=null; Token NEWLINE53=null; - Token NEWLINE55=null; - Token string_literal57=null; + Token string_literal55=null; AssemblerParser.tipo_return ret =null; - AssemblerParser.tipo_return tipo33 =null; + AssemblerParser.tipo_return tipo32 =null; - AssemblerParser.parametros_return parametros36 =null; + AssemblerParser.parametros_return parametros35 =null; - AssemblerParser.parametros_return parametros38 =null; + AssemblerParser.parametros_return parametros37 =null; - AssemblerParser.limite_return limite42 =null; + AssemblerParser.limite_return limite40 =null; - AssemblerParser.operacao_return operacao44 =null; + AssemblerParser.operacao_return operacao42 =null; - AssemblerParser.parametros_return parametros49 =null; + AssemblerParser.parametros_return parametros47 =null; - AssemblerParser.parametros_return parametros51 =null; + AssemblerParser.parametros_return parametros49 =null; - AssemblerParser.limite_return limite54 =null; + AssemblerParser.limite_return limite52 =null; - AssemblerParser.operacao_return operacao56 =null; + AssemblerParser.operacao_return operacao54 =null; + BytecodesAST string_literal29_tree=null; BytecodesAST string_literal30_tree=null; - BytecodesAST string_literal31_tree=null; - BytecodesAST ID32_tree=null; - BytecodesAST string_literal34_tree=null; - BytecodesAST INIT35_tree=null; - BytecodesAST char_literal37_tree=null; - BytecodesAST char_literal39_tree=null; - BytecodesAST VOID40_tree=null; + BytecodesAST ID31_tree=null; + BytecodesAST string_literal33_tree=null; + BytecodesAST INIT34_tree=null; + BytecodesAST char_literal36_tree=null; + BytecodesAST char_literal38_tree=null; + BytecodesAST NEWLINE39_tree=null; BytecodesAST NEWLINE41_tree=null; - BytecodesAST NEWLINE43_tree=null; + BytecodesAST string_literal43_tree=null; + BytecodesAST string_literal44_tree=null; BytecodesAST string_literal45_tree=null; - BytecodesAST string_literal46_tree=null; - BytecodesAST string_literal47_tree=null; - BytecodesAST ID48_tree=null; + BytecodesAST ID46_tree=null; + BytecodesAST char_literal48_tree=null; BytecodesAST char_literal50_tree=null; - BytecodesAST char_literal52_tree=null; + BytecodesAST NEWLINE51_tree=null; BytecodesAST NEWLINE53_tree=null; - BytecodesAST NEWLINE55_tree=null; - BytecodesAST string_literal57_tree=null; - RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID"); - RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); + BytecodesAST string_literal55_tree=null; + RewriteRuleTokenStream stream_41=new RewriteRuleTokenStream(adaptor,"token 41"); RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE"); - RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); RewriteRuleTokenStream stream_111=new RewriteRuleTokenStream(adaptor,"token 111"); + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); - RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); - RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38"); RewriteRuleSubtreeStream stream_limite=new RewriteRuleSubtreeStream(adaptor,"rule limite"); RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_operacao=new RewriteRuleSubtreeStream(adaptor,"rule operacao"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:5: ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) - int alt16=3; - int LA16_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:5: ( '.field' ( 'static' )? ID tipo -> ^( FIELD_DECL ID tipo ) | '.method' INIT ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( CONSTR_DECL INIT $ret parametros ( limite )? ^( BODY ( operacao )* ) ) | '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' -> ^( METHOD_DECL ID $ret parametros ( limite )? ^( BODY ( operacao )* ) ) ) + int alt17=3; + int LA17_0 = input.LA(1); - if ( (LA16_0==38) ) { - alt16=1; + if ( (LA17_0==39) ) { + alt17=1; } - else if ( (LA16_0==40) ) { - int LA16_2 = input.LA(2); + else if ( (LA17_0==41) ) { + int LA17_2 = input.LA(2); - if ( (LA16_2==INIT) ) { - alt16=2; + if ( (LA17_2==INIT) ) { + alt17=2; } - else if ( (LA16_2==ID||LA16_2==111) ) { - alt16=3; + else if ( (LA17_2==ID||LA17_2==111) ) { + alt17=3; } else { NoViableAltException nvae = - new NoViableAltException("", 16, 2, input); + new NoViableAltException("", 17, 2, input); throw nvae; @@ -1303,32 +1336,32 @@ else if ( (LA16_2==ID||LA16_2==111) ) { } else { NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + new NoViableAltException("", 17, 0, input); throw nvae; } - switch (alt16) { + switch (alt17) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:7: '.field' ( 'static' )? ID tipo { - string_literal30=(Token)match(input,38,FOLLOW_38_in_membroClasse586); - stream_38.add(string_literal30); + string_literal29=(Token)match(input,39,FOLLOW_39_in_membroClasse600); + stream_39.add(string_literal29); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:16: ( 'static' )? - int alt8=2; - int LA8_0 = input.LA(1); + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA8_0==111) ) { - alt8=1; + if ( (LA9_0==111) ) { + alt9=1; } - switch (alt8) { + switch (alt9) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:83:16: 'static' { - string_literal31=(Token)match(input,111,FOLLOW_111_in_membroClasse588); - stream_111.add(string_literal31); + string_literal30=(Token)match(input,111,FOLLOW_111_in_membroClasse602); + stream_111.add(string_literal30); } @@ -1337,16 +1370,16 @@ else if ( (LA16_2==ID||LA16_2==111) ) { } - ID32=(Token)match(input,ID,FOLLOW_ID_in_membroClasse591); - stream_ID.add(ID32); + ID31=(Token)match(input,ID,FOLLOW_ID_in_membroClasse605); + stream_ID.add(ID31); - pushFollow(FOLLOW_tipo_in_membroClasse593); - tipo33=tipo(); + pushFollow(FOLLOW_tipo_in_membroClasse607); + tipo32=tipo(); state._fsp--; - stream_tipo.add(tipo33.getTree()); + stream_tipo.add(tipo32.getTree()); // AST REWRITE // elements: tipo, ID @@ -1385,62 +1418,62 @@ else if ( (LA16_2==ID||LA16_2==111) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:7: '.method' INIT ( parametros | '(' parametros ')' ) VOID NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:7: '.method' INIT ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal34=(Token)match(input,40,FOLLOW_40_in_membroClasse611); - stream_40.add(string_literal34); + string_literal33=(Token)match(input,41,FOLLOW_41_in_membroClasse625); + stream_41.add(string_literal33); - INIT35=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse613); - stream_INIT.add(INIT35); + INIT34=(Token)match(input,INIT,FOLLOW_INIT_in_membroClasse627); + stream_INIT.add(INIT34); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:22: ( parametros | '(' parametros ')' ) - int alt9=2; - int LA9_0 = input.LA(1); + int alt10=2; + int LA10_0 = input.LA(1); - if ( (LA9_0==ID||LA9_0==TIPO_REF||LA9_0==33) ) { - alt9=1; + if ( (LA10_0==ID||LA10_0==TIPO_REF||LA10_0==34) ) { + alt10=1; } - else if ( (LA9_0==32) ) { - alt9=2; + else if ( (LA10_0==33) ) { + alt10=2; } else { NoViableAltException nvae = - new NoViableAltException("", 9, 0, input); + new NoViableAltException("", 10, 0, input); throw nvae; } - switch (alt9) { + switch (alt10) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:23: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse616); - parametros36=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse630); + parametros35=parametros(); state._fsp--; - stream_parametros.add(parametros36.getTree()); + stream_parametros.add(parametros35.getTree()); } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:36: '(' parametros ')' { - char_literal37=(Token)match(input,32,FOLLOW_32_in_membroClasse620); - stream_32.add(char_literal37); + char_literal36=(Token)match(input,33,FOLLOW_33_in_membroClasse634); + stream_33.add(char_literal36); - pushFollow(FOLLOW_parametros_in_membroClasse622); - parametros38=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse636); + parametros37=parametros(); state._fsp--; - stream_parametros.add(parametros38.getTree()); + stream_parametros.add(parametros37.getTree()); - char_literal39=(Token)match(input,34,FOLLOW_34_in_membroClasse624); - stream_34.add(char_literal39); + char_literal38=(Token)match(input,35,FOLLOW_35_in_membroClasse638); + stream_35.add(char_literal38); } @@ -1449,34 +1482,37 @@ else if ( (LA9_0==32) ) { } - VOID40=(Token)match(input,VOID,FOLLOW_VOID_in_membroClasse627); - stream_VOID.add(VOID40); + pushFollow(FOLLOW_tipo_in_membroClasse645); + ret=tipo(); + state._fsp--; - NEWLINE41=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse629); - stream_NEWLINE.add(NEWLINE41); + stream_tipo.add(ret.getTree()); + NEWLINE39=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse647); + stream_NEWLINE.add(NEWLINE39); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:69: ( limite NEWLINE )? - int alt10=2; - int LA10_0 = input.LA(1); - if ( (LA10_0==39) ) { - alt10=1; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:75: ( limite NEWLINE )? + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==40) ) { + alt11=1; } - switch (alt10) { + switch (alt11) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:70: limite NEWLINE + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:76: limite NEWLINE { - pushFollow(FOLLOW_limite_in_membroClasse632); - limite42=limite(); + pushFollow(FOLLOW_limite_in_membroClasse650); + limite40=limite(); state._fsp--; - stream_limite.add(limite42.getTree()); + stream_limite.add(limite40.getTree()); - NEWLINE43=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse634); - stream_NEWLINE.add(NEWLINE43); + NEWLINE41=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse652); + stream_NEWLINE.add(NEWLINE41); } @@ -1485,55 +1521,56 @@ else if ( (LA9_0==32) ) { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:87: ( operacao )* - loop11: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:93: ( operacao )* + loop12: do { - int alt11=2; - int LA11_0 = input.LA(1); + int alt12=2; + int LA12_0 = input.LA(1); - if ( (LA11_0==ID||LA11_0==NEWLINE||(LA11_0 >= 44 && LA11_0 <= 110)) ) { - alt11=1; + if ( (LA12_0==ID||LA12_0==NEWLINE||(LA12_0 >= 44 && LA12_0 <= 110)) ) { + alt12=1; } - switch (alt11) { + switch (alt12) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:87: operacao + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:84:93: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse638); - operacao44=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse656); + operacao42=operacao(); state._fsp--; - stream_operacao.add(operacao44.getTree()); + stream_operacao.add(operacao42.getTree()); } break; default : - break loop11; + break loop12; } } while (true); - string_literal45=(Token)match(input,37,FOLLOW_37_in_membroClasse641); - stream_37.add(string_literal45); + string_literal43=(Token)match(input,38,FOLLOW_38_in_membroClasse659); + stream_38.add(string_literal43); // AST REWRITE - // elements: limite, parametros, INIT, operacao + // elements: operacao, limite, parametros, ret, INIT // token labels: - // rule labels: retval + // rule labels: ret, retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; + RewriteRuleSubtreeStream stream_ret=new RewriteRuleSubtreeStream(adaptor,"rule ret",ret!=null?ret.tree:null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 85:2: -> ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) + // 85:2: -> ^( CONSTR_DECL INIT $ret parametros ( limite )? ^( BODY ( operacao )* ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:5: ^( CONSTR_DECL INIT parametros ( limite )? ^( BODY ( operacao )* ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:5: ^( CONSTR_DECL INIT $ret parametros ( limite )? ^( BODY ( operacao )* ) ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -1544,23 +1581,25 @@ else if ( (LA9_0==32) ) { stream_INIT.nextNode() ); + adaptor.addChild(root_1, stream_ret.nextTree()); + adaptor.addChild(root_1, stream_parametros.nextTree()); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:35: ( limite )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:40: ( limite )? if ( stream_limite.hasNext() ) { adaptor.addChild(root_1, stream_limite.nextTree()); } stream_limite.reset(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:43: ^( BODY ( operacao )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:48: ^( BODY ( operacao )* ) { BytecodesAST root_2 = (BytecodesAST)adaptor.nil(); root_2 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(BODY, "BODY") , root_2); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:50: ( operacao )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:85:55: ( operacao )* while ( stream_operacao.hasNext() ) { adaptor.addChild(root_2, stream_operacao.nextTree()); @@ -1583,23 +1622,23 @@ else if ( (LA9_0==32) ) { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:7: '.method' ( 'static' )? ID ( parametros | '(' parametros ')' ) ret= tipo NEWLINE ( limite NEWLINE )? ( operacao )* '.end method' { - string_literal46=(Token)match(input,40,FOLLOW_40_in_membroClasse670); - stream_40.add(string_literal46); + string_literal44=(Token)match(input,41,FOLLOW_41_in_membroClasse691); + stream_41.add(string_literal44); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:17: ( 'static' )? - int alt12=2; - int LA12_0 = input.LA(1); + int alt13=2; + int LA13_0 = input.LA(1); - if ( (LA12_0==111) ) { - alt12=1; + if ( (LA13_0==111) ) { + alt13=1; } - switch (alt12) { + switch (alt13) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:17: 'static' { - string_literal47=(Token)match(input,111,FOLLOW_111_in_membroClasse672); - stream_111.add(string_literal47); + string_literal45=(Token)match(input,111,FOLLOW_111_in_membroClasse693); + stream_111.add(string_literal45); } @@ -1608,56 +1647,56 @@ else if ( (LA9_0==32) ) { } - ID48=(Token)match(input,ID,FOLLOW_ID_in_membroClasse675); - stream_ID.add(ID48); + ID46=(Token)match(input,ID,FOLLOW_ID_in_membroClasse696); + stream_ID.add(ID46); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:30: ( parametros | '(' parametros ')' ) - int alt13=2; - int LA13_0 = input.LA(1); + int alt14=2; + int LA14_0 = input.LA(1); - if ( (LA13_0==ID||LA13_0==TIPO_REF||LA13_0==33) ) { - alt13=1; + if ( (LA14_0==ID||LA14_0==TIPO_REF||LA14_0==34) ) { + alt14=1; } - else if ( (LA13_0==32) ) { - alt13=2; + else if ( (LA14_0==33) ) { + alt14=2; } else { NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); + new NoViableAltException("", 14, 0, input); throw nvae; } - switch (alt13) { + switch (alt14) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:31: parametros { - pushFollow(FOLLOW_parametros_in_membroClasse678); - parametros49=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse699); + parametros47=parametros(); state._fsp--; - stream_parametros.add(parametros49.getTree()); + stream_parametros.add(parametros47.getTree()); } break; case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:44: '(' parametros ')' { - char_literal50=(Token)match(input,32,FOLLOW_32_in_membroClasse682); - stream_32.add(char_literal50); + char_literal48=(Token)match(input,33,FOLLOW_33_in_membroClasse703); + stream_33.add(char_literal48); - pushFollow(FOLLOW_parametros_in_membroClasse684); - parametros51=parametros(); + pushFollow(FOLLOW_parametros_in_membroClasse705); + parametros49=parametros(); state._fsp--; - stream_parametros.add(parametros51.getTree()); + stream_parametros.add(parametros49.getTree()); - char_literal52=(Token)match(input,34,FOLLOW_34_in_membroClasse686); - stream_34.add(char_literal52); + char_literal50=(Token)match(input,35,FOLLOW_35_in_membroClasse707); + stream_35.add(char_literal50); } @@ -1666,37 +1705,37 @@ else if ( (LA13_0==32) ) { } - pushFollow(FOLLOW_tipo_in_membroClasse693); + pushFollow(FOLLOW_tipo_in_membroClasse714); ret=tipo(); state._fsp--; stream_tipo.add(ret.getTree()); - NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse695); - stream_NEWLINE.add(NEWLINE53); + NEWLINE51=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse716); + stream_NEWLINE.add(NEWLINE51); // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:83: ( limite NEWLINE )? - int alt14=2; - int LA14_0 = input.LA(1); + int alt15=2; + int LA15_0 = input.LA(1); - if ( (LA14_0==39) ) { - alt14=1; + if ( (LA15_0==40) ) { + alt15=1; } - switch (alt14) { + switch (alt15) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:84: limite NEWLINE { - pushFollow(FOLLOW_limite_in_membroClasse698); - limite54=limite(); + pushFollow(FOLLOW_limite_in_membroClasse719); + limite52=limite(); state._fsp--; - stream_limite.add(limite54.getTree()); + stream_limite.add(limite52.getTree()); - NEWLINE55=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse700); - stream_NEWLINE.add(NEWLINE55); + NEWLINE53=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_membroClasse721); + stream_NEWLINE.add(NEWLINE53); } @@ -1706,42 +1745,42 @@ else if ( (LA13_0==32) ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:101: ( operacao )* - loop15: + loop16: do { - int alt15=2; - int LA15_0 = input.LA(1); + int alt16=2; + int LA16_0 = input.LA(1); - if ( (LA15_0==ID||LA15_0==NEWLINE||(LA15_0 >= 44 && LA15_0 <= 110)) ) { - alt15=1; + if ( (LA16_0==ID||LA16_0==NEWLINE||(LA16_0 >= 44 && LA16_0 <= 110)) ) { + alt16=1; } - switch (alt15) { + switch (alt16) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:86:101: operacao { - pushFollow(FOLLOW_operacao_in_membroClasse704); - operacao56=operacao(); + pushFollow(FOLLOW_operacao_in_membroClasse725); + operacao54=operacao(); state._fsp--; - stream_operacao.add(operacao56.getTree()); + stream_operacao.add(operacao54.getTree()); } break; default : - break loop15; + break loop16; } } while (true); - string_literal57=(Token)match(input,37,FOLLOW_37_in_membroClasse707); - stream_37.add(string_literal57); + string_literal55=(Token)match(input,38,FOLLOW_38_in_membroClasse728); + stream_38.add(string_literal55); // AST REWRITE - // elements: parametros, operacao, limite, ret, ID + // elements: limite, operacao, parametros, ret, ID // token labels: // rule labels: ret, retval // token list labels: @@ -1842,24 +1881,24 @@ public final AssemblerParser.limite_return limite() throws RecognitionException BytecodesAST root_0 = null; - Token string_literal58=null; - Token INTEIRO59=null; + Token string_literal56=null; + Token INTEIRO57=null; - BytecodesAST string_literal58_tree=null; - BytecodesAST INTEIRO59_tree=null; + BytecodesAST string_literal56_tree=null; + BytecodesAST INTEIRO57_tree=null; + RewriteRuleTokenStream stream_40=new RewriteRuleTokenStream(adaptor,"token 40"); RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); - RewriteRuleTokenStream stream_39=new RewriteRuleTokenStream(adaptor,"token 39"); try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:8: ( '.limit locals' INTEIRO -> ^( LIMIT INTEIRO ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:90:11: '.limit locals' INTEIRO { - string_literal58=(Token)match(input,39,FOLLOW_39_in_limite756); - stream_39.add(string_literal58); + string_literal56=(Token)match(input,40,FOLLOW_40_in_limite777); + stream_40.add(string_literal56); - INTEIRO59=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite758); - stream_INTEIRO.add(INTEIRO59); + INTEIRO57=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_limite779); + stream_INTEIRO.add(INTEIRO57); // AST REWRITE @@ -1934,38 +1973,38 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx BytecodesAST root_0 = null; Token a=null; - Token string_literal60=null; + Token string_literal58=null; BytecodesAST a_tree=null; - BytecodesAST string_literal60_tree=null; + BytecodesAST string_literal58_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) - int alt18=2; - int LA18_0 = input.LA(1); + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA18_0==33) ) { - alt18=1; + if ( (LA19_0==34) ) { + alt19=1; } - else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { - alt18=2; + else if ( (LA19_0==ID||LA19_0==TIPO_REF) ) { + alt19=2; } else { NoViableAltException nvae = - new NoViableAltException("", 18, 0, input); + new NoViableAltException("", 19, 0, input); throw nvae; } - switch (alt18) { + switch (alt19) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:4: '()' { - string_literal60=(Token)match(input,33,FOLLOW_33_in_parametros780); - stream_33.add(string_literal60); + string_literal58=(Token)match(input,34,FOLLOW_34_in_parametros801); + stream_34.add(string_literal58); // AST REWRITE @@ -2006,31 +2045,31 @@ else if ( (LA18_0==ID||LA18_0==TIPO_REF) ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= ID |a= TIPO_REF )+ { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= ID |a= TIPO_REF )+ - int cnt17=0; - loop17: + int cnt18=0; + loop18: do { - int alt17=3; - int LA17_0 = input.LA(1); + int alt18=3; + int LA18_0 = input.LA(1); - if ( (LA17_0==TIPO_REF) ) { - int LA17_2 = input.LA(2); + if ( (LA18_0==TIPO_REF) ) { + int LA18_1 = input.LA(2); - if ( (LA17_2==ID||LA17_2==INT||(LA17_2 >= TIPO_REF && LA17_2 <= VOID)||LA17_2==34) ) { - alt17=2; + if ( (LA18_1==ID||LA18_1==INT||(LA18_1 >= TIPO_REF && LA18_1 <= VOID)||LA18_1==35) ) { + alt18=2; } } - else if ( (LA17_0==ID) ) { - alt17=1; + else if ( (LA18_0==ID) ) { + alt18=1; } - switch (alt17) { + switch (alt18) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= ID { - a=(Token)match(input,ID,FOLLOW_ID_in_parametros807); + a=(Token)match(input,ID,FOLLOW_ID_in_parametros828); stream_ID.add(a); @@ -2039,7 +2078,7 @@ else if ( (LA17_0==ID) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= TIPO_REF { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros822); + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros843); stream_TIPO_REF.add(a); @@ -2047,12 +2086,12 @@ else if ( (LA17_0==ID) ) { break; default : - if ( cnt17 >= 1 ) break loop17; + if ( cnt18 >= 1 ) break loop18; EarlyExitException eee = - new EarlyExitException(17, input); + new EarlyExitException(18, input); throw eee; } - cnt17++; + cnt18++; } while (true); @@ -2147,36 +2186,36 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) - int alt19=3; + int alt20=3; switch ( input.LA(1) ) { case 50: { - alt19=1; + alt20=1; } break; case 95: { - alt19=2; + alt20=2; } break; case 110: { - alt19=3; + alt20=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 19, 0, input); + new NoViableAltException("", 20, 0, input); throw nvae; } - switch (alt19) { + switch (alt20) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'areturn' { - a=(Token)match(input,50,FOLLOW_50_in_retorno868); + a=(Token)match(input,50,FOLLOW_50_in_retorno889); stream_50.add(a); @@ -2185,7 +2224,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'ireturn' { - a=(Token)match(input,95,FOLLOW_95_in_retorno886); + a=(Token)match(input,95,FOLLOW_95_in_retorno907); stream_95.add(a); @@ -2194,7 +2233,7 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'return' { - a=(Token)match(input,110,FOLLOW_110_in_retorno904); + a=(Token)match(input,110,FOLLOW_110_in_retorno925); stream_110.add(a); @@ -2266,7 +2305,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:1: manipulacaoObjetos : (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'invokevirtual' c= classe '/' d= chamadaMetodo -> ^( 'invokevirtual' $c $d) |a= 'new' c= classe -> ^( NEW $c) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:1: manipulacaoObjetos : (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -2275,137 +2314,140 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro BytecodesAST root_0 = null; Token a=null; - Token char_literal65=null; - Token char_literal66=null; - Token char_literal67=null; - AssemblerParser.campo_return b =null; - - AssemblerParser.classe_return c =null; - - AssemblerParser.chamadaMetodo_return d =null; + Token b=null; + Token REF59=null; + Token REF61=null; + Token REF63=null; + Token REF65=null; + Token REF67=null; + Token REF68=null; + Token REF69=null; + AssemblerParser.parametrosRetorno_return d =null; - AssemblerParser.tipo_return tipo61 =null; + AssemblerParser.tipo_return tipo60 =null; AssemblerParser.tipo_return tipo62 =null; - AssemblerParser.tipo_return tipo63 =null; - AssemblerParser.tipo_return tipo64 =null; + AssemblerParser.tipo_return tipo66 =null; + BytecodesAST a_tree=null; - BytecodesAST char_literal65_tree=null; - BytecodesAST char_literal66_tree=null; - BytecodesAST char_literal67_tree=null; + BytecodesAST b_tree=null; + BytecodesAST REF59_tree=null; + BytecodesAST REF61_tree=null; + BytecodesAST REF63_tree=null; + BytecodesAST REF65_tree=null; + BytecodesAST REF67_tree=null; + BytecodesAST REF68_tree=null; + BytecodesAST REF69_tree=null; RewriteRuleTokenStream stream_58=new RewriteRuleTokenStream(adaptor,"token 58"); - RewriteRuleTokenStream stream_42=new RewriteRuleTokenStream(adaptor,"token 42"); RewriteRuleTokenStream stream_109=new RewriteRuleTokenStream(adaptor,"token 109"); RewriteRuleTokenStream stream_57=new RewriteRuleTokenStream(adaptor,"token 57"); RewriteRuleTokenStream stream_92=new RewriteRuleTokenStream(adaptor,"token 92"); RewriteRuleTokenStream stream_108=new RewriteRuleTokenStream(adaptor,"token 108"); RewriteRuleTokenStream stream_91=new RewriteRuleTokenStream(adaptor,"token 91"); + RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_90=new RewriteRuleTokenStream(adaptor,"token 90"); RewriteRuleTokenStream stream_104=new RewriteRuleTokenStream(adaptor,"token 104"); - RewriteRuleSubtreeStream stream_classe=new RewriteRuleSubtreeStream(adaptor,"rule classe"); - RewriteRuleSubtreeStream stream_campo=new RewriteRuleSubtreeStream(adaptor,"rule campo"); - RewriteRuleSubtreeStream stream_chamadaMetodo=new RewriteRuleSubtreeStream(adaptor,"rule chamadaMetodo"); + RewriteRuleTokenStream stream_REF=new RewriteRuleTokenStream(adaptor,"token REF"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); + RewriteRuleSubtreeStream stream_parametrosRetorno=new RewriteRuleSubtreeStream(adaptor,"rule parametrosRetorno"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:20: (a= 'getfield' b= campo tipo -> ^( 'getfield' $b tipo ) |a= 'getstatic' b= campo tipo -> ^( 'getstatic' $b tipo ) |a= 'putfield' b= campo tipo -> ^( 'putfield' $b tipo ) |a= 'putstatic' b= campo tipo -> ^( 'putstatic' $b tipo ) |a= 'invokespecial' c= classe '/' d= chamadaMetodo -> ^( 'invokespecial' $c $d) |a= 'invokestatic' c= classe '/' d= chamadaMetodo -> ^( 'invokestatic' $c $d) |a= 'invokevirtual' c= classe '/' d= chamadaMetodo -> ^( 'invokevirtual' $c $d) |a= 'new' c= classe -> ^( NEW $c) ) - int alt20=8; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:20: (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ) + int alt22=8; switch ( input.LA(1) ) { case 57: { - alt20=1; + alt22=1; } break; case 58: { - alt20=2; + alt22=2; } break; case 108: { - alt20=3; + alt22=3; } break; case 109: { - alt20=4; + alt22=4; } break; case 90: { - alt20=5; + alt22=5; } break; case 91: { - alt20=6; + alt22=6; } break; case 92: { - alt20=7; + alt22=7; } break; case 104: { - alt20=8; + alt22=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 20, 0, input); + new NoViableAltException("", 22, 0, input); throw nvae; } - switch (alt20) { + switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:22: a= 'getfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:22: a= 'getfield' REF tipo { - a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos983); + a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos1004); stream_57.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos989); - b=campo(); - - state._fsp--; + REF59=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1006); + stream_REF.add(REF59); - stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos991); - tipo61=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1008); + tipo60=tipo(); state._fsp--; - stream_tipo.add(tipo61.getTree()); + stream_tipo.add(tipo60.getTree()); // AST REWRITE - // elements: b, 57, tipo + // elements: 57, tipo, REF // token labels: - // rule labels: retval, b + // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 109:52: -> ^( 'getfield' $b tipo ) + // 109:46: -> ^( 'getfield' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:55: ^( 'getfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:49: ^( 'getfield' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( stream_57.nextNode() , root_1); - adaptor.addChild(root_1, stream_b.nextTree()); + adaptor.addChild(root_1, + stream_REF.nextNode() + ); adaptor.addChild(root_1, stream_tipo.nextTree()); @@ -2420,20 +2462,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:8: a= 'getstatic' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:8: a= 'getstatic' REF tipo { - a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1015); + a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1031); stream_58.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos1021); - b=campo(); - - state._fsp--; + REF61=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1033); + stream_REF.add(REF61); - stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1023); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1035); tipo62=tipo(); state._fsp--; @@ -2441,27 +2480,28 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: b, 58, tipo + // elements: 58, tipo, REF // token labels: - // rule labels: retval, b + // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 110:39: -> ^( 'getstatic' $b tipo ) + // 110:33: -> ^( 'getstatic' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:42: ^( 'getstatic' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:36: ^( 'getstatic' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( stream_58.nextNode() , root_1); - adaptor.addChild(root_1, stream_b.nextTree()); + adaptor.addChild(root_1, + stream_REF.nextNode() + ); adaptor.addChild(root_1, stream_tipo.nextTree()); @@ -2476,48 +2516,46 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:22: a= 'putfield' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:22: a= 'putfield' REF tipo { - a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1061); + a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1072); stream_108.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos1067); - b=campo(); - - state._fsp--; + REF63=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1074); + stream_REF.add(REF63); - stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1069); - tipo63=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1076); + tipo64=tipo(); state._fsp--; - stream_tipo.add(tipo63.getTree()); + stream_tipo.add(tipo64.getTree()); // AST REWRITE - // elements: b, tipo, 108 + // elements: tipo, 108, REF // token labels: - // rule labels: retval, b + // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 111:52: -> ^( 'putfield' $b tipo ) + // 111:46: -> ^( 'putfield' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:55: ^( 'putfield' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:49: ^( 'putfield' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( stream_108.nextNode() , root_1); - adaptor.addChild(root_1, stream_b.nextTree()); + adaptor.addChild(root_1, + stream_REF.nextNode() + ); adaptor.addChild(root_1, stream_tipo.nextTree()); @@ -2532,48 +2570,46 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'putstatic' b= campo tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'putstatic' REF tipo { - a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1107); + a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1113); stream_109.add(a); - pushFollow(FOLLOW_campo_in_manipulacaoObjetos1113); - b=campo(); - - state._fsp--; + REF65=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1115); + stream_REF.add(REF65); - stream_campo.add(b.getTree()); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1115); - tipo64=tipo(); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1117); + tipo66=tipo(); state._fsp--; - stream_tipo.add(tipo64.getTree()); + stream_tipo.add(tipo66.getTree()); // AST REWRITE - // elements: 109, tipo, b + // elements: REF, 109, tipo // token labels: - // rule labels: retval, b + // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 112:53: -> ^( 'putstatic' $b tipo ) + // 112:47: -> ^( 'putstatic' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:56: ^( 'putstatic' $b tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:50: ^( 'putstatic' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( stream_109.nextNode() , root_1); - adaptor.addChild(root_1, stream_b.nextTree()); + adaptor.addChild(root_1, + stream_REF.nextNode() + ); adaptor.addChild(root_1, stream_tipo.nextTree()); @@ -2588,53 +2624,47 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:22: a= 'invokespecial' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:22: a= 'invokespecial' REF d= parametrosRetorno { - a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1153); + a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1154); stream_90.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1159); - c=classe(); - - state._fsp--; - - stream_classe.add(c.getTree()); - - char_literal65=(Token)match(input,42,FOLLOW_42_in_manipulacaoObjetos1161); - stream_42.add(char_literal65); + REF67=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1156); + stream_REF.add(REF67); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1167); - d=chamadaMetodo(); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1162); + d=parametrosRetorno(); state._fsp--; - stream_chamadaMetodo.add(d.getTree()); + stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: d, c, 90 + // elements: d, 90, REF // token labels: - // rule labels: retval, d, c + // rule labels: retval, d // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); - RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 114:23: -> ^( 'invokespecial' $c $d) + // 114:23: -> ^( 'invokespecial' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:26: ^( 'invokespecial' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:26: ^( 'invokespecial' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( stream_90.nextNode() , root_1); - adaptor.addChild(root_1, stream_c.nextTree()); + adaptor.addChild(root_1, + stream_REF.nextNode() + ); adaptor.addChild(root_1, stream_d.nextTree()); @@ -2649,53 +2679,47 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:22: a= 'invokestatic' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:22: a= 'invokestatic' REF d= parametrosRetorno { - a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1228); + a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1222); stream_91.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1234); - c=classe(); - - state._fsp--; - - stream_classe.add(c.getTree()); + REF68=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1224); + stream_REF.add(REF68); - char_literal66=(Token)match(input,42,FOLLOW_42_in_manipulacaoObjetos1236); - stream_42.add(char_literal66); - - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1242); - d=chamadaMetodo(); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1230); + d=parametrosRetorno(); state._fsp--; - stream_chamadaMetodo.add(d.getTree()); + stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: c, d, 91 + // elements: d, REF, 91 // token labels: - // rule labels: retval, d, c + // rule labels: retval, d // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); - RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 116:23: -> ^( 'invokestatic' $c $d) + // 116:23: -> ^( 'invokestatic' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:26: ^( 'invokestatic' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:26: ^( 'invokestatic' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( stream_91.nextNode() , root_1); - adaptor.addChild(root_1, stream_c.nextTree()); + adaptor.addChild(root_1, + stream_REF.nextNode() + ); adaptor.addChild(root_1, stream_d.nextTree()); @@ -2710,53 +2734,47 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:23: a= 'invokevirtual' c= classe '/' d= chamadaMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:23: a= 'invokevirtual' REF d= parametrosRetorno { - a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1304); + a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1291); stream_92.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1310); - c=classe(); - - state._fsp--; - - stream_classe.add(c.getTree()); - - char_literal67=(Token)match(input,42,FOLLOW_42_in_manipulacaoObjetos1312); - stream_42.add(char_literal67); + REF69=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1293); + stream_REF.add(REF69); - pushFollow(FOLLOW_chamadaMetodo_in_manipulacaoObjetos1318); - d=chamadaMetodo(); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1299); + d=parametrosRetorno(); state._fsp--; - stream_chamadaMetodo.add(d.getTree()); + stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: d, 92, c + // elements: REF, d, 92 // token labels: - // rule labels: retval, d, c + // rule labels: retval, d // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); - RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 118:23: -> ^( 'invokevirtual' $c $d) + // 118:23: -> ^( 'invokevirtual' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:26: ^( 'invokevirtual' $c $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:26: ^( 'invokevirtual' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( stream_92.nextNode() , root_1); - adaptor.addChild(root_1, stream_c.nextTree()); + adaptor.addChild(root_1, + stream_REF.nextNode() + ); adaptor.addChild(root_1, stream_d.nextTree()); @@ -2771,41 +2789,74 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:22: a= 'new' c= classe + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:22: a= 'new' (b= ID |b= REF ) { - a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1379); + a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1359); stream_104.add(a); - pushFollow(FOLLOW_classe_in_manipulacaoObjetos1384); - c=classe(); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:32: (b= ID |b= REF ) + int alt21=2; + int LA21_0 = input.LA(1); - state._fsp--; + if ( (LA21_0==ID) ) { + alt21=1; + } + else if ( (LA21_0==REF) ) { + alt21=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 21, 0, input); + + throw nvae; + + } + switch (alt21) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:33: b= ID + { + b=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos1366); + stream_ID.add(b); + + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:42: b= REF + { + b=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1374); + stream_REF.add(b); + + + } + break; + + } - stream_classe.add(c.getTree()); // AST REWRITE - // elements: c - // token labels: - // rule labels: retval, c + // elements: b + // token labels: b + // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; + RewriteRuleTokenStream stream_b=new RewriteRuleTokenStream(adaptor,"token b",b); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 119:42: -> ^( NEW $c) + // 119:51: -> ^( NEW $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:45: ^( NEW $c) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:54: ^( NEW $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(NEW, "NEW") , root_1); - adaptor.addChild(root_1, stream_c.nextTree()); + adaptor.addChild(root_1, stream_b.nextNode()); adaptor.addChild(root_0, root_1); } @@ -2856,9 +2907,9 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST root_0 = null; - Token set68=null; + Token set70=null; - BytecodesAST set68_tree=null; + BytecodesAST set70_tree=null; try { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:6: ( INT | VOID | TIPO_REF ) @@ -2867,12 +2918,12 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { root_0 = (BytecodesAST)adaptor.nil(); - set68=(Token)input.LT(1); + set70=(Token)input.LT(1); if ( input.LA(1)==INT||(input.LA(1) >= TIPO_REF && input.LA(1) <= VOID) ) { input.consume(); adaptor.addChild(root_0, - (BytecodesAST)adaptor.create(set68) + (BytecodesAST)adaptor.create(set70) ); state.errorRecovery=false; } @@ -2937,56 +2988,56 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) - int alt21=7; + int alt23=7; switch ( input.LA(1) ) { case 60: { - alt21=1; + alt23=1; } break; case 101: { - alt21=2; + alt23=2; } break; case 88: { - alt21=3; + alt23=3; } break; case 69: { - alt21=4; + alt23=4; } break; case 94: { - alt21=5; + alt23=5; } break; case 82: { - alt21=6; + alt23=6; } break; case 89: { - alt21=7; + alt23=7; } break; default: NoViableAltException nvae = - new NoViableAltException("", 21, 0, input); + new NoViableAltException("", 23, 0, input); throw nvae; } - switch (alt21) { + switch (alt23) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:16: a= 'iadd' { - a=(Token)match(input,60,FOLLOW_60_in_aritmetica1462); + a=(Token)match(input,60,FOLLOW_60_in_aritmetica1453); stream_60.add(a); @@ -2995,7 +3046,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:19: a= 'isub' { - a=(Token)match(input,101,FOLLOW_101_in_aritmetica1486); + a=(Token)match(input,101,FOLLOW_101_in_aritmetica1477); stream_101.add(a); @@ -3004,7 +3055,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:19: a= 'imul' { - a=(Token)match(input,88,FOLLOW_88_in_aritmetica1510); + a=(Token)match(input,88,FOLLOW_88_in_aritmetica1501); stream_88.add(a); @@ -3013,7 +3064,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:19: a= 'idiv' { - a=(Token)match(input,69,FOLLOW_69_in_aritmetica1534); + a=(Token)match(input,69,FOLLOW_69_in_aritmetica1525); stream_69.add(a); @@ -3022,7 +3073,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:19: a= 'irem' { - a=(Token)match(input,94,FOLLOW_94_in_aritmetica1558); + a=(Token)match(input,94,FOLLOW_94_in_aritmetica1549); stream_94.add(a); @@ -3031,7 +3082,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:19: a= 'iinc' { - a=(Token)match(input,82,FOLLOW_82_in_aritmetica1582); + a=(Token)match(input,82,FOLLOW_82_in_aritmetica1573); stream_82.add(a); @@ -3040,7 +3091,7 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:19: a= 'ineg' { - a=(Token)match(input,89,FOLLOW_89_in_aritmetica1606); + a=(Token)match(input,89,FOLLOW_89_in_aritmetica1597); stream_89.add(a); @@ -3145,101 +3196,101 @@ public final AssemblerParser.load_return load() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) - int alt22=16; + int alt24=16; switch ( input.LA(1) ) { case 68: { - alt22=1; + alt24=1; } break; case 62: { - alt22=2; + alt24=2; } break; case 63: { - alt22=3; + alt24=3; } break; case 64: { - alt22=4; + alt24=4; } break; case 65: { - alt22=5; + alt24=5; } break; case 66: { - alt22=6; + alt24=6; } break; case 67: { - alt22=7; + alt24=7; } break; case 44: { - alt22=8; + alt24=8; } break; case 84: { - alt22=9; + alt24=9; } break; case 85: { - alt22=10; + alt24=10; } break; case 86: { - alt22=11; + alt24=11; } break; case 87: { - alt22=12; + alt24=12; } break; case 46: { - alt22=13; + alt24=13; } break; case 47: { - alt22=14; + alt24=14; } break; case 48: { - alt22=15; + alt24=15; } break; case 49: { - alt22=16; + alt24=16; } break; default: NoViableAltException nvae = - new NoViableAltException("", 22, 0, input); + new NoViableAltException("", 24, 0, input); throw nvae; } - switch (alt22) { + switch (alt24) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:10: a= 'iconst_m1' { - a=(Token)match(input,68,FOLLOW_68_in_load1680); + a=(Token)match(input,68,FOLLOW_68_in_load1671); stream_68.add(a); @@ -3248,7 +3299,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iconst_0' { - a=(Token)match(input,62,FOLLOW_62_in_load1698); + a=(Token)match(input,62,FOLLOW_62_in_load1689); stream_62.add(a); @@ -3257,7 +3308,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iconst_1' { - a=(Token)match(input,63,FOLLOW_63_in_load1716); + a=(Token)match(input,63,FOLLOW_63_in_load1707); stream_63.add(a); @@ -3266,7 +3317,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iconst_2' { - a=(Token)match(input,64,FOLLOW_64_in_load1734); + a=(Token)match(input,64,FOLLOW_64_in_load1725); stream_64.add(a); @@ -3275,7 +3326,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'iconst_3' { - a=(Token)match(input,65,FOLLOW_65_in_load1752); + a=(Token)match(input,65,FOLLOW_65_in_load1743); stream_65.add(a); @@ -3284,7 +3335,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'iconst_4' { - a=(Token)match(input,66,FOLLOW_66_in_load1770); + a=(Token)match(input,66,FOLLOW_66_in_load1761); stream_66.add(a); @@ -3293,7 +3344,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'iconst_5' { - a=(Token)match(input,67,FOLLOW_67_in_load1788); + a=(Token)match(input,67,FOLLOW_67_in_load1779); stream_67.add(a); @@ -3302,7 +3353,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'aconst_null' { - a=(Token)match(input,44,FOLLOW_44_in_load1806); + a=(Token)match(input,44,FOLLOW_44_in_load1797); stream_44.add(a); @@ -3311,7 +3362,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'iload_0' { - a=(Token)match(input,84,FOLLOW_84_in_load1824); + a=(Token)match(input,84,FOLLOW_84_in_load1815); stream_84.add(a); @@ -3320,7 +3371,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload_1' { - a=(Token)match(input,85,FOLLOW_85_in_load1842); + a=(Token)match(input,85,FOLLOW_85_in_load1833); stream_85.add(a); @@ -3329,7 +3380,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'iload_2' { - a=(Token)match(input,86,FOLLOW_86_in_load1860); + a=(Token)match(input,86,FOLLOW_86_in_load1851); stream_86.add(a); @@ -3338,7 +3389,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'iload_3' { - a=(Token)match(input,87,FOLLOW_87_in_load1878); + a=(Token)match(input,87,FOLLOW_87_in_load1869); stream_87.add(a); @@ -3347,7 +3398,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'aload_0' { - a=(Token)match(input,46,FOLLOW_46_in_load1896); + a=(Token)match(input,46,FOLLOW_46_in_load1887); stream_46.add(a); @@ -3356,7 +3407,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 14 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'aload_1' { - a=(Token)match(input,47,FOLLOW_47_in_load1914); + a=(Token)match(input,47,FOLLOW_47_in_load1905); stream_47.add(a); @@ -3365,7 +3416,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 15 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:13: a= 'aload_2' { - a=(Token)match(input,48,FOLLOW_48_in_load1932); + a=(Token)match(input,48,FOLLOW_48_in_load1923); stream_48.add(a); @@ -3374,7 +3425,7 @@ public final AssemblerParser.load_return load() throws RecognitionException { case 16 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:13: a= 'aload_3' { - a=(Token)match(input,49,FOLLOW_49_in_load1950); + a=(Token)match(input,49,FOLLOW_49_in_load1941); stream_49.add(a); @@ -3469,40 +3520,40 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) - int alt23=3; + int alt25=3; switch ( input.LA(1) ) { case 83: { - alt23=1; + alt25=1; } break; case 103: { - alt23=2; + alt25=2; } break; case 45: { - alt23=3; + alt25=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 23, 0, input); + new NoViableAltException("", 25, 0, input); throw nvae; } - switch (alt23) { + switch (alt25) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,83,FOLLOW_83_in_loadint2000); + a=(Token)match(input,83,FOLLOW_83_in_loadint1991); stream_83.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2006); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1997); stream_INTEIRO.add(b); @@ -3511,11 +3562,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,103,FOLLOW_103_in_loadint2026); + a=(Token)match(input,103,FOLLOW_103_in_loadint2017); stream_103.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2032); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2023); stream_INTEIRO.add(b); @@ -3524,11 +3575,11 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,45,FOLLOW_45_in_loadint2052); + a=(Token)match(input,45,FOLLOW_45_in_loadint2043); stream_45.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2058); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2049); stream_INTEIRO.add(b); @@ -3628,61 +3679,61 @@ public final AssemblerParser.store_return store() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) - int alt24=8; + int alt26=8; switch ( input.LA(1) ) { case 97: { - alt24=1; + alt26=1; } break; case 98: { - alt24=2; + alt26=2; } break; case 99: { - alt24=3; + alt26=3; } break; case 100: { - alt24=4; + alt26=4; } break; case 52: { - alt24=5; + alt26=5; } break; case 53: { - alt24=6; + alt26=6; } break; case 54: { - alt24=7; + alt26=7; } break; case 55: { - alt24=8; + alt26=8; } break; default: NoViableAltException nvae = - new NoViableAltException("", 24, 0, input); + new NoViableAltException("", 26, 0, input); throw nvae; } - switch (alt24) { + switch (alt26) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:11: a= 'istore_0' { - a=(Token)match(input,97,FOLLOW_97_in_store2120); + a=(Token)match(input,97,FOLLOW_97_in_store2111); stream_97.add(a); @@ -3691,7 +3742,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'istore_1' { - a=(Token)match(input,98,FOLLOW_98_in_store2138); + a=(Token)match(input,98,FOLLOW_98_in_store2129); stream_98.add(a); @@ -3700,7 +3751,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'istore_2' { - a=(Token)match(input,99,FOLLOW_99_in_store2156); + a=(Token)match(input,99,FOLLOW_99_in_store2147); stream_99.add(a); @@ -3709,7 +3760,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:13: a= 'istore_3' { - a=(Token)match(input,100,FOLLOW_100_in_store2174); + a=(Token)match(input,100,FOLLOW_100_in_store2165); stream_100.add(a); @@ -3718,7 +3769,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'astore_0' { - a=(Token)match(input,52,FOLLOW_52_in_store2192); + a=(Token)match(input,52,FOLLOW_52_in_store2183); stream_52.add(a); @@ -3727,7 +3778,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:13: a= 'astore_1' { - a=(Token)match(input,53,FOLLOW_53_in_store2210); + a=(Token)match(input,53,FOLLOW_53_in_store2201); stream_53.add(a); @@ -3736,7 +3787,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:13: a= 'astore_2' { - a=(Token)match(input,54,FOLLOW_54_in_store2228); + a=(Token)match(input,54,FOLLOW_54_in_store2219); stream_54.add(a); @@ -3745,7 +3796,7 @@ public final AssemblerParser.store_return store() throws RecognitionException { case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:13: a= 'astore_3' { - a=(Token)match(input,55,FOLLOW_55_in_store2246); + a=(Token)match(input,55,FOLLOW_55_in_store2237); stream_55.add(a); @@ -3839,31 +3890,31 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) - int alt25=2; - int LA25_0 = input.LA(1); + int alt27=2; + int LA27_0 = input.LA(1); - if ( (LA25_0==96) ) { - alt25=1; + if ( (LA27_0==96) ) { + alt27=1; } - else if ( (LA25_0==51) ) { - alt25=2; + else if ( (LA27_0==51) ) { + alt27=2; } else { NoViableAltException nvae = - new NoViableAltException("", 25, 0, input); + new NoViableAltException("", 27, 0, input); throw nvae; } - switch (alt25) { + switch (alt27) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,96,FOLLOW_96_in_storeint2300); + a=(Token)match(input,96,FOLLOW_96_in_storeint2291); stream_96.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2306); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2297); stream_INTEIRO.add(b); @@ -3872,11 +3923,11 @@ else if ( (LA25_0==51) ) { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,51,FOLLOW_51_in_storeint2327); + a=(Token)match(input,51,FOLLOW_51_in_storeint2318); stream_51.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2333); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2324); stream_INTEIRO.add(b); @@ -3971,36 +4022,36 @@ public final AssemblerParser.logica_return logica() throws RecognitionException // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) - int alt26=3; + int alt28=3; switch ( input.LA(1) ) { case 61: { - alt26=1; + alt28=1; } break; case 93: { - alt26=2; + alt28=2; } break; case 102: { - alt26=3; + alt28=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 26, 0, input); + new NoViableAltException("", 28, 0, input); throw nvae; } - switch (alt26) { + switch (alt28) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:12: a= 'iand' { - a=(Token)match(input,61,FOLLOW_61_in_logica2393); + a=(Token)match(input,61,FOLLOW_61_in_logica2384); stream_61.add(a); @@ -4009,7 +4060,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ior' { - a=(Token)match(input,93,FOLLOW_93_in_logica2412); + a=(Token)match(input,93,FOLLOW_93_in_logica2403); stream_93.add(a); @@ -4018,7 +4069,7 @@ public final AssemblerParser.logica_return logica() throws RecognitionException case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'ixor' { - a=(Token)match(input,102,FOLLOW_102_in_logica2431); + a=(Token)match(input,102,FOLLOW_102_in_logica2422); stream_102.add(a); @@ -4123,90 +4174,90 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) - int alt27=13; + int alt29=13; switch ( input.LA(1) ) { case 76: { - alt27=1; + alt29=1; } break; case 81: { - alt27=2; + alt29=2; } break; case 80: { - alt27=3; + alt29=3; } break; case 77: { - alt27=4; + alt29=4; } break; case 78: { - alt27=5; + alt29=5; } break; case 79: { - alt27=6; + alt29=6; } break; case 70: { - alt27=7; + alt29=7; } break; case 75: { - alt27=8; + alt29=8; } break; case 74: { - alt27=9; + alt29=9; } break; case 71: { - alt27=10; + alt29=10; } break; case 72: { - alt27=11; + alt29=11; } break; case 73: { - alt27=12; + alt29=12; } break; case 59: { - alt27=13; + alt29=13; } break; default: NoViableAltException nvae = - new NoViableAltException("", 27, 0, input); + new NoViableAltException("", 29, 0, input); throw nvae; } - switch (alt27) { + switch (alt29) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:12: a= 'ifeq' b= ID { - a=(Token)match(input,76,FOLLOW_76_in_desvio2482); + a=(Token)match(input,76,FOLLOW_76_in_desvio2473); stream_76.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2488); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2479); stream_ID.add(b); @@ -4215,11 +4266,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'ifne' b= ID { - a=(Token)match(input,81,FOLLOW_81_in_desvio2507); + a=(Token)match(input,81,FOLLOW_81_in_desvio2498); stream_81.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2513); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2504); stream_ID.add(b); @@ -4228,11 +4279,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'iflt' b= ID { - a=(Token)match(input,80,FOLLOW_80_in_desvio2532); + a=(Token)match(input,80,FOLLOW_80_in_desvio2523); stream_80.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2538); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2529); stream_ID.add(b); @@ -4241,11 +4292,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 4 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'ifge' b= ID { - a=(Token)match(input,77,FOLLOW_77_in_desvio2557); + a=(Token)match(input,77,FOLLOW_77_in_desvio2548); stream_77.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2563); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2554); stream_ID.add(b); @@ -4254,11 +4305,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 5 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'ifgt' b= ID { - a=(Token)match(input,78,FOLLOW_78_in_desvio2582); + a=(Token)match(input,78,FOLLOW_78_in_desvio2573); stream_78.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2588); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2579); stream_ID.add(b); @@ -4267,11 +4318,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 6 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'ifle' b= ID { - a=(Token)match(input,79,FOLLOW_79_in_desvio2607); + a=(Token)match(input,79,FOLLOW_79_in_desvio2598); stream_79.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2613); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2604); stream_ID.add(b); @@ -4280,11 +4331,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 7 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2632); + a=(Token)match(input,70,FOLLOW_70_in_desvio2623); stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2638); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2629); stream_ID.add(b); @@ -4293,11 +4344,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 8 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,75,FOLLOW_75_in_desvio2657); + a=(Token)match(input,75,FOLLOW_75_in_desvio2648); stream_75.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2663); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2654); stream_ID.add(b); @@ -4306,11 +4357,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 9 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,74,FOLLOW_74_in_desvio2682); + a=(Token)match(input,74,FOLLOW_74_in_desvio2673); stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2688); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2679); stream_ID.add(b); @@ -4319,11 +4370,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 10 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:197:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2707); + a=(Token)match(input,71,FOLLOW_71_in_desvio2698); stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2713); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2704); stream_ID.add(b); @@ -4332,11 +4383,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 11 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2732); + a=(Token)match(input,72,FOLLOW_72_in_desvio2723); stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2738); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2729); stream_ID.add(b); @@ -4345,11 +4396,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 12 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:14: a= 'if_icmple' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2757); + a=(Token)match(input,73,FOLLOW_73_in_desvio2748); stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2763); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2754); stream_ID.add(b); @@ -4358,11 +4409,11 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException case 13 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:14: a= 'goto' b= ID { - a=(Token)match(input,59,FOLLOW_59_in_desvio2782); + a=(Token)match(input,59,FOLLOW_59_in_desvio2773); stream_59.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2788); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2779); stream_ID.add(b); @@ -4457,36 +4508,36 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) - int alt28=3; + int alt30=3; switch ( input.LA(1) ) { case 106: { - alt28=1; + alt30=1; } break; case 107: { - alt28=2; + alt30=2; } break; case 56: { - alt28=3; + alt30=3; } break; default: NoViableAltException nvae = - new NoViableAltException("", 28, 0, input); + new NoViableAltException("", 30, 0, input); throw nvae; } - switch (alt28) { + switch (alt30) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:11: a= 'pop' { - a=(Token)match(input,106,FOLLOW_106_in_pilha2849); + a=(Token)match(input,106,FOLLOW_106_in_pilha2840); stream_106.add(a); @@ -4495,7 +4546,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 2 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:13: a= 'pop2' { - a=(Token)match(input,107,FOLLOW_107_in_pilha2867); + a=(Token)match(input,107,FOLLOW_107_in_pilha2858); stream_107.add(a); @@ -4504,7 +4555,7 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { case 3 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:207:13: a= 'dup' { - a=(Token)match(input,56,FOLLOW_56_in_pilha2885); + a=(Token)match(input,56,FOLLOW_56_in_pilha2876); stream_56.add(a); @@ -4569,226 +4620,48 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { // $ANTLR end "pilha" - public static class classe_return extends ParserRuleReturnScope { - public List classe; - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "classe" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:1: classe returns [List classe] : (cls+= ID '/' )* (cls+= ID ) ; - public final AssemblerParser.classe_return classe() throws RecognitionException { - AssemblerParser.classe_return retval = new AssemblerParser.classe_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token char_literal69=null; - Token cls=null; - List list_cls=null; - - BytecodesAST char_literal69_tree=null; - BytecodesAST cls_tree=null; - - - retval.classe = new ArrayList(); - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:6: ( (cls+= ID '/' )* (cls+= ID ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:8: (cls+= ID '/' )* (cls+= ID ) - { - root_0 = (BytecodesAST)adaptor.nil(); - - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:8: (cls+= ID '/' )* - loop29: - do { - int alt29=2; - int LA29_0 = input.LA(1); - - if ( (LA29_0==ID) ) { - int LA29_1 = input.LA(2); - - if ( (LA29_1==42) ) { - int LA29_2 = input.LA(3); - - if ( (LA29_2==ID) ) { - int LA29_4 = input.LA(4); - - if ( (LA29_4==NEWLINE||LA29_4==42) ) { - alt29=1; - } - - - } - - - } - - - } - - - switch (alt29) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:9: cls+= ID '/' - { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2951); - cls_tree = - (BytecodesAST)adaptor.create(cls) - ; - adaptor.addChild(root_0, cls_tree); - - if (list_cls==null) list_cls=new ArrayList(); - list_cls.add(cls); - - - char_literal69=(Token)match(input,42,FOLLOW_42_in_classe2953); - char_literal69_tree = - (BytecodesAST)adaptor.create(char_literal69) - ; - adaptor.addChild(root_0, char_literal69_tree); - - - } - break; - - default : - break loop29; - } - } while (true); - - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:25: (cls+= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:26: cls+= ID - { - cls=(Token)match(input,ID,FOLLOW_ID_in_classe2962); - cls_tree = - (BytecodesAST)adaptor.create(cls) - ; - adaptor.addChild(root_0, cls_tree); - - if (list_cls==null) list_cls=new ArrayList(); - list_cls.add(cls); - - - } - - - retval.classe = list_cls; - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "classe" - - - public static class chamadaMetodo_return extends ParserRuleReturnScope { + public static class parametrosRetorno_return extends ParserRuleReturnScope { BytecodesAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "chamadaMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:1: chamadaMetodo : (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo -> ^( METHOD_CALL $n argumentos $tip) ; - public final AssemblerParser.chamadaMetodo_return chamadaMetodo() throws RecognitionException { - AssemblerParser.chamadaMetodo_return retval = new AssemblerParser.chamadaMetodo_return(); + // $ANTLR start "parametrosRetorno" + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:1: parametrosRetorno : ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ; + public final AssemblerParser.parametrosRetorno_return parametrosRetorno() throws RecognitionException { + AssemblerParser.parametrosRetorno_return retval = new AssemblerParser.parametrosRetorno_return(); retval.start = input.LT(1); BytecodesAST root_0 = null; - Token n=null; - Token char_literal71=null; - Token char_literal73=null; + Token char_literal72=null; + Token char_literal74=null; AssemblerParser.tipo_return tip =null; - AssemblerParser.argumentos_return argumentos70 =null; + AssemblerParser.parametros_return parametros71 =null; - AssemblerParser.argumentos_return argumentos72 =null; + AssemblerParser.parametros_return parametros73 =null; - BytecodesAST n_tree=null; - BytecodesAST char_literal71_tree=null; - BytecodesAST char_literal73_tree=null; - RewriteRuleTokenStream stream_32=new RewriteRuleTokenStream(adaptor,"token 32"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_INIT=new RewriteRuleTokenStream(adaptor,"token INIT"); - RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); + BytecodesAST char_literal72_tree=null; + BytecodesAST char_literal74_tree=null; + RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35"); + RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); + RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); - RewriteRuleSubtreeStream stream_argumentos=new RewriteRuleSubtreeStream(adaptor,"rule argumentos"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:6: ( (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo -> ^( METHOD_CALL $n argumentos $tip) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:10: (n= INIT |n= ID ) ( argumentos | '(' argumentos ')' ) tip= tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:6: ( ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:10: ( parametros | '(' parametros ')' ) tip= tipo { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:10: (n= INIT |n= ID ) - int alt30=2; - int LA30_0 = input.LA(1); - - if ( (LA30_0==INIT) ) { - alt30=1; - } - else if ( (LA30_0==ID) ) { - alt30=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 30, 0, input); - - throw nvae; - - } - switch (alt30) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:11: n= INIT - { - n=(Token)match(input,INIT,FOLLOW_INIT_in_chamadaMetodo2996); - stream_INIT.add(n); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:22: n= ID - { - n=(Token)match(input,ID,FOLLOW_ID_in_chamadaMetodo3004); - stream_ID.add(n); - - - } - break; - - } - - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:30: ( argumentos | '(' argumentos ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:10: ( parametros | '(' parametros ')' ) int alt31=2; int LA31_0 = input.LA(1); - if ( (LA31_0==ID||LA31_0==TIPO_REF||LA31_0==33) ) { + if ( (LA31_0==ID||LA31_0==TIPO_REF||LA31_0==34) ) { alt31=1; } - else if ( (LA31_0==32) ) { + else if ( (LA31_0==33) ) { alt31=2; } else { @@ -4800,33 +4673,33 @@ else if ( (LA31_0==32) ) { } switch (alt31) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:31: argumentos + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:11: parametros { - pushFollow(FOLLOW_argumentos_in_chamadaMetodo3008); - argumentos70=argumentos(); + pushFollow(FOLLOW_parametros_in_parametrosRetorno2931); + parametros71=parametros(); state._fsp--; - stream_argumentos.add(argumentos70.getTree()); + stream_parametros.add(parametros71.getTree()); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:44: '(' argumentos ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:24: '(' parametros ')' { - char_literal71=(Token)match(input,32,FOLLOW_32_in_chamadaMetodo3012); - stream_32.add(char_literal71); + char_literal72=(Token)match(input,33,FOLLOW_33_in_parametrosRetorno2935); + stream_33.add(char_literal72); - pushFollow(FOLLOW_argumentos_in_chamadaMetodo3014); - argumentos72=argumentos(); + pushFollow(FOLLOW_parametros_in_parametrosRetorno2937); + parametros73=parametros(); state._fsp--; - stream_argumentos.add(argumentos72.getTree()); + stream_parametros.add(parametros73.getTree()); - char_literal73=(Token)match(input,34,FOLLOW_34_in_chamadaMetodo3016); - stream_34.add(char_literal73); + char_literal74=(Token)match(input,35,FOLLOW_35_in_parametrosRetorno2939); + stream_35.add(char_literal74); } @@ -4835,7 +4708,7 @@ else if ( (LA31_0==32) ) { } - pushFollow(FOLLOW_tipo_in_chamadaMetodo3024); + pushFollow(FOLLOW_tipo_in_parametrosRetorno2947); tip=tipo(); state._fsp--; @@ -4843,30 +4716,27 @@ else if ( (LA31_0==32) ) { stream_tipo.add(tip.getTree()); // AST REWRITE - // elements: tip, argumentos, n - // token labels: n + // elements: tip, parametros + // token labels: // rule labels: retval, tip // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; - RewriteRuleTokenStream stream_n=new RewriteRuleTokenStream(adaptor,"token n",n); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_tip=new RewriteRuleSubtreeStream(adaptor,"rule tip",tip!=null?tip.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 221:12: -> ^( METHOD_CALL $n argumentos $tip) + // 214:12: -> ^( METHOD_CALL parametros $tip) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:15: ^( METHOD_CALL $n argumentos $tip) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:15: ^( METHOD_CALL parametros $tip) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( (BytecodesAST)adaptor.create(METHOD_CALL, "METHOD_CALL") , root_1); - adaptor.addChild(root_1, stream_n.nextNode()); - - adaptor.addChild(root_1, stream_argumentos.nextTree()); + adaptor.addChild(root_1, stream_parametros.nextTree()); adaptor.addChild(root_1, stream_tip.nextTree()); @@ -4899,209 +4769,7 @@ else if ( (LA31_0==32) ) { } return retval; } - // $ANTLR end "chamadaMetodo" - - - public static class argumentos_return extends ParserRuleReturnScope { - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "argumentos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:1: argumentos : ( '()' -> ^( ARGS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( ARGS $a) )+ ); - public final AssemblerParser.argumentos_return argumentos() throws RecognitionException { - AssemblerParser.argumentos_return retval = new AssemblerParser.argumentos_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token a=null; - Token string_literal74=null; - - BytecodesAST a_tree=null; - BytecodesAST string_literal74_tree=null; - RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); - RewriteRuleTokenStream stream_33=new RewriteRuleTokenStream(adaptor,"token 33"); - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:2: ( '()' -> ^( ARGS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( ARGS $a) )+ ) - int alt33=2; - int LA33_0 = input.LA(1); - - if ( (LA33_0==33) ) { - alt33=1; - } - else if ( (LA33_0==ID||LA33_0==TIPO_REF) ) { - alt33=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 33, 0, input); - - throw nvae; - - } - switch (alt33) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:4: '()' - { - string_literal74=(Token)match(input,33,FOLLOW_33_in_argumentos3069); - stream_33.add(string_literal74); - - - // AST REWRITE - // elements: - // token labels: - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 225:9: -> ^( ARGS VOID ) - { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:12: ^( ARGS VOID ) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(ARGS, "ARGS") - , root_1); - - adaptor.addChild(root_1, - (BytecodesAST)adaptor.create(VOID, "VOID") - ); - - adaptor.addChild(root_0, root_1); - } - - } - - - retval.tree = root_0; - - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:4: (a= ID |a= TIPO_REF )+ - { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:4: (a= ID |a= TIPO_REF )+ - int cnt32=0; - loop32: - do { - int alt32=3; - int LA32_0 = input.LA(1); - - if ( (LA32_0==TIPO_REF) ) { - int LA32_1 = input.LA(2); - - if ( (LA32_1==ID||LA32_1==INT||(LA32_1 >= TIPO_REF && LA32_1 <= VOID)||LA32_1==34) ) { - alt32=2; - } - - - } - else if ( (LA32_0==ID) ) { - alt32=1; - } - - - switch (alt32) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:9: a= ID - { - a=(Token)match(input,ID,FOLLOW_ID_in_argumentos3096); - stream_ID.add(a); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:9: a= TIPO_REF - { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_argumentos3111); - stream_TIPO_REF.add(a); - - - } - break; - - default : - if ( cnt32 >= 1 ) break loop32; - EarlyExitException eee = - new EarlyExitException(32, input); - throw eee; - } - cnt32++; - } while (true); - - - // AST REWRITE - // elements: a - // token labels: a - // rule labels: retval - // token list labels: - // rule list labels: - // wildcard labels: - retval.tree = root_0; - RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a); - RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); - - root_0 = (BytecodesAST)adaptor.nil(); - // 230:4: -> ( ^( ARGS $a) )+ - { - if ( !(stream_a.hasNext()) ) { - throw new RewriteEarlyExitException(); - } - while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:7: ^( ARGS $a) - { - BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); - root_1 = (BytecodesAST)adaptor.becomeRoot( - (BytecodesAST)adaptor.create(ARGS, "ARGS") - , root_1); - - adaptor.addChild(root_1, stream_a.nextNode()); - - adaptor.addChild(root_0, root_1); - } - - } - stream_a.reset(); - - } - - - retval.tree = root_0; - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "argumentos" + // $ANTLR end "parametrosRetorno" public static class contagemParametros_return extends ParserRuleReturnScope { @@ -5112,7 +4780,7 @@ public static class contagemParametros_return extends ParserRuleReturnScope { // $ANTLR start "contagemParametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:1: contagemParametros returns [int qtdParams] : ( '()' | ( ID | TIPO_REF )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:1: contagemParametros returns [int qtdParams] : ( '()' | ( ID | TIPO_REF )+ ); public final AssemblerParser.contagemParametros_return contagemParametros() throws RecognitionException { AssemblerParser.contagemParametros_return retval = new AssemblerParser.contagemParametros_return(); retval.start = input.LT(1); @@ -5129,31 +4797,31 @@ public final AssemblerParser.contagemParametros_return contagemParametros() thro BytecodesAST TIPO_REF77_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:2: ( '()' | ( ID | TIPO_REF )+ ) - int alt35=2; - int LA35_0 = input.LA(1); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:2: ( '()' | ( ID | TIPO_REF )+ ) + int alt33=2; + int LA33_0 = input.LA(1); - if ( (LA35_0==33) ) { - alt35=1; + if ( (LA33_0==34) ) { + alt33=1; } - else if ( (LA35_0==ID||LA35_0==TIPO_REF) ) { - alt35=2; + else if ( (LA33_0==ID||LA33_0==TIPO_REF) ) { + alt33=2; } else { NoViableAltException nvae = - new NoViableAltException("", 35, 0, input); + new NoViableAltException("", 33, 0, input); throw nvae; } - switch (alt35) { + switch (alt33) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:4: '()' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:4: '()' { root_0 = (BytecodesAST)adaptor.nil(); - string_literal75=(Token)match(input,33,FOLLOW_33_in_contagemParametros3150); + string_literal75=(Token)match(input,34,FOLLOW_34_in_contagemParametros2993); string_literal75_tree = (BytecodesAST)adaptor.create(string_literal75) ; @@ -5165,31 +4833,31 @@ else if ( (LA35_0==ID||LA35_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:4: ( ID | TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:4: ( ID | TIPO_REF )+ { root_0 = (BytecodesAST)adaptor.nil(); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:4: ( ID | TIPO_REF )+ - int cnt34=0; - loop34: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:4: ( ID | TIPO_REF )+ + int cnt32=0; + loop32: do { - int alt34=3; - int LA34_0 = input.LA(1); + int alt32=3; + int LA32_0 = input.LA(1); - if ( (LA34_0==ID) ) { - alt34=1; + if ( (LA32_0==ID) ) { + alt32=1; } - else if ( (LA34_0==TIPO_REF) ) { - alt34=2; + else if ( (LA32_0==TIPO_REF) ) { + alt32=2; } - switch (alt34) { + switch (alt32) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:9: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:9: ID { - ID76=(Token)match(input,ID,FOLLOW_ID_in_contagemParametros3167); + ID76=(Token)match(input,ID,FOLLOW_ID_in_contagemParametros3010); ID76_tree = (BytecodesAST)adaptor.create(ID76) ; @@ -5201,9 +4869,9 @@ else if ( (LA34_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:9: TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:9: TIPO_REF { - TIPO_REF77=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_contagemParametros3179); + TIPO_REF77=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_contagemParametros3022); TIPO_REF77_tree = (BytecodesAST)adaptor.create(TIPO_REF77) ; @@ -5216,12 +4884,12 @@ else if ( (LA34_0==TIPO_REF) ) { break; default : - if ( cnt34 >= 1 ) break loop34; + if ( cnt32 >= 1 ) break loop32; EarlyExitException eee = - new EarlyExitException(34, input); + new EarlyExitException(32, input); throw eee; } - cnt34++; + cnt32++; } while (true); @@ -5250,137 +4918,15 @@ else if ( (LA34_0==TIPO_REF) ) { } // $ANTLR end "contagemParametros" - - public static class campo_return extends ParserRuleReturnScope { - public List classe; - public String campo; - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "campo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:241:1: campo returns [List classe, String campo] : (cls+= ID '/' )+ cmp= ID ; - public final AssemblerParser.campo_return campo() throws RecognitionException { - AssemblerParser.campo_return retval = new AssemblerParser.campo_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token cmp=null; - Token char_literal78=null; - Token cls=null; - List list_cls=null; - - BytecodesAST cmp_tree=null; - BytecodesAST char_literal78_tree=null; - BytecodesAST cls_tree=null; - - - retval.classe = new ArrayList(); - retval.campo =""; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:246:6: ( (cls+= ID '/' )+ cmp= ID ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:246:8: (cls+= ID '/' )+ cmp= ID - { - root_0 = (BytecodesAST)adaptor.nil(); - - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:246:8: (cls+= ID '/' )+ - int cnt36=0; - loop36: - do { - int alt36=2; - int LA36_0 = input.LA(1); - - if ( (LA36_0==ID) ) { - int LA36_1 = input.LA(2); - - if ( (LA36_1==42) ) { - alt36=1; - } - - - } - - - switch (alt36) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:246:9: cls+= ID '/' - { - cls=(Token)match(input,ID,FOLLOW_ID_in_campo3221); - cls_tree = - (BytecodesAST)adaptor.create(cls) - ; - adaptor.addChild(root_0, cls_tree); - - if (list_cls==null) list_cls=new ArrayList(); - list_cls.add(cls); - - - char_literal78=(Token)match(input,42,FOLLOW_42_in_campo3223); - char_literal78_tree = - (BytecodesAST)adaptor.create(char_literal78) - ; - adaptor.addChild(root_0, char_literal78_tree); - - - } - break; - - default : - if ( cnt36 >= 1 ) break loop36; - EarlyExitException eee = - new EarlyExitException(36, input); - throw eee; - } - cnt36++; - } while (true); - - - cmp=(Token)match(input,ID,FOLLOW_ID_in_campo3231); - cmp_tree = - (BytecodesAST)adaptor.create(cmp) - ; - adaptor.addChild(root_0, cmp_tree); - - - retval.classe = list_cls; retval.campo = (cmp!=null?cmp.getText():null); - - } - - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "campo" - // Delegated rules - public static final BitSet FOLLOW_instrucao_in_programa152 = new BitSet(new long[]{0xFFFFF00800800802L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_instrucao_in_programa152 = new BitSet(new long[]{0xFFFFF01000800802L,0x00007FFFFFFFFFFFL}); public static final BitSet FOLLOW_operacao_in_instrucao180 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_definicaoClasse_in_instrucao194 = new BitSet(new long[]{0x0000001000000002L}); - public static final BitSet FOLLOW_36_in_instrucao197 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_definicaoClasse_in_instrucao194 = new BitSet(new long[]{0x0000002000000002L}); + public static final BitSet FOLLOW_37_in_instrucao197 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_label_in_operacao219 = new BitSet(new long[]{0xFFFFF00000800000L,0x00007FFFFFFFFFFFL}); public static final BitSet FOLLOW_comando_in_operacao221 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_comando_in_operacao225 = new BitSet(new long[]{0x0000000000000002L}); @@ -5398,169 +4944,157 @@ public final AssemblerParser.campo_return campo() throws RecognitionException { public static final BitSet FOLLOW_retorno_in_comando429 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_105_in_comando447 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_NEWLINE_in_comando463 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_definicaoClasse486 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_36_in_definicaoClasse486 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_ID_in_definicaoClasse488 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse490 = new BitSet(new long[]{0x0000034000000000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse490 = new BitSet(new long[]{0x0000068000000000L}); public static final BitSet FOLLOW_superClasse_in_definicaoClasse493 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse495 = new BitSet(new long[]{0x0000014000000000L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse495 = new BitSet(new long[]{0x0000028000000000L}); public static final BitSet FOLLOW_membroClasse_in_definicaoClasse500 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse502 = new BitSet(new long[]{0x0000014000000002L}); - public static final BitSet FOLLOW_41_in_superClasse563 = new BitSet(new long[]{0x0000000020000000L}); - public static final BitSet FOLLOW_TIPO_REF_in_superClasse565 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_38_in_membroClasse586 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); - public static final BitSet FOLLOW_111_in_membroClasse588 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_membroClasse591 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse593 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_membroClasse611 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INIT_in_membroClasse613 = new BitSet(new long[]{0x0000000320000800L}); - public static final BitSet FOLLOW_parametros_in_membroClasse616 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_32_in_membroClasse620 = new BitSet(new long[]{0x0000000220000800L}); - public static final BitSet FOLLOW_parametros_in_membroClasse622 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_34_in_membroClasse624 = new BitSet(new long[]{0x0000000040000000L}); - public static final BitSet FOLLOW_VOID_in_membroClasse627 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse629 = new BitSet(new long[]{0xFFFFF0A000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_limite_in_membroClasse632 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse634 = new BitSet(new long[]{0xFFFFF02000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse638 = new BitSet(new long[]{0xFFFFF02000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_37_in_membroClasse641 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_40_in_membroClasse670 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); - public static final BitSet FOLLOW_111_in_membroClasse672 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_membroClasse675 = new BitSet(new long[]{0x0000000320000800L}); - public static final BitSet FOLLOW_parametros_in_membroClasse678 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_32_in_membroClasse682 = new BitSet(new long[]{0x0000000220000800L}); - public static final BitSet FOLLOW_parametros_in_membroClasse684 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_34_in_membroClasse686 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_tipo_in_membroClasse693 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse695 = new BitSet(new long[]{0xFFFFF0A000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_limite_in_membroClasse698 = new BitSet(new long[]{0x0000000000800000L}); - public static final BitSet FOLLOW_NEWLINE_in_membroClasse700 = new BitSet(new long[]{0xFFFFF02000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_operacao_in_membroClasse704 = new BitSet(new long[]{0xFFFFF02000800800L,0x00007FFFFFFFFFFFL}); - public static final BitSet FOLLOW_37_in_membroClasse707 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_39_in_limite756 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_limite758 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_parametros780 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_parametros807 = new BitSet(new long[]{0x0000000020000802L}); - public static final BitSet FOLLOW_TIPO_REF_in_parametros822 = new BitSet(new long[]{0x0000000020000802L}); - public static final BitSet FOLLOW_50_in_retorno868 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_retorno886 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_110_in_retorno904 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_manipulacaoObjetos983 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos989 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos991 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_manipulacaoObjetos1015 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos1021 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1023 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_108_in_manipulacaoObjetos1061 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos1067 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1069 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_109_in_manipulacaoObjetos1107 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_campo_in_manipulacaoObjetos1113 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1115 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_manipulacaoObjetos1153 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1159 = new BitSet(new long[]{0x0000040000000000L}); - public static final BitSet FOLLOW_42_in_manipulacaoObjetos1161 = new BitSet(new long[]{0x0000000000001800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1167 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_manipulacaoObjetos1228 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1234 = new BitSet(new long[]{0x0000040000000000L}); - public static final BitSet FOLLOW_42_in_manipulacaoObjetos1236 = new BitSet(new long[]{0x0000000000001800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1242 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_manipulacaoObjetos1304 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1310 = new BitSet(new long[]{0x0000040000000000L}); - public static final BitSet FOLLOW_42_in_manipulacaoObjetos1312 = new BitSet(new long[]{0x0000000000001800L}); - public static final BitSet FOLLOW_chamadaMetodo_in_manipulacaoObjetos1318 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_104_in_manipulacaoObjetos1379 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_classe_in_manipulacaoObjetos1384 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_aritmetica1462 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_101_in_aritmetica1486 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_aritmetica1510 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_aritmetica1534 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_aritmetica1558 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_aritmetica1582 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_aritmetica1606 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_load1680 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load1698 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load1716 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_load1734 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_load1752 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_load1770 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_load1788 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load1806 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_load1824 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_load1842 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_load1860 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_load1878 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load1896 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1914 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load1932 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load1950 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_loadint2000 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2006 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_103_in_loadint2026 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2032 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_loadint2052 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2058 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_store2120 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_store2138 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_99_in_store2156 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_100_in_store2174 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_store2192 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_store2210 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_store2228 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_store2246 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_storeint2300 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2306 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_storeint2327 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2333 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_logica2393 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_logica2412 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_102_in_logica2431 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_desvio2482 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2488 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_desvio2507 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2513 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_desvio2532 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2538 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_desvio2557 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2563 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_desvio2582 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2588 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_desvio2607 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2613 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2632 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2638 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_desvio2657 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2663 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_desvio2682 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2688 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2707 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2713 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2732 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2738 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2757 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2763 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio2782 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2788 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_106_in_pilha2849 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_107_in_pilha2867 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_pilha2885 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_classe2951 = new BitSet(new long[]{0x0000040000000000L}); - public static final BitSet FOLLOW_42_in_classe2953 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_classe2962 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INIT_in_chamadaMetodo2996 = new BitSet(new long[]{0x0000000320000800L}); - public static final BitSet FOLLOW_ID_in_chamadaMetodo3004 = new BitSet(new long[]{0x0000000320000800L}); - public static final BitSet FOLLOW_argumentos_in_chamadaMetodo3008 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_32_in_chamadaMetodo3012 = new BitSet(new long[]{0x0000000220000800L}); - public static final BitSet FOLLOW_argumentos_in_chamadaMetodo3014 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_34_in_chamadaMetodo3016 = new BitSet(new long[]{0x0000000060002000L}); - public static final BitSet FOLLOW_tipo_in_chamadaMetodo3024 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_33_in_argumentos3069 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_argumentos3096 = new BitSet(new long[]{0x0000000020000802L}); - public static final BitSet FOLLOW_TIPO_REF_in_argumentos3111 = new BitSet(new long[]{0x0000000020000802L}); - public static final BitSet FOLLOW_33_in_contagemParametros3150 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_contagemParametros3167 = new BitSet(new long[]{0x0000000020000802L}); - public static final BitSet FOLLOW_TIPO_REF_in_contagemParametros3179 = new BitSet(new long[]{0x0000000020000802L}); - public static final BitSet FOLLOW_ID_in_campo3221 = new BitSet(new long[]{0x0000040000000000L}); - public static final BitSet FOLLOW_42_in_campo3223 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_campo3231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NEWLINE_in_definicaoClasse502 = new BitSet(new long[]{0x0000028000000002L}); + public static final BitSet FOLLOW_42_in_superClasse563 = new BitSet(new long[]{0x0000000008000800L}); + public static final BitSet FOLLOW_ID_in_superClasse570 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_REF_in_superClasse578 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_membroClasse600 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); + public static final BitSet FOLLOW_111_in_membroClasse602 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse605 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse607 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_membroClasse625 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_INIT_in_membroClasse627 = new BitSet(new long[]{0x0000000640000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse630 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_33_in_membroClasse634 = new BitSet(new long[]{0x0000000440000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse636 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_membroClasse638 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse645 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse647 = new BitSet(new long[]{0xFFFFF14000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse650 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse652 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse656 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_38_in_membroClasse659 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_membroClasse691 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); + public static final BitSet FOLLOW_111_in_membroClasse693 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse696 = new BitSet(new long[]{0x0000000640000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse699 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_33_in_membroClasse703 = new BitSet(new long[]{0x0000000440000800L}); + public static final BitSet FOLLOW_parametros_in_membroClasse705 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_membroClasse707 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_membroClasse714 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse716 = new BitSet(new long[]{0xFFFFF14000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_limite_in_membroClasse719 = new BitSet(new long[]{0x0000000000800000L}); + public static final BitSet FOLLOW_NEWLINE_in_membroClasse721 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_operacao_in_membroClasse725 = new BitSet(new long[]{0xFFFFF04000800800L,0x00007FFFFFFFFFFFL}); + public static final BitSet FOLLOW_38_in_membroClasse728 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_limite777 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_limite779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_parametros801 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_parametros828 = new BitSet(new long[]{0x0000000040000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros843 = new BitSet(new long[]{0x0000000040000802L}); + public static final BitSet FOLLOW_50_in_retorno889 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_retorno907 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_110_in_retorno925 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_manipulacaoObjetos1004 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1006 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1008 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_manipulacaoObjetos1031 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1033 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1035 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_108_in_manipulacaoObjetos1072 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1074 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1076 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_109_in_manipulacaoObjetos1113 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1115 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1117 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_manipulacaoObjetos1154 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1156 = new BitSet(new long[]{0x0000000640000800L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1162 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_manipulacaoObjetos1222 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1224 = new BitSet(new long[]{0x0000000640000800L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1230 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_manipulacaoObjetos1291 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1293 = new BitSet(new long[]{0x0000000640000800L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1299 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_104_in_manipulacaoObjetos1359 = new BitSet(new long[]{0x0000000008000800L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos1366 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1374 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_aritmetica1453 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_101_in_aritmetica1477 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_aritmetica1501 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_aritmetica1525 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_aritmetica1549 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_aritmetica1573 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_aritmetica1597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_load1671 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load1689 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load1707 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_load1725 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_load1743 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_load1761 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_load1779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load1797 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_load1815 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_load1833 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_load1851 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_load1869 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load1887 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1905 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1923 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1941 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_loadint1991 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1997 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_103_in_loadint2017 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2023 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_loadint2043 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2049 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_store2111 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_store2129 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_store2147 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_100_in_store2165 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_store2183 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_store2201 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_store2219 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_store2237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_storeint2291 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2297 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_storeint2318 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2324 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_logica2384 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_logica2403 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_102_in_logica2422 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_desvio2473 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2479 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_desvio2498 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2504 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_desvio2523 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2529 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_desvio2548 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2554 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_desvio2573 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2579 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_desvio2598 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2604 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2623 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2629 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_desvio2648 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2654 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2673 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2679 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2698 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2704 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2723 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2729 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2748 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2754 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio2773 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_106_in_pilha2840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_107_in_pilha2858 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_pilha2876 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parametros_in_parametrosRetorno2931 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_33_in_parametrosRetorno2935 = new BitSet(new long[]{0x0000000440000800L}); + public static final BitSet FOLLOW_parametros_in_parametrosRetorno2937 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_parametrosRetorno2939 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_parametrosRetorno2947 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_contagemParametros2993 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ID_in_contagemParametros3010 = new BitSet(new long[]{0x0000000040000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_contagemParametros3022 = new BitSet(new long[]{0x0000000040000802L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index e2972ec..96ba162 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-18 18:25:45 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-19 19:24:03 package br.ufpb.iged.interpretador.parser; @@ -23,11 +23,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Def extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "REF", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__32=32; public static final int T__33=33; public static final int T__34=34; public static final int T__35=35; @@ -130,11 +129,12 @@ public class Def extends TreeFilter { public static final int NULL=24; public static final int PARAMS=25; public static final int PILHA=26; - public static final int RETURN=27; - public static final int STORE=28; - public static final int TIPO_REF=29; - public static final int VOID=30; - public static final int WS=31; + public static final int REF=27; + public static final int RETURN=28; + public static final int STORE=29; + public static final int TIPO_REF=30; + public static final int VOID=31; + public static final int WS=32; // delegates public TreeFilter[] getDelegates() { @@ -337,7 +337,7 @@ public final void bottomup() throws RecognitionException { alt2=3; } break; - case 35: + case 36: { alt2=4; } @@ -414,21 +414,21 @@ public final void bottomup() throws RecognitionException { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:51:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:51:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= . ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= . ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:7: ^( '.class' nome= ID ( ^( EXTENDS sup= . ) )? . ) { - match(input,35,FOLLOW_35_in_entraNaClasse257); if (state.failed) return ; + match(input,36,FOLLOW_36_in_entraNaClasse257); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse261); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:26: ( ^( EXTENDS sup= . ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -438,13 +438,16 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_1==DOWN) ) { int LA3_3 = input.LA(3); - if ( (LA3_3==TIPO_REF) ) { + if ( ((LA3_3 >= ARGS && LA3_3 <= 111)) ) { int LA3_4 = input.LA(4); - if ( (LA3_4==UP) ) { - int LA3_5 = input.LA(5); + if ( (LA3_4==DOWN) ) { + alt3=1; + } + else if ( (LA3_4==UP) ) { + int LA3_6 = input.LA(5); - if ( ((LA3_5 >= ARGS && LA3_5 <= 111)) ) { + if ( ((LA3_6 >= ARGS && LA3_6 <= 111)) ) { alt3=1; } } @@ -453,12 +456,14 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:52:27: ^( EXTENDS sup= . ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse265); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse269); if (state.failed) return ; + sup=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -513,10 +518,10 @@ public final void declaracaoVariavel() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:5: ( ^( FIELD_DECL ID tipo= . ) ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:67:7: ^( FIELD_DECL ID tipo= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel303); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel305); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel305); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel307); if (state.failed) return ; tipo=(BytecodesAST)input.LT(1); @@ -553,21 +558,26 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:79:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:79:1: entraNoConstrutor : ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; + BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:2: ( ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:4: ^( CONSTR_DECL INIT tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor340); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor342); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor342); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor344); if (state.failed) return ; + + tipoRet=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:34: ( . )+ int cnt4=0; loop4: do { @@ -609,12 +619,12 @@ else if ( (true) ) { case NULL: case PARAMS: case PILHA: + case REF: case RETURN: case STORE: case TIPO_REF: case VOID: case WS: - case 32: case 33: case 34: case 35: @@ -708,7 +718,7 @@ else if ( (true) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:34: . { matchAny(input); if (state.failed) return ; @@ -726,7 +736,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:37: ( ^( LIMIT lim= INTEIRO ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -735,12 +745,12 @@ else if ( (true) ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:80:38: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor349); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor356); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor353); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor360); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -760,10 +770,12 @@ else if ( (true) ) { SimboloMetodo metodo = new SimboloMetodo((INIT2!=null?INIT2.getText():null), null, escopoAtual); if (lim != null) metodo.setTamanhoMemoriaLocal(new Integer(lim.getText())); + metodo.setRetorno(tipoRet.getText()); metodo.def = INIT2; INIT2.simbolo = metodo; escopoAtual.definir(metodo); escopoAtual = metodo; + contador = 0; } } @@ -784,26 +796,26 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:94:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:96:1: entraNoMetodo : ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:2: ( ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:4: ^( METHOD_DECL ID tipoRet= . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo373); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo380); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo375); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo382); if (state.failed) return ; tipoRet=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:32: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:32: ( . )+ int cnt6=0; loop6: do { @@ -845,12 +857,12 @@ else if ( (true) ) { case NULL: case PARAMS: case PILHA: + case REF: case RETURN: case STORE: case TIPO_REF: case VOID: case WS: - case 32: case 33: case 34: case 35: @@ -944,7 +956,7 @@ else if ( (true) ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:32: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:32: . { matchAny(input); if (state.failed) return ; @@ -962,7 +974,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:35: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:35: ( ^( LIMIT lim= INTEIRO ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -971,12 +983,12 @@ else if ( (true) ) { } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:95:36: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:97:36: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo387); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo394); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo391); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo398); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1022,15 +1034,15 @@ else if ( (true) ) { // $ANTLR start "parametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:111:1: parametros : ^( PARAMS pars= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:113:1: parametros : ^( PARAMS pars= . ) ; public final void parametros() throws RecognitionException { BytecodesAST pars=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:2: ( ^( PARAMS pars= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:112:4: ^( PARAMS pars= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:2: ( ^( PARAMS pars= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:114:4: ^( PARAMS pars= . ) { - match(input,PARAMS,FOLLOW_PARAMS_in_parametros411); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_parametros418); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; pars=(BytecodesAST)input.LT(1); @@ -1067,13 +1079,13 @@ public final void parametros() throws RecognitionException { // $ANTLR start "entraNoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:123:1: entraNoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:125:1: entraNoCorpoMetodo : BODY ; public final void entraNoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:124:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:126:9: BODY { - match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo439); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_entraNoCorpoMetodo446); if (state.failed) return ; if ( state.backtracking==1 ) {escopoAtual = new EscopoLocal(escopoAtual);} @@ -1095,13 +1107,13 @@ public final void entraNoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDoCorpoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:127:1: saiDoCorpoMetodo : BODY ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:129:1: saiDoCorpoMetodo : BODY ; public final void saiDoCorpoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:5: ( BODY ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:128:9: BODY + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:5: ( BODY ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:130:9: BODY { - match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo465); if (state.failed) return ; + match(input,BODY,FOLLOW_BODY_in_saiDoCorpoMetodo472); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); @@ -1126,13 +1138,13 @@ public final void saiDoCorpoMetodo() throws RecognitionException { // $ANTLR start "saiDaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:135:1: saiDaClasse : '.class' ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:137:1: saiDaClasse : '.class' ; public final void saiDaClasse() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:135:13: ( '.class' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:135:15: '.class' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:137:13: ( '.class' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:137:15: '.class' { - match(input,35,FOLLOW_35_in_saiDaClasse492); if (state.failed) return ; + match(input,36,FOLLOW_36_in_saiDaClasse499); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); @@ -1157,13 +1169,13 @@ public final void saiDaClasse() throws RecognitionException { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:142:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:144:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:143:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:143:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:145:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo542); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo549); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); @@ -1189,13 +1201,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:151:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:153:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:152:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:152:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:154:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor558); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor565); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); @@ -1220,15 +1232,15 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "field" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:1: field : ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . . . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:1: field : ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ; public final void field() throws RecognitionException { BytecodesAST a=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:7: ( ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . . . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:9: ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . . . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:7: ( ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:9: ^( (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) . . ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:11: (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:11: (a= 'getfield' |a= 'getstatic' |a= 'putfield' |a= 'putstatic' ) int alt8=4; switch ( input.LA(1) ) { case 57: @@ -1262,30 +1274,30 @@ public final void field() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:12: a= 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:12: a= 'getfield' { - a=(BytecodesAST)match(input,57,FOLLOW_57_in_field580); if (state.failed) return ; + a=(BytecodesAST)match(input,57,FOLLOW_57_in_field587); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:29: a= 'getstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:29: a= 'getstatic' { - a=(BytecodesAST)match(input,58,FOLLOW_58_in_field588); if (state.failed) return ; + a=(BytecodesAST)match(input,58,FOLLOW_58_in_field595); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:47: a= 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:47: a= 'putfield' { - a=(BytecodesAST)match(input,108,FOLLOW_108_in_field596); if (state.failed) return ; + a=(BytecodesAST)match(input,108,FOLLOW_108_in_field603); if (state.failed) return ; } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:160:64: a= 'putstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:162:64: a= 'putstatic' { - a=(BytecodesAST)match(input,109,FOLLOW_109_in_field604); if (state.failed) return ; + a=(BytecodesAST)match(input,109,FOLLOW_109_in_field611); if (state.failed) return ; } break; @@ -1298,14 +1310,10 @@ public final void field() throws RecognitionException { matchAny(input); if (state.failed) return ; - matchAny(input); if (state.failed) return ; - - matchAny(input); if (state.failed) return ; - match(input, Token.UP, null); if (state.failed) return ; - if ( state.backtracking==1 ) { + if ( state.backtracking==1 ) { if (a.equals("getstatic") || a.equals("putstatic")) contador += 9; else @@ -1330,11 +1338,11 @@ public final void field() throws RecognitionException { // $ANTLR start "invoke" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:1: invoke : ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL . ^( ARGS . ) . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:171:1: invoke : ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ; public final void invoke() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:9: ( ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL . ^( ARGS . ) . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:169:11: ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL . ^( ARGS . ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:171:9: ( ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:171:11: ^( ( 'invokespecial' | 'invokestatic' | 'invokevirtual' ) . ^( METHOD_CALL ^( PARAMS . ) . ) ) { if ( (input.LA(1) >= 90 && input.LA(1) <= 92) ) { input.consume(); @@ -1351,12 +1359,10 @@ public final void invoke() throws RecognitionException { match(input, Token.DOWN, null); if (state.failed) return ; matchAny(input); if (state.failed) return ; - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke666); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke669); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - matchAny(input); if (state.failed) return ; - - match(input,ARGS,FOLLOW_ARGS_in_invoke671); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_invoke672); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; matchAny(input); if (state.failed) return ; @@ -1394,13 +1400,13 @@ public final void invoke() throws RecognitionException { // $ANTLR start "nenhumoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:175:1: nenhumoperando : ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:177:1: nenhumoperando : ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ; public final void nenhumoperando() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:2: ( ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:176:4: ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:178:2: ( ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:178:4: ^( ( RETURN | ARITMETICA | NEW | LOAD | STORE | LOGICA | PILHA ) . ) { - if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||input.LA(1)==NEW||(input.LA(1) >= PILHA && input.LA(1) <= STORE) ) { + if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||input.LA(1)==NEW||input.LA(1)==PILHA||(input.LA(1) >= RETURN && input.LA(1) <= STORE) ) { input.consume(); state.errorRecovery=false; state.failed=false; @@ -1440,11 +1446,11 @@ public final void nenhumoperando() throws RecognitionException { // $ANTLR start "umoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:182:1: umoperando : ^( ( DESVIO | LOAD | STORE ) . . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:184:1: umoperando : ^( ( DESVIO | LOAD | STORE ) . . ) ; public final void umoperando() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:183:9: ( ^( ( DESVIO | LOAD | STORE ) . . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:183:11: ^( ( DESVIO | LOAD | STORE ) . . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:185:9: ( ^( ( DESVIO | LOAD | STORE ) . . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:185:11: ^( ( DESVIO | LOAD | STORE ) . . ) { if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { input.consume(); @@ -1488,15 +1494,15 @@ public final void umoperando() throws RecognitionException { // $ANTLR start "label" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:188:1: label : ^( LABEL id= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:190:1: label : ^( LABEL id= . ) ; public final void label() throws RecognitionException, LabelException { BytecodesAST id=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:189:4: ( ^( LABEL id= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:189:6: ^( LABEL id= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:191:4: ( ^( LABEL id= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g:191:6: ^( LABEL id= . ) { - match(input,LABEL,FOLLOW_LABEL_in_label822); if (state.failed) return ; + match(input,LABEL,FOLLOW_LABEL_in_label823); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; id=(BytecodesAST)input.LT(1); @@ -1546,8 +1552,8 @@ public final void label() throws RecognitionException, LabelException { "\22\uffff}>"; static final String[] DFA1_transitionS = { "\1\12\1\1\1\2\1\13\1\uffff\1\6\4\uffff\1\14\1\uffff\1\11\1\12"+ - "\2\uffff\1\3\1\12\2\uffff\1\5\2\12\1\11\6\uffff\1\4\25\uffff"+ - "\2\7\37\uffff\3\10\17\uffff\2\7", + "\2\uffff\1\3\1\12\2\uffff\1\5\1\12\1\uffff\1\12\1\11\6\uffff"+ + "\1\4\24\uffff\2\7\37\uffff\3\10\17\uffff\2\7", "", "", "", @@ -1617,35 +1623,34 @@ public String getDescription() { public static final BitSet FOLLOW_saiDoMetodo_in_bottomup199 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup212 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDaClasse_in_bottomup225 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_entraNaClasse257 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_36_in_entraNaClasse257 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse261 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse265 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse269 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel303 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel305 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor340 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor342 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor349 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor353 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo373 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo375 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo387 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo391 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_PARAMS_in_parametros411 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo439 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo465 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_saiDaClasse492 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo542 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor558 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_field580 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_58_in_field588 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_108_in_field596 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_109_in_field604 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_invoke651 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invoke666 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARGS_in_invoke671 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_nenhumoperando716 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_umoperando770 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_LABEL_in_label822 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel305 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel307 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor342 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor344 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor356 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor360 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo380 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo382 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo394 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo398 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_PARAMS_in_parametros418 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_BODY_in_entraNoCorpoMetodo446 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BODY_in_saiDoCorpoMetodo472 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_saiDaClasse499 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo549 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor565 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_field587 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_58_in_field595 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_108_in_field603 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_109_in_field611 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_invoke654 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invoke669 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PARAMS_in_invoke672 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_nenhumoperando717 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_umoperando771 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_LABEL_in_label823 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.tokens b/src/br/ufpb/iged/interpretador/parser/Def.tokens index 0707515..940c7a7 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Def.tokens @@ -1,4 +1,3 @@ -T__32=32 T__33=33 T__34=34 T__35=35 @@ -101,22 +100,22 @@ NEWLINE=23 NULL=24 PARAMS=25 PILHA=26 -RETURN=27 -STORE=28 -TIPO_REF=29 -VOID=30 -WS=31 -'('=32 -'()'=33 -')'=34 -'.class'=35 -'.end class'=36 -'.end method'=37 -'.field'=38 -'.limit locals'=39 -'.method'=40 -'.super'=41 -'/'=42 +REF=27 +RETURN=28 +STORE=29 +TIPO_REF=30 +VOID=31 +WS=32 +'('=33 +'()'=34 +')'=35 +'.class'=36 +'.end class'=37 +'.end method'=38 +'.field'=39 +'.limit locals'=40 +'.method'=41 +'.super'=42 ':'=43 'aconst_null'=44 'aload'=45 diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 000143b..c9c4679 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-18 18:25:44 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-19 19:24:03 package br.ufpb.iged.interpretador.parser; @@ -25,11 +25,10 @@ @SuppressWarnings({"all", "warnings", "unchecked"}) public class Ref extends TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "'/'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" + "", "", "", "", "ARGS", "ARITMETICA", "BODY", "CONSTR_DECL", "DESVIO", "EXTENDS", "FIELD_DECL", "ID", "INIT", "INT", "INTEIRO", "LABEL", "LIMIT", "LOAD", "LOGICA", "MEMBRO_CLASSE", "METHOD_CALL", "METHOD_DECL", "NEW", "NEWLINE", "NULL", "PARAMS", "PILHA", "REF", "RETURN", "STORE", "TIPO_REF", "VOID", "WS", "'('", "'()'", "')'", "'.class'", "'.end class'", "'.end method'", "'.field'", "'.limit locals'", "'.method'", "'.super'", "':'", "'aconst_null'", "'aload'", "'aload_0'", "'aload_1'", "'aload_2'", "'aload_3'", "'areturn'", "'astore'", "'astore_0'", "'astore_1'", "'astore_2'", "'astore_3'", "'dup'", "'getfield'", "'getstatic'", "'goto'", "'iadd'", "'iand'", "'iconst_0'", "'iconst_1'", "'iconst_2'", "'iconst_3'", "'iconst_4'", "'iconst_5'", "'iconst_m1'", "'idiv'", "'if_icmpeq'", "'if_icmpge'", "'if_icmpgt'", "'if_icmple'", "'if_icmplt'", "'if_icmpne'", "'ifeq'", "'ifge'", "'ifgt'", "'ifle'", "'iflt'", "'ifne'", "'iinc'", "'iload'", "'iload_0'", "'iload_1'", "'iload_2'", "'iload_3'", "'imul'", "'ineg'", "'invokespecial'", "'invokestatic'", "'invokevirtual'", "'ior'", "'irem'", "'ireturn'", "'istore'", "'istore_0'", "'istore_1'", "'istore_2'", "'istore_3'", "'isub'", "'ixor'", "'ldc'", "'new'", "'nop'", "'pop'", "'pop2'", "'putfield'", "'putstatic'", "'return'", "'static'" }; public static final int EOF=-1; - public static final int T__32=32; public static final int T__33=33; public static final int T__34=34; public static final int T__35=35; @@ -132,11 +131,12 @@ public class Ref extends TreeFilter { public static final int NULL=24; public static final int PARAMS=25; public static final int PILHA=26; - public static final int RETURN=27; - public static final int STORE=28; - public static final int TIPO_REF=29; - public static final int VOID=30; - public static final int WS=31; + public static final int REF=27; + public static final int RETURN=28; + public static final int STORE=29; + public static final int TIPO_REF=30; + public static final int VOID=31; + public static final int WS=32; // delegates public TreeFilter[] getDelegates() { @@ -180,14 +180,11 @@ private void acessarCampo(String operacao, String nomeClasse, String nomeCampo) assembler.escreverOpcode(operacao); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); - - /*BytecodeAssembler.escreverInteiro(BytecodeAssembler.codigo, - BytecodeAssembler.ip, assembler.getConstantPool().indexOf(simboloClasse));*/ SimboloVariavel simboloVariavel = (SimboloVariavel) simboloClasse.resolver(nomeCampo); @@ -213,7 +210,7 @@ private void chamarMetodo(String instrucao, String nomeClasse, String nomeMetodo assembler.escreverOpcode(instrucao); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver(nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) @@ -241,7 +238,7 @@ private void newClass(String nomeClasse) { assembler.escreverOpcode("new"); SimboloClasse simboloClasse = - (SimboloClasse)tabelaSimbolos.global.resolver("L" + nomeClasse); + (SimboloClasse)tabelaSimbolos.global.resolver( nomeClasse); if(!assembler.getConstantPool().contains(simboloClasse)) @@ -256,15 +253,15 @@ private void newClass(String nomeClasse) { // $ANTLR start "topdown" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:118:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando ); public final void topdown() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:5: ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando ) int alt1=9; alt1 = dfa1.predict(input); switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: entraNaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:119:9: entraNaClasse { pushFollow(FOLLOW_entraNaClasse_in_topdown61); entraNaClasse(); @@ -275,7 +272,7 @@ public final void topdown() throws RecognitionException { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: entraNoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:120:9: entraNoMetodo { pushFollow(FOLLOW_entraNoMetodo_in_topdown71); entraNoMetodo(); @@ -286,7 +283,7 @@ public final void topdown() throws RecognitionException { } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: entraNoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:121:9: entraNoConstrutor { pushFollow(FOLLOW_entraNoConstrutor_in_topdown81); entraNoConstrutor(); @@ -297,7 +294,7 @@ public final void topdown() throws RecognitionException { } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: declaracaoVariavel + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:122:9: declaracaoVariavel { pushFollow(FOLLOW_declaracaoVariavel_in_topdown91); declaracaoVariavel(); @@ -308,7 +305,7 @@ public final void topdown() throws RecognitionException { } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: field + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:123:9: field { pushFollow(FOLLOW_field_in_topdown101); field(); @@ -319,7 +316,7 @@ public final void topdown() throws RecognitionException { } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: invoke + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:124:9: invoke { pushFollow(FOLLOW_invoke_in_topdown111); invoke(); @@ -330,7 +327,7 @@ public final void topdown() throws RecognitionException { } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:128:9: novaClasse + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:125:9: novaClasse { pushFollow(FOLLOW_novaClasse_in_topdown121); novaClasse(); @@ -341,7 +338,7 @@ public final void topdown() throws RecognitionException { } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:129:9: nenhumoperando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:126:9: nenhumoperando { pushFollow(FOLLOW_nenhumoperando_in_topdown131); nenhumoperando(); @@ -352,7 +349,7 @@ public final void topdown() throws RecognitionException { } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:9: umoperando + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:127:9: umoperando { pushFollow(FOLLOW_umoperando_in_topdown141); umoperando(); @@ -383,10 +380,10 @@ public final void topdown() throws RecognitionException { // $ANTLR start "bottomup" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:133:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:130:1: bottomup : ( saiDoMetodo | saiDoConstrutor ); public final void bottomup() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:3: ( saiDoMetodo | saiDoConstrutor ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:3: ( saiDoMetodo | saiDoConstrutor ) int alt2=2; int LA2_0 = input.LA(1); @@ -406,7 +403,7 @@ else if ( (LA2_0==CONSTR_DECL) ) { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:134:7: saiDoMetodo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:131:7: saiDoMetodo { pushFollow(FOLLOW_saiDoMetodo_in_bottomup162); saiDoMetodo(); @@ -417,7 +414,7 @@ else if ( (LA2_0==CONSTR_DECL) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:135:7: saiDoConstrutor + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:132:7: saiDoConstrutor { pushFollow(FOLLOW_saiDoConstrutor_in_bottomup170); saiDoConstrutor(); @@ -445,21 +442,21 @@ else if ( (LA2_0==CONSTR_DECL) ) { // $ANTLR start "entraNaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:139:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:136:1: entraNaClasse : ^( '.class' nome= ID ( ^( EXTENDS sup= . ) )? . ) ; public final void entraNaClasse() throws RecognitionException { BytecodesAST nome=null; BytecodesAST sup=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:7: ^( '.class' nome= ID ( ^( EXTENDS sup= TIPO_REF ) )? . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:5: ( ^( '.class' nome= ID ( ^( EXTENDS sup= . ) )? . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:7: ^( '.class' nome= ID ( ^( EXTENDS sup= . ) )? . ) { - match(input,35,FOLLOW_35_in_entraNaClasse193); if (state.failed) return ; + match(input,36,FOLLOW_36_in_entraNaClasse193); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; nome=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNaClasse197); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:26: ( ^( EXTENDS sup= TIPO_REF ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:26: ( ^( EXTENDS sup= . ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -469,13 +466,16 @@ public final void entraNaClasse() throws RecognitionException { if ( (LA3_1==DOWN) ) { int LA3_3 = input.LA(3); - if ( (LA3_3==TIPO_REF) ) { + if ( ((LA3_3 >= ARGS && LA3_3 <= 111)) ) { int LA3_4 = input.LA(4); - if ( (LA3_4==UP) ) { - int LA3_5 = input.LA(5); + if ( (LA3_4==DOWN) ) { + alt3=1; + } + else if ( (LA3_4==UP) ) { + int LA3_6 = input.LA(5); - if ( ((LA3_5 >= ARGS && LA3_5 <= 111)) ) { + if ( ((LA3_6 >= ARGS && LA3_6 <= 111)) ) { alt3=1; } } @@ -484,12 +484,14 @@ public final void entraNaClasse() throws RecognitionException { } switch (alt3) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:140:27: ^( EXTENDS sup= TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:137:27: ^( EXTENDS sup= . ) { match(input,EXTENDS,FOLLOW_EXTENDS_in_entraNaClasse201); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - sup=(BytecodesAST)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_entraNaClasse205); if (state.failed) return ; + sup=(BytecodesAST)input.LT(1); + + matchAny(input); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -511,7 +513,7 @@ public final void entraNaClasse() throws RecognitionException { if(!assembler.getConstantPool().contains(simboloClasse)) assembler.getConstantPool().add(simboloClasse); if ( sup!=null ) { - sup.simbolo = sup.escopo.resolver((sup!=null?sup.getText():null)); + sup.simbolo = sup.escopo.resolver("L"+sup.getText()); simboloClasse.superClasse = (SimboloClasse)sup.simbolo; System.out.println("linha "+nome.getLine()+": set "+(nome!=null?nome.getText():null)+ @@ -540,19 +542,19 @@ public final void entraNaClasse() throws RecognitionException { // $ANTLR start "declaracaoVariavel" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:159:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:156:1: declaracaoVariavel : ^( FIELD_DECL ID tip= . ) ; public final void declaracaoVariavel() throws RecognitionException { BytecodesAST ID1=null; BytecodesAST tip=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:160:5: ( ^( FIELD_DECL ID tip= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:160:7: ^( FIELD_DECL ID tip= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:5: ( ^( FIELD_DECL ID tip= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:157:7: ^( FIELD_DECL ID tip= . ) { - match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel243); if (state.failed) return ; + match(input,FIELD_DECL,FOLLOW_FIELD_DECL_in_declaracaoVariavel245); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel245); if (state.failed) return ; + ID1=(BytecodesAST)match(input,ID,FOLLOW_ID_in_declaracaoVariavel247); if (state.failed) return ; tip=(BytecodesAST)input.LT(1); @@ -584,21 +586,21 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor280); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor282); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor282); if (state.failed) return ; + INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor284); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:23: ( . )+ int cnt4=0; loop4: do { @@ -640,12 +642,12 @@ else if ( (true) ) { case NULL: case PARAMS: case PILHA: + case REF: case RETURN: case STORE: case TIPO_REF: case VOID: case WS: - case 32: case 33: case 34: case 35: @@ -739,7 +741,7 @@ else if ( (true) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:23: . { matchAny(input); if (state.failed) return ; @@ -757,7 +759,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:26: ( ^( LIMIT lim= INTEIRO ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -766,12 +768,12 @@ else if ( (true) ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor289); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor291); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor293); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoConstrutor295); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -811,23 +813,23 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo316); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo318); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo318); if (state.failed) return ; + ID3=(BytecodesAST)match(input,ID,FOLLOW_ID_in_entraNoMetodo320); if (state.failed) return ; matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:23: ( . )+ int cnt6=0; loop6: do { @@ -869,12 +871,12 @@ else if ( (true) ) { case NULL: case PARAMS: case PILHA: + case REF: case RETURN: case STORE: case TIPO_REF: case VOID: case WS: - case 32: case 33: case 34: case 35: @@ -968,7 +970,7 @@ else if ( (true) ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:23: . { matchAny(input); if (state.failed) return ; @@ -986,7 +988,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:26: ( ^( LIMIT lim= INTEIRO ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -995,12 +997,12 @@ else if ( (true) ) { } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:27: ^( LIMIT lim= INTEIRO ) { - match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo327); if (state.failed) return ; + match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo329); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo331); if (state.failed) return ; + lim=(BytecodesAST)match(input,INTEIRO,FOLLOW_INTEIRO_in_entraNoMetodo333); if (state.failed) return ; match(input, Token.UP, null); if (state.failed) return ; @@ -1040,13 +1042,13 @@ else if ( (true) ) { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:186:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:187:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:187:5: METHOD_DECL { - match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo351); if (state.failed) return ; + match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo353); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do metodo... "); @@ -1072,13 +1074,13 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:195:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:5: CONSTR_DECL { - match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor367); if (state.failed) return ; + match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor369); if (state.failed) return ; if ( state.backtracking==1 ) { System.out.println("Ref: Saindo do construtor... "); @@ -1104,36 +1106,83 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "field" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:1: field : ^( ( 'getfield' | 'getstatic' | 'putfield' | 'putstatic' ) classe= . . campo= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:1: field : ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) ; public final void field() throws RecognitionException { - BytecodesAST classe=null; - BytecodesAST campo=null; + BytecodesAST op=null; + BytecodesAST ref=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:8: ( ^( ( 'getfield' | 'getstatic' | 'putfield' | 'putstatic' ) classe= . . campo= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:10: ^( ( 'getfield' | 'getstatic' | 'putfield' | 'putstatic' ) classe= . . campo= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:8: ( ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:10: ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) { - if ( (input.LA(1) >= 57 && input.LA(1) <= 58)||(input.LA(1) >= 108 && input.LA(1) <= 109) ) { - input.consume(); - state.errorRecovery=false; - state.failed=false; - } - else { + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:12: (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) + int alt8=4; + switch ( input.LA(1) ) { + case 57: + { + alt8=1; + } + break; + case 58: + { + alt8=2; + } + break; + case 108: + { + alt8=3; + } + break; + case 109: + { + alt8=4; + } + break; + default: if (state.backtracking>0) {state.failed=true; return ;} - MismatchedSetException mse = new MismatchedSetException(null,input); - throw mse; + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); + + throw nvae; + } + switch (alt8) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:13: op= 'getfield' + { + op=(BytecodesAST)match(input,57,FOLLOW_57_in_field390); if (state.failed) return ; - match(input, Token.DOWN, null); if (state.failed) return ; - classe=(BytecodesAST)input.LT(1); + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:31: op= 'getstatic' + { + op=(BytecodesAST)match(input,58,FOLLOW_58_in_field398); if (state.failed) return ; - matchAny(input); if (state.failed) return ; + } + break; + case 3 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:50: op= 'putfield' + { + op=(BytecodesAST)match(input,108,FOLLOW_108_in_field406); if (state.failed) return ; - matchAny(input); if (state.failed) return ; + } + break; + case 4 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:68: op= 'putstatic' + { + op=(BytecodesAST)match(input,109,FOLLOW_109_in_field414); if (state.failed) return ; + + } + break; + + } - campo=(BytecodesAST)input.LT(1); + + match(input, Token.DOWN, null); if (state.failed) return ; + ref=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; @@ -1145,7 +1194,20 @@ public final void field() throws RecognitionException { if ( state.backtracking==1 ) { - acessarCampo("getfield", classe.getText(), campo.getText()); + String[] tokens = ref.getText().split("/"); + String campo = tokens[tokens.length - 1]; + String classe = "L"; + + int i; + + for (i = 0; i < tokens.length - 1; i++){ + if (i == tokens.length - 2) + classe += tokens[i]; + else + classe += tokens[i]+"/"; + } + + acessarCampo(op.getText(), classe, campo); } } @@ -1166,64 +1228,63 @@ public final void field() throws RecognitionException { // $ANTLR start "invoke" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:1: invoke : ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:1: invoke : ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) ; public final void invoke() throws RecognitionException { BytecodesAST op=null; - BytecodesAST classe=null; - BytecodesAST nome=null; + BytecodesAST ref=null; BytecodesAST a=null; BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:9: ( ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:12: ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) classe= . ^( METHOD_CALL nome= . ^( ARGS a= . ) tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:9: ( ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:12: ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:14: (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) - int alt8=3; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:14: (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) + int alt9=3; switch ( input.LA(1) ) { case 90: { - alt8=1; + alt9=1; } break; case 91: { - alt8=2; + alt9=2; } break; case 92: { - alt8=3; + alt9=3; } break; default: if (state.backtracking>0) {state.failed=true; return ;} NoViableAltException nvae = - new NoViableAltException("", 8, 0, input); + new NoViableAltException("", 9, 0, input); throw nvae; } - switch (alt8) { + switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:15: op= 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:15: op= 'invokespecial' { - op=(BytecodesAST)match(input,90,FOLLOW_90_in_invoke461); if (state.failed) return ; + op=(BytecodesAST)match(input,90,FOLLOW_90_in_invoke471); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:38: op= 'invokestatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:38: op= 'invokestatic' { - op=(BytecodesAST)match(input,91,FOLLOW_91_in_invoke469); if (state.failed) return ; + op=(BytecodesAST)match(input,91,FOLLOW_91_in_invoke479); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:213:60: op= 'invokevirtual' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:60: op= 'invokevirtual' { - op=(BytecodesAST)match(input,92,FOLLOW_92_in_invoke477); if (state.failed) return ; + op=(BytecodesAST)match(input,92,FOLLOW_92_in_invoke487); if (state.failed) return ; } break; @@ -1232,18 +1293,14 @@ public final void invoke() throws RecognitionException { match(input, Token.DOWN, null); if (state.failed) return ; - classe=(BytecodesAST)input.LT(1); + ref=(BytecodesAST)input.LT(1); matchAny(input); if (state.failed) return ; - match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke487); if (state.failed) return ; + match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_invoke497); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; - nome=(BytecodesAST)input.LT(1); - - matchAny(input); if (state.failed) return ; - - match(input,ARGS,FOLLOW_ARGS_in_invoke496); if (state.failed) return ; + match(input,PARAMS,FOLLOW_PARAMS_in_invoke500); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; a=(BytecodesAST)input.LT(1); @@ -1263,14 +1320,23 @@ public final void invoke() throws RecognitionException { match(input, Token.UP, null); if (state.failed) return ; - if ( state.backtracking==1 ) { - if (op.equals("invokespecial")) { - System.out.println("chamando construtor "+nome.getText()+"("+a.getText()+")"); - chamarMetodo(op.getText(), classe.getText(), nome.getText(), a.getText(), ""); - } else { - System.out.println("chamando metodo "+nome.getText()+"("+a.getText()+")"+tipoRet.getText()); - chamarMetodo(op.getText(), classe.getText(), nome.getText(), a.getText(), tipoRet.getText()); - } + if ( state.backtracking==1 ) { + + String[] tokens = ref.getText().split("/"); + String nomeMetodo = tokens[tokens.length - 1]; + String classe = "L"; + + int i; + + for (i = 0; i < tokens.length - 1; i++){ + if (i == tokens.length - 2) + classe += tokens[i]; + else + classe += tokens[i]+"/"; + } + + System.out.println("chamando metodo "+nomeMetodo+"("+a.getText()+")"+tipoRet.getText()); + chamarMetodo(op.getText(), classe, nomeMetodo, a.getText(), tipoRet.getText()); } } @@ -1291,15 +1357,15 @@ public final void invoke() throws RecognitionException { // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:225:1: novaClasse : ^( NEW classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:244:1: novaClasse : ^( NEW classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:3: ( ^( NEW classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:5: ^( NEW classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:3: ( ^( NEW classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:5: ^( NEW classe= . ) { - match(input,NEW,FOLLOW_NEW_in_novaClasse545); if (state.failed) return ; + match(input,NEW,FOLLOW_NEW_in_novaClasse549); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; classe=(BytecodesAST)input.LT(1); @@ -1310,7 +1376,7 @@ public final void novaClasse() throws RecognitionException { if ( state.backtracking==1 ) { - newClass(classe.getText()); + newClass("L"+classe.getText()); } } @@ -1331,15 +1397,15 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "nenhumoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:232:1: nenhumoperando : ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:251:1: nenhumoperando : ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ; public final void nenhumoperando() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:233:2: ( ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:233:4: ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:2: ( ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:4: ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) { - if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||(input.LA(1) >= PILHA && input.LA(1) <= STORE) ) { + if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||input.LA(1)==PILHA||(input.LA(1) >= RETURN && input.LA(1) <= STORE) ) { input.consume(); state.errorRecovery=false; state.failed=false; @@ -1381,14 +1447,14 @@ public final void nenhumoperando() throws RecognitionException { // $ANTLR start "umoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:239:1: umoperando : ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:258:1: umoperando : ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ; public final void umoperando() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:240:9: ( ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:240:11: ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:9: ( ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:11: ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) { if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { input.consume(); @@ -1451,8 +1517,8 @@ public final void umoperando() throws RecognitionException, LabelException { "\20\uffff}>"; static final String[] DFA1_transitionS = { "\1\11\1\uffff\1\3\1\12\1\uffff\1\4\6\uffff\1\10\1\11\2\uffff"+ - "\1\2\1\7\3\uffff\2\11\1\10\6\uffff\1\1\25\uffff\2\5\37\uffff"+ - "\3\6\17\uffff\2\5", + "\1\2\1\7\3\uffff\1\11\1\uffff\1\11\1\10\6\uffff\1\1\24\uffff"+ + "\2\5\37\uffff\3\6\17\uffff\2\5", "", "", "", @@ -1500,7 +1566,7 @@ public DFA1(BaseRecognizer recognizer) { this.transition = DFA1_transition; } public String getDescription() { - return "121:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando );"; + return "118:1: topdown : ( entraNaClasse | entraNoMetodo | entraNoConstrutor | declaracaoVariavel | field | invoke | novaClasse | nenhumoperando | umoperando );"; } } @@ -1516,30 +1582,32 @@ public String getDescription() { public static final BitSet FOLLOW_umoperando_in_topdown141 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDoMetodo_in_bottomup162 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_saiDoConstrutor_in_bottomup170 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_35_in_entraNaClasse193 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_36_in_entraNaClasse193 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_entraNaClasse197 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); public static final BitSet FOLLOW_EXTENDS_in_entraNaClasse201 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_TIPO_REF_in_entraNaClasse205 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel243 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_declaracaoVariavel245 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor280 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INIT_in_entraNoConstrutor282 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor289 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor293 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo316 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_entraNoMetodo318 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); - public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo327 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo331 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo351 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor367 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_set_in_field383 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_90_in_invoke461 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_91_in_invoke469 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_92_in_invoke477 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_METHOD_CALL_in_invoke487 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARGS_in_invoke496 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_NEW_in_novaClasse545 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_nenhumoperando572 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_set_in_umoperando626 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_FIELD_DECL_in_declaracaoVariavel245 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_declaracaoVariavel247 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_CONSTR_DECL_in_entraNoConstrutor282 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INIT_in_entraNoConstrutor284 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoConstrutor291 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoConstrutor295 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_entraNoMetodo318 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_entraNoMetodo320 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL}); + public static final BitSet FOLLOW_LIMIT_in_entraNoMetodo329 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_INTEIRO_in_entraNoMetodo333 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_METHOD_DECL_in_saiDoMetodo353 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTR_DECL_in_saiDoConstrutor369 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_field390 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_58_in_field398 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_108_in_field406 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_109_in_field414 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_90_in_invoke471 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_91_in_invoke479 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_92_in_invoke487 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_METHOD_CALL_in_invoke497 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_PARAMS_in_invoke500 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_NEW_in_novaClasse549 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_nenhumoperando576 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_set_in_umoperando630 = new BitSet(new long[]{0x0000000000000004L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.tokens b/src/br/ufpb/iged/interpretador/parser/Ref.tokens index 0707515..940c7a7 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.tokens +++ b/src/br/ufpb/iged/interpretador/parser/Ref.tokens @@ -1,4 +1,3 @@ -T__32=32 T__33=33 T__34=34 T__35=35 @@ -101,22 +100,22 @@ NEWLINE=23 NULL=24 PARAMS=25 PILHA=26 -RETURN=27 -STORE=28 -TIPO_REF=29 -VOID=30 -WS=31 -'('=32 -'()'=33 -')'=34 -'.class'=35 -'.end class'=36 -'.end method'=37 -'.field'=38 -'.limit locals'=39 -'.method'=40 -'.super'=41 -'/'=42 +REF=27 +RETURN=28 +STORE=29 +TIPO_REF=30 +VOID=31 +WS=32 +'('=33 +'()'=34 +')'=35 +'.class'=36 +'.end class'=37 +'.end method'=38 +'.field'=39 +'.limit locals'=40 +'.method'=41 +'.super'=42 ':'=43 'aconst_null'=44 'aload'=45 diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java index 5db773e..ed6213d 100644 --- a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -1033,7 +1033,7 @@ public void iniciarNovoMetodo(SimboloMetodo metodo, boolean estatico) { if (!estatico) - frameAtual.inserirThis(frameAtual.pilhaOperandos[frameAtual.sp - i]); + frameAtual.inserirThis(pilha[topoPilha - 1].pilhaOperandos[pilha[topoPilha - 1].sp - i]); tamanhoCodigo = frameAtual.pc.getSimboloMetodo().obterTamanhoCodigo(); diff --git a/src/br/ufpb/iged/interpretador/testes/Test.java b/src/br/ufpb/iged/interpretador/testes/Test.java index ef9ddbd..f704357 100755 --- a/src/br/ufpb/iged/interpretador/testes/Test.java +++ b/src/br/ufpb/iged/interpretador/testes/Test.java @@ -1,5 +1,8 @@ package br.ufpb.iged.interpretador.testes; +import java.util.ArrayList; +import java.util.List; + import org.antlr.runtime.*; import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; @@ -11,7 +14,7 @@ public class Test { public static void main(String[] args) throws Exception { - CharStream entrada = new ANTLRFileStream("entrada.txt"); + /*CharStream entrada = new ANTLRFileStream("entrada.txt"); AssemblerLexer lexer = new AssemblerLexer(entrada); @@ -23,9 +26,31 @@ public static void main(String[] args) throws Exception { for (int i = 0; i < BytecodeAssembler.codigo.length ; i++) { System.out.print(BytecodeAssembler.codigo[i] + " "); + - } + }*/ + + String a = "oieerere/fldlfkf/Classe/xyz"; + String [] tokens = a.split("/"); + String campo = tokens[tokens.length - 1]; + System.out.println(campo); + String classe = "L"; + + int i; + + for (i = 0; i < tokens.length - 1; i++){ + if (i == tokens.length - 2) + classe += tokens[i]; + else + classe += tokens[i]+"/"; + } + + System.out.println(classe); + + String b = "khklgh/Classe/"; + String c = "L"+b.substring(0, b.length() - 1); + System.out.println(c); } From 2ded475d4febcc0f6111741fcda99783f7caf95d Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Thu, 20 Sep 2012 12:10:02 -0300 Subject: [PATCH 71/79] commit --- .../principal/Interpretador$1.class | Bin 1637 -> 1637 bytes .../principal/Interpretador.class | Bin 6953 -> 6953 bytes .../iged/interpretador/principal/Objeto.class | Bin 1145 -> 1145 bytes .../ufpb/iged/interpretador/testes/Test.class | Bin 1441 -> 2958 bytes classes/Classe.class | 10 +++++++++ classes/Main.class | 8 +++++++- .../interpretador/principal/ClassLoader.java | 4 ---- .../principal/Interpretador.java | 5 ----- .../principal/MaquinaVirtual.java | 5 ++--- .../iged/interpretador/principal/Objeto.java | 4 ---- .../interpretador/testes/InstrucaoTest.java | 8 -------- .../ufpb/iged/interpretador/testes/Test.java | 19 ++++++++---------- 12 files changed, 27 insertions(+), 36 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador$1.class index 225229f8e5934c9fc1ea4fe8f776738968b3d1a2..09d699d353264e2a90ec5fff788a32166d7d00d8 100644 GIT binary patch delta 43 zcmaFL^OR@9Zx%+~$$wZ}7!4*nvIcXSFt9L~GO#h2PoB#f&1%cQ$6z=4FKY$>BQXoY delta 43 zcmaFL^OR@9Zx%+Q$$wZ}7)>WTvIcWnGO#dMF|aY%OrFac&FaL!$KX8qFKY$>CDaS$ diff --git a/bin/br/ufpb/iged/interpretador/principal/Interpretador.class b/bin/br/ufpb/iged/interpretador/principal/Interpretador.class index 735a87b24db2ea41e0b4611ac60bba0ea2a62c7b..ab3c88c38609a39d428a69af26dfbb68fca8c97b 100644 GIT binary patch delta 252 zcmWNLNlO9&7>1v*<{}hDjpY!*bn9TnfL_cFiA1y!QA0#T5SSERl#qyMIkn)yFIs7* z!vxv}BmR&6LBUm&Z@|iO(;~j1k6>z;X>o{;VKAK?{?#F+~?MbTfy;JOeB+ z%pxOrq*!K*6-}%%%^FK=$Zw?Dxk)QI+Sww)Hhtu!($k0)b$>^9N<`VCpM3^7WSj%i z95bt)$0_TalcoGq>J1sG3L!4&;8H7BdVS3hH^jLm$sHN)73M)99<}mBo@WZYaKtMo fyh%NJX1q(S z&6G^jyTqU2pK$O$_#U60p3moL1RKHTyXmp%#4nC%8-DpUoj?>f3v>~qk2w7#7-5M~ zR+wa!Db@(H&I}vOvqh9`ZFl9z``Wul2m5q$fR{stNJ(Mfb3CK`ta5Vr$TQ3dW1KO| zDG|=qlxLYMHo0a8X{85UM)(F7xAaidNlDdrOi(7kJs}>LqrxJOBze+FRh2bT)H&vv g3tpt{yENV;V%eUS9{P|YD`d3A(fp6sJfp}zZI~|weu4E@^=rCj>2^*#pT25j zJb~ab(>A^10u7yABLe<@Cu>B|fUt@Hf&%MOrfm$C@@c~z*3*_D5KTE5-5SwdQ+_W_ z`n?IWDA1XDJZqBFl-EsLU}NW4>Y-Ibo@?5`_%+>-5?c|+?R98O(4ZCVEL3_TyhMuA4d_FO%y@Asy>2%4}-Iv5v-b=K0a zV2i+kI?fbyw`jOpZ?S0P83s3HOc`zjo3TyeZl_tDsnv${Pv~ydCisy>%b}5YA z=u*%rka%LSlg2pfDx*6p_FylwY1&24EoB^oRdQymUYXRkZW*wBpo*kB$q3rfE#tCZ z!2IvHRB9mkKk4imiQoWw6dV*dSSKti>*GSDUR1X2VS!M=b#ktr*9A^>cGU|;ZJ72Y z`77-7l4~c!IErT!JpD+E4^6ZC^D3T2g6-{;*zK`ut(%T^fsN)ZmZE}V0?iNmi_`4F zzLIHW4L8gnA6M}_PLM2EHD=Bc@Qw9F(1()>`X5zUkyLRCrv;R2x>YjHkINn#=vv)n z5hSrGgaHB3D#tIXNZ}l{=!Jq|X9c=zwdN|EMLSsyNt{=40WUGYo>O%~U;_iZ(lzcK z!pjPVmuThDfT$Re%n&HZ7=`ePz!t|e43|G`+{#+xljB;yCA&wPn!X;wtMovV@pw(e z>$ptGV!<*Q?%lN$8WT%9=s$vor<7*jq&f^|Z{(xMtRX8XJgo~v#yOg$e1@=cUQz;J$r1{T8t{L+5%;Y(}P&qFZxC(9xY^_25%O?a$bErb; z@*rb!u=&ghLc+A8L#0suL8(4X~ zzyLmuc*)>X;g`m@;5)Eq4xyha%Mm{1G7v!{pK5gj-)s04##*c+$a;?bTzN{u_)>&a z0in*LX*3#}Lvv~#n@9J~Ve7ehw2bbXL)+jy+DE%*(J_a834h#QhIXmpXy7i|XK`d6 z$jZZ-&uGNy_5*V1JThk#uC9efA{^_o`gbx zxKhTIXgU#UI2yi-v#~JO0@>SWk;w7TJ!FX*55~ehRp3PEF4}6XNpPt-5t<2$3XDH{ zXJJ;V2uT&WL_~^3(-JSz5Ra5$`m<%^7sVRo&PMK((QIH0fy-#-b1lc~c?XJOD>k4D zF$TXGM-V3uHRB4lBf~3)g;rc+y57SMe1s0%;(g#dbmB)I>A&*(0lM)UCI7$y(SRP& zh{KgE&B*Ks6>q|&u88oV2#@(`!e1y6(MPR+;w?3gHHBRwTl-U^nOAqb^=t@i9k@n4#_y2rkgApn@9; zK2fk)L5o6bfz|~aL}bOhg1*WOpMBi3YnzX@-Xe|LHHkE C12A3y delta 781 zcmZvaO;giQ6o%j1Cb^*mg+gr$RiFs8v=A%`S`x#oaH6zaGM1K)Z|D-o6kNqM2FcLNOV%=} zj>V_k#0>@Gn6U3j6ZT^s?vO0Aq?fA|v` zqM`|n&Dn%M;2=1iOzsPX)XWE*?sw4TkEaFi zu(*fGfSBAD3vY4e3ljIk!YA~9#JOZZOgR{GFp?Jb(D9#?3;mmaDl(TL6l#YK(ZhnX zP5jZcvau;k#1P;hYlUmJHzIVpKhGQIGT9m7eoopg%QxeHCSz!16-L7XCe zH2DNF=trK;CI;~kDQwX%_nOvG!wBlBd)~eFCU$X?N?q_9OyU-3Xn2Jwig^gTgWDAI z68IVJkSCxWPmsklO>GOkn4y?N*gDLT$1z8w2!umYA#vR02p!uH1G*v};?Gl!2f050 CC7D40 diff --git a/classes/Classe.class b/classes/Classe.class index 65f005a..eeaf7bd 100644 --- a/classes/Classe.class +++ b/classes/Classe.class @@ -3,6 +3,16 @@ .field fachdf I .field zavcui I .field lohdg I +.field attr1 I +.field atr I +.method (II) V + iload_0 + iload_1 + putfield Classe/attr1 I + iload_2 + putfield Classe/atr I + return +.end method .method kioeot(III) I ldc 3 ldc 6 diff --git a/classes/Main.class b/classes/Main.class index 8bd6738..5ede9ce 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -79,8 +79,14 @@ L2: ineg astore 11 new Classe dup - invokespecial Classe/() V iconst_3 + ldc 8 + invokespecial Classe/(II) V + pop2 + getfield Classe/attr1 I + pop + dup + getfield Classe/atr I putfield Classe/asdf I iconst_5 putfield Classe/zavcui I diff --git a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java index aca494c..379b81a 100644 --- a/src/br/ufpb/iged/interpretador/principal/ClassLoader.java +++ b/src/br/ufpb/iged/interpretador/principal/ClassLoader.java @@ -1,12 +1,8 @@ package br.ufpb.iged.interpretador.principal; -import java.util.Collection; import java.util.List; -import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; import br.ufpb.iged.interpretador.excecoes.ClassNotFoundException; -import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; -import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; public class ClassLoader { diff --git a/src/br/ufpb/iged/interpretador/principal/Interpretador.java b/src/br/ufpb/iged/interpretador/principal/Interpretador.java index c3d4d56..412f0e7 100755 --- a/src/br/ufpb/iged/interpretador/principal/Interpretador.java +++ b/src/br/ufpb/iged/interpretador/principal/Interpretador.java @@ -2,9 +2,6 @@ import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Scanner; import org.antlr.runtime.ANTLRFileStream; import org.antlr.runtime.ANTLRStringStream; @@ -27,8 +24,6 @@ import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesAST; import br.ufpb.iged.interpretador.symboltable.classes.BytecodesErrorNode; -import br.ufpb.iged.interpretador.symboltable.classes.EscopoGlobal; -import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; import br.ufpb.iged.interpretador.symboltable.classes.TabelaSimbolos; diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java index ed6213d..d5070e1 100644 --- a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -29,7 +29,8 @@ public class MaquinaVirtual { private int tamanhoCodigo; - + private Scanner in = new Scanner(System.in); + public void cpu() throws ClassNotFoundException { do{ @@ -1090,8 +1091,6 @@ protected void exibirTela(StackFrame frame) { System.out .print("Pressione qualquer tecla para ir para a próxima instruçăo: "); - Scanner in = new Scanner(System.in); - in.next(); diff --git a/src/br/ufpb/iged/interpretador/principal/Objeto.java b/src/br/ufpb/iged/interpretador/principal/Objeto.java index f9524f4..2269c25 100644 --- a/src/br/ufpb/iged/interpretador/principal/Objeto.java +++ b/src/br/ufpb/iged/interpretador/principal/Objeto.java @@ -1,9 +1,5 @@ package br.ufpb.iged.interpretador.principal; -import java.util.Arrays; -import java.util.List; - -import br.ufpb.iged.interpretador.symboltable.classes.Simbolo; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; public class Objeto { diff --git a/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java b/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java index a98f350..e201cb4 100644 --- a/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java +++ b/src/br/ufpb/iged/interpretador/testes/InstrucaoTest.java @@ -1,25 +1,17 @@ package br.ufpb.iged.interpretador.testes; -import static org.junit.Assert.*; - import java.io.IOException; -import java.util.Scanner; import org.antlr.runtime.RecognitionException; import org.junit.Before; import org.junit.Test; -import br.ufpb.iged.interpretador.bytecodeassembler.asm.Definicao; import br.ufpb.iged.interpretador.excecoes.AcessoIndevidoMemoriaException; import br.ufpb.iged.interpretador.excecoes.ClassNotFoundException; import br.ufpb.iged.interpretador.excecoes.LabelException; import br.ufpb.iged.interpretador.principal.ClassLoader; import br.ufpb.iged.interpretador.principal.Interpretador; import br.ufpb.iged.interpretador.principal.MaquinaVirtual; -import br.ufpb.iged.interpretador.principal.Objeto; -import br.ufpb.iged.interpretador.principal.ProgramCounter; -import br.ufpb.iged.interpretador.principal.Referencia; -import br.ufpb.iged.interpretador.principal.StackFrame; import br.ufpb.iged.interpretador.symboltable.classes.SimboloClasse; import br.ufpb.iged.interpretador.symboltable.classes.SimboloMetodo; diff --git a/src/br/ufpb/iged/interpretador/testes/Test.java b/src/br/ufpb/iged/interpretador/testes/Test.java index f704357..1b291a6 100755 --- a/src/br/ufpb/iged/interpretador/testes/Test.java +++ b/src/br/ufpb/iged/interpretador/testes/Test.java @@ -1,8 +1,5 @@ package br.ufpb.iged.interpretador.testes; -import java.util.ArrayList; -import java.util.List; - import org.antlr.runtime.*; import br.ufpb.iged.interpretador.bytecodeassembler.asm.BytecodeAssembler; @@ -14,7 +11,7 @@ public class Test { public static void main(String[] args) throws Exception { - /*CharStream entrada = new ANTLRFileStream("entrada.txt"); + CharStream entrada = new ANTLRFileStream("entrada.txt"); AssemblerLexer lexer = new AssemblerLexer(entrada); @@ -28,21 +25,21 @@ public static void main(String[] args) throws Exception { System.out.print(BytecodeAssembler.codigo[i] + " "); - }*/ + } String a = "oieerere/fldlfkf/Classe/xyz"; - String [] tokens = a.split("/"); - String campo = tokens[tokens.length - 1]; + String [] toks = a.split("/"); + String campo = toks[toks.length - 1]; System.out.println(campo); String classe = "L"; int i; - for (i = 0; i < tokens.length - 1; i++){ - if (i == tokens.length - 2) - classe += tokens[i]; + for (i = 0; i < toks.length - 1; i++){ + if (i == toks.length - 2) + classe += toks[i]; else - classe += tokens[i]+"/"; + classe += toks[i]+"/"; } System.out.println(classe); From 474bb9bb37617c4d8c70796197af4c3fe002748b Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Thu, 20 Sep 2012 19:06:47 -0300 Subject: [PATCH 72/79] commit --- .../ufpb/iged/interpretador/gramaticas/Ref.g | 5 +- .../iged/interpretador/parser/Ref$DFA1.class | Bin 1311 -> 1311 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 28158 -> 28323 bytes classes/Classe.class | 38 +++---- classes/Composicao.class | 5 +- classes/Main.class | 6 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 5 +- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 28 +++--- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 95 +++++++++--------- 11 files changed, 101 insertions(+), 85 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index 97aaaa9..7628cc2 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -156,7 +156,10 @@ entraNaClasse declaracaoVariavel : ^(FIELD_DECL ID tip =.) { - $ID.simbolo.tipo = resolverTipo($tip.getText()); + if ($tip.getText().startsWith("L")) + $ID.simbolo.tipo = resolverTipo($tip.getText().substring(0, $tip.getText().length() - 1)); + else + $ID.simbolo.tipo = resolverTipo($tip.getText()); System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); } ; diff --git a/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class b/bin/br/ufpb/iged/interpretador/parser/Ref$DFA1.class index 54c72726337450b5b2d985d02723bdbdef09f277..22f9437f037f97b4b4953fdfaa406c3dea65c031 100644 GIT binary patch delta 59 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 diff --git a/classes/Classe.class b/classes/Classe.class index eeaf7bd..c662489 100644 --- a/classes/Classe.class +++ b/classes/Classe.class @@ -13,25 +13,25 @@ putfield Classe/atr I return .end method -.method kioeot(III) I - ldc 3 - ldc 6 - iadd - istore_0 - iconst_2 - iconst_3 - imul - istore_1 - iconst_2 - iconst_1 - isub - istore_2 - ldc 25 - ldc 5 - idiv - istore_3 - ldc 7 - iconst_2 +.method kioeot(IIII) I + iload_1 + iconst_2 + imul +L2: iload_2 + if_icmpeq L1 + iload_0 + iload 4 + putfield Classe/atr I + iload_2 + ireturn +L1: iload_1 + iconst_2 + idiv + istore_2 + iconst_3 + iload_2 + isub + ifeq L2 ireturn .end method .end class \ No newline at end of file diff --git a/classes/Composicao.class b/classes/Composicao.class index 8f83081..5c7475a 100644 --- a/classes/Composicao.class +++ b/classes/Composicao.class @@ -2,4 +2,7 @@ .field basxty I .field teste LTeste; .field jahss I -.end class \ No newline at end of file +.method () V + return +.end method +.end class diff --git a/classes/Main.class b/classes/Main.class index 5ede9ce..6526452 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -105,7 +105,11 @@ L2: ineg ldc 8 idiv istore 13 - invokevirtual Classe/kioeot(III) I + iconst_4 + iconst_2 + ldc 12 + ldc 6 + invokevirtual Classe/kioeot(IIII) I new Composicao dup invokespecial Composicao/() V diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g index 97aaaa9..7628cc2 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -156,7 +156,10 @@ entraNaClasse declaracaoVariavel : ^(FIELD_DECL ID tip =.) { - $ID.simbolo.tipo = resolverTipo($tip.getText()); + if ($tip.getText().startsWith("L")) + $ID.simbolo.tipo = resolverTipo($tip.getText().substring(0, $tip.getText().length() - 1)); + else + $ID.simbolo.tipo = resolverTipo($tip.getText()); System.out.println("linha "+$ID.getLine()+": set var type "+$ID.simbolo); } ; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 8622605..7738d66 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-19 19:24:02 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-20 18:36:16 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index 6760ab1..14bd449 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-19 19:24:01 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-20 18:36:15 package br.ufpb.iged.interpretador.parser; @@ -1016,7 +1016,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: superClasse, ID, membroClasse, 36 + // elements: 36, superClasse, membroClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1382,7 +1382,7 @@ else if ( (LA17_2==ID||LA17_2==111) ) { stream_tipo.add(tipo32.getTree()); // AST REWRITE - // elements: tipo, ID + // elements: ID, tipo // token labels: // rule labels: retval // token list labels: @@ -1557,7 +1557,7 @@ else if ( (LA10_0==33) ) { // AST REWRITE - // elements: operacao, limite, parametros, ret, INIT + // elements: INIT, operacao, limite, parametros, ret // token labels: // rule labels: ret, retval // token list labels: @@ -1780,7 +1780,7 @@ else if ( (LA14_0==33) ) { // AST REWRITE - // elements: limite, operacao, parametros, ret, ID + // elements: operacao, limite, parametros, ret, ID // token labels: // rule labels: ret, retval // token list labels: @@ -2426,7 +2426,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo60.getTree()); // AST REWRITE - // elements: 57, tipo, REF + // elements: REF, tipo, 57 // token labels: // rule labels: retval // token list labels: @@ -2480,7 +2480,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: 58, tipo, REF + // elements: REF, tipo, 58 // token labels: // rule labels: retval // token list labels: @@ -2534,7 +2534,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo64.getTree()); // AST REWRITE - // elements: tipo, 108, REF + // elements: 108, REF, tipo // token labels: // rule labels: retval // token list labels: @@ -2588,7 +2588,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo66.getTree()); // AST REWRITE - // elements: REF, 109, tipo + // elements: tipo, 109, REF // token labels: // rule labels: retval // token list labels: @@ -2642,7 +2642,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: d, 90, REF + // elements: REF, 90, d // token labels: // rule labels: retval, d // token list labels: @@ -2697,7 +2697,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: d, REF, 91 + // elements: 91, d, REF // token labels: // rule labels: retval, d // token list labels: @@ -2752,7 +2752,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: REF, d, 92 + // elements: d, 92, REF // token labels: // rule labels: retval, d // token list labels: @@ -3938,7 +3938,7 @@ else if ( (LA27_0==51) ) { // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -4716,7 +4716,7 @@ else if ( (LA31_0==33) ) { stream_tipo.add(tip.getTree()); // AST REWRITE - // elements: tip, parametros + // elements: parametros, tip // token labels: // rule labels: retval, tip // token list labels: diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 96ba162..72ae001 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-19 19:24:03 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-20 18:36:17 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index c9c4679..63f4232 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-19 19:24:03 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-20 18:36:17 package br.ufpb.iged.interpretador.parser; @@ -564,7 +564,10 @@ public final void declaracaoVariavel() throws RecognitionException { if ( state.backtracking==1 ) { - ID1.simbolo.tipo = resolverTipo(tip.getText()); + if (tip.getText().startsWith("L")) + ID1.simbolo.tipo = resolverTipo(tip.getText().substring(0, tip.getText().length() - 1)); + else + ID1.simbolo.tipo = resolverTipo(tip.getText()); System.out.println("linha "+ID1.getLine()+": set var type "+ID1.simbolo); } @@ -586,21 +589,21 @@ public final void declaracaoVariavel() throws RecognitionException { // $ANTLR start "entraNoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:164:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:167:1: entraNoConstrutor : ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoConstrutor() throws RecognitionException { BytecodesAST lim=null; BytecodesAST INIT2=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:2: ( ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:4: ^( CONSTR_DECL INIT ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_entraNoConstrutor282); if (state.failed) return ; match(input, Token.DOWN, null); if (state.failed) return ; INIT2=(BytecodesAST)match(input,INIT,FOLLOW_INIT_in_entraNoConstrutor284); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: ( . )+ int cnt4=0; loop4: do { @@ -741,7 +744,7 @@ else if ( (true) ) { switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:23: . { matchAny(input); if (state.failed) return ; @@ -759,7 +762,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:26: ( ^( LIMIT lim= INTEIRO ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -768,7 +771,7 @@ else if ( (true) ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:165:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:168:27: ^( LIMIT lim= INTEIRO ) { match(input,LIMIT,FOLLOW_LIMIT_in_entraNoConstrutor291); if (state.failed) return ; @@ -813,14 +816,14 @@ else if ( (true) ) { // $ANTLR start "entraNoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:175:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:178:1: entraNoMetodo : ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ; public final void entraNoMetodo() throws RecognitionException { BytecodesAST lim=null; BytecodesAST ID3=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:2: ( ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:4: ^( METHOD_DECL ID . ( . )+ ( ^( LIMIT lim= INTEIRO ) )? ) { match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_entraNoMetodo318); if (state.failed) return ; @@ -829,7 +832,7 @@ public final void entraNoMetodo() throws RecognitionException { matchAny(input); if (state.failed) return ; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:23: ( . )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: ( . )+ int cnt6=0; loop6: do { @@ -970,7 +973,7 @@ else if ( (true) ) { switch (alt6) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:23: . + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:23: . { matchAny(input); if (state.failed) return ; @@ -988,7 +991,7 @@ else if ( (true) ) { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:26: ( ^( LIMIT lim= INTEIRO ) )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:26: ( ^( LIMIT lim= INTEIRO ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -997,7 +1000,7 @@ else if ( (true) ) { } switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:176:27: ^( LIMIT lim= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:179:27: ^( LIMIT lim= INTEIRO ) { match(input,LIMIT,FOLLOW_LIMIT_in_entraNoMetodo329); if (state.failed) return ; @@ -1042,11 +1045,11 @@ else if ( (true) ) { // $ANTLR start "saiDoMetodo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:186:1: saiDoMetodo : METHOD_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:189:1: saiDoMetodo : METHOD_DECL ; public final void saiDoMetodo() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:187:2: ( METHOD_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:187:5: METHOD_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:2: ( METHOD_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:190:5: METHOD_DECL { match(input,METHOD_DECL,FOLLOW_METHOD_DECL_in_saiDoMetodo353); if (state.failed) return ; @@ -1074,11 +1077,11 @@ public final void saiDoMetodo() throws RecognitionException { // $ANTLR start "saiDoConstrutor" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:195:1: saiDoConstrutor : CONSTR_DECL ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:198:1: saiDoConstrutor : CONSTR_DECL ; public final void saiDoConstrutor() throws RecognitionException { try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:2: ( CONSTR_DECL ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:196:5: CONSTR_DECL + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:2: ( CONSTR_DECL ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:199:5: CONSTR_DECL { match(input,CONSTR_DECL,FOLLOW_CONSTR_DECL_in_saiDoConstrutor369); if (state.failed) return ; @@ -1106,17 +1109,17 @@ public final void saiDoConstrutor() throws RecognitionException { // $ANTLR start "field" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:1: field : ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:1: field : ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) ; public final void field() throws RecognitionException { BytecodesAST op=null; BytecodesAST ref=null; BytecodesAST tipo=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:8: ( ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:10: ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:8: ( ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:10: ^( (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) ref= . tipo= . ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:12: (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:12: (op= 'getfield' |op= 'getstatic' |op= 'putfield' |op= 'putstatic' ) int alt8=4; switch ( input.LA(1) ) { case 57: @@ -1150,28 +1153,28 @@ public final void field() throws RecognitionException { switch (alt8) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:13: op= 'getfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:13: op= 'getfield' { op=(BytecodesAST)match(input,57,FOLLOW_57_in_field390); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:31: op= 'getstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:31: op= 'getstatic' { op=(BytecodesAST)match(input,58,FOLLOW_58_in_field398); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:50: op= 'putfield' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:50: op= 'putfield' { op=(BytecodesAST)match(input,108,FOLLOW_108_in_field406); if (state.failed) return ; } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:204:68: op= 'putstatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:207:68: op= 'putstatic' { op=(BytecodesAST)match(input,109,FOLLOW_109_in_field414); if (state.failed) return ; @@ -1228,7 +1231,7 @@ public final void field() throws RecognitionException { // $ANTLR start "invoke" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:1: invoke : ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:1: invoke : ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) ; public final void invoke() throws RecognitionException { BytecodesAST op=null; BytecodesAST ref=null; @@ -1236,10 +1239,10 @@ public final void invoke() throws RecognitionException { BytecodesAST tipoRet=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:9: ( ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:12: ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:9: ( ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:12: ^( (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) ref= . ^( METHOD_CALL ^( PARAMS a= . ) tipoRet= . ) ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:14: (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:14: (op= 'invokespecial' |op= 'invokestatic' |op= 'invokevirtual' ) int alt9=3; switch ( input.LA(1) ) { case 90: @@ -1268,21 +1271,21 @@ public final void invoke() throws RecognitionException { switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:15: op= 'invokespecial' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:15: op= 'invokespecial' { op=(BytecodesAST)match(input,90,FOLLOW_90_in_invoke471); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:38: op= 'invokestatic' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:38: op= 'invokestatic' { op=(BytecodesAST)match(input,91,FOLLOW_91_in_invoke479); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:223:60: op= 'invokevirtual' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:226:60: op= 'invokevirtual' { op=(BytecodesAST)match(input,92,FOLLOW_92_in_invoke487); if (state.failed) return ; @@ -1357,13 +1360,13 @@ public final void invoke() throws RecognitionException { // $ANTLR start "novaClasse" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:244:1: novaClasse : ^( NEW classe= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:247:1: novaClasse : ^( NEW classe= . ) ; public final void novaClasse() throws RecognitionException { BytecodesAST classe=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:3: ( ^( NEW classe= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:245:5: ^( NEW classe= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:3: ( ^( NEW classe= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:248:5: ^( NEW classe= . ) { match(input,NEW,FOLLOW_NEW_in_novaClasse549); if (state.failed) return ; @@ -1397,13 +1400,13 @@ public final void novaClasse() throws RecognitionException { // $ANTLR start "nenhumoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:251:1: nenhumoperando : ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:254:1: nenhumoperando : ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ; public final void nenhumoperando() throws RecognitionException { BytecodesAST operacao=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:2: ( ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:252:4: ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:255:2: ( ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:255:4: ^( ( RETURN | ARITMETICA | LOAD | STORE | LOGICA | PILHA ) operacao= . ) { if ( input.LA(1)==ARITMETICA||(input.LA(1) >= LOAD && input.LA(1) <= LOGICA)||input.LA(1)==PILHA||(input.LA(1) >= RETURN && input.LA(1) <= STORE) ) { input.consume(); @@ -1447,14 +1450,14 @@ public final void nenhumoperando() throws RecognitionException { // $ANTLR start "umoperando" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:258:1: umoperando : ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:261:1: umoperando : ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ; public final void umoperando() throws RecognitionException, LabelException { BytecodesAST operacao=null; BytecodesAST operando=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:9: ( ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:259:11: ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:9: ( ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g:262:11: ^( ( DESVIO | LOAD | STORE ) operacao= . operando= . ) { if ( input.LA(1)==DESVIO||input.LA(1)==LOAD||input.LA(1)==STORE ) { input.consume(); From 5c258cdce61539263b4e4ad62af585cb926eec02 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 24 Sep 2012 17:13:51 -0300 Subject: [PATCH 73/79] commit --- classes/Heranca.class | 3 +++ classes/Main.class | 1 + .../principal/MaquinaVirtual.java | 23 ++++++++++--------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/classes/Heranca.class b/classes/Heranca.class index 9ef823c..b5e722b 100644 --- a/classes/Heranca.class +++ b/classes/Heranca.class @@ -2,4 +2,7 @@ .super Teste .field abfgs I .field lovxfd I +.method () V + return +.end method .end class \ No newline at end of file diff --git a/classes/Main.class b/classes/Main.class index 6526452..93b439b 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -120,6 +120,7 @@ L2: ineg putfield Teste/abc I ldc 24 putfield Teste/xyz I + pop putfield Composicao/teste LTeste; iconst_2 putfield Composicao/basxty I diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java index d5070e1..1f7b4e3 100644 --- a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -33,22 +33,19 @@ public class MaquinaVirtual { public void cpu() throws ClassNotFoundException { - do{ - while (frameAtual.pc.getInstrucao() < tamanhoCodigo) { + while (frameAtual.pc.getInstrucao() < tamanhoCodigo && topoPilha > -1) { - if (!desvio) + if (!desvio) - frameAtual.pc.incrementar(); + frameAtual.pc.incrementar(); - executarInstrucao(); + executarInstrucao(); - exibirTela(frameAtual); + exibirTela(frameAtual); - } - - } while(topoPilha > -1); - + } + } @@ -973,7 +970,11 @@ public void executarInstrucao() throws ClassNotFoundException { //retorno de métodos case Definicao.RETURN: { - frameAtual = pilha[--topoPilha]; + topoPilha--; + + if (topoPilha > -1) + + frameAtual = pilha[topoPilha]; } From fb658da739b2c63390afb2cd1938df89b46e00b5 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Mon, 24 Sep 2012 22:06:23 -0300 Subject: [PATCH 74/79] commit --- .../iged/interpretador/gramaticas/Assembler.g | 13 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 14 +- .../interpretador/parser/AssemblerLexer.class | Bin 34951 -> 35321 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 78217 -> 76155 bytes .../ufpb/iged/interpretador/testes/Test.class | Bin 2958 -> 2958 bytes classes/Main.class | 39 +- .../iged/interpretador/gramaticas/Assembler.g | 13 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 14 +- .../interpretador/parser/AssemblerLexer.java | 649 ++++++------ .../interpretador/parser/AssemblerParser.java | 952 ++++++++---------- .../ufpb/iged/interpretador/parser/Def.java | 14 +- .../ufpb/iged/interpretador/parser/Ref.java | 2 +- .../symboltable/classes/SimboloMetodo.java | 24 +- .../ufpb/iged/interpretador/testes/Test.java | 15 + 24 files changed, 814 insertions(+), 935 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index a532ac3..6df3448 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -92,8 +92,7 @@ limite : '.limit locals' INTEIRO -> ^(LIMIT INTEIRO); parametros : '()' -> ^(PARAMS VOID) | ( - a = ID - | a = TIPO_REF + a = TIPO_REF )+ -> ^(PARAMS $a)+ ; @@ -213,14 +212,6 @@ parametrosRetorno : (parametros | '(' parametros ')') tip = tipo -> ^(METHOD_CALL parametros $tip) ; - -contagemParametros returns [int qtdParams] - : '()' {$qtdParams = 0;} - | ( - ID {$qtdParams++;} - | TIPO_REF {$qtdParams++;} - )+ - ; INIT : ''; @@ -234,7 +225,7 @@ INTEIRO : '-'? '0'..'9'+ ; REF : (ID '/')+ ( ID | INIT); -TIPO_REF: 'L'ID ('/' ID)*';'; +TIPO_REF: ('L'ID ('/' ID)*';' | INT)+; ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 223589c..718447b 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -116,28 +116,28 @@ parametros System.out.println("linha "+$pars.getLine()+": def "+$pars.getText()); $pars.escopo = escopoAtual; SimboloVariavel par = new SimboloVariavel($pars.getText(),null); - par.def = $pars; // track AST location of def's ID - $pars.simbolo = par; // track in AST + par.def = $pars; + $pars.simbolo = par; escopoAtual.definir(par); } ; entraNoCorpoMetodo - : BODY {escopoAtual = new EscopoLocal(escopoAtual);} // push scope + : BODY {escopoAtual = new EscopoLocal(escopoAtual);} ; saiDoCorpoMetodo : BODY { System.out.println("locals: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } ; saiDaClasse : '.class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } ; @@ -145,7 +145,7 @@ saiDoMetodo : METHOD_DECL { System.out.println("Saindo do metodo: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } ; @@ -154,7 +154,7 @@ saiDoConstrutor : CONSTR_DECL { System.out.println("Saindo do construtor: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } ; diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index 7b2748bbf71a7e94d7f41d520b80d567a65a05ea..1b96ea845ea9fab0f3d051305d8a041e7acdec5a 100644 GIT binary patch literal 35321 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 N;IntO5f&5he*np+Un~Fs literal 34951 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 diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index db87951e91ff6a2dac4fe44b498f7258d3984bb8..80f5c90f6f3b3ec9a8ffa69d60a978d6cbb188af 100644 GIT binary patch delta 19 acmZ3-x{h^&3ln4WWLG8|#@5MAOgaEPgayC= delta 19 bcmZ3-x{h^&3lrmn$*xQ`jFToeG3fvRK2!zT diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class index 18046242d003c7f5d02ecd7f6433f9eaa6bf431c..f78dfff7a5e5f572ac89c57654de3c8f590d2324 100644 GIT binary patch delta 19 acmZ3)x`=gy1rwvpWJ@L+M!CslOgaEGECjXy delta 19 acmZ3)x`=gy1rwv@WJ@L+M(xREOgaEG`~=Vd diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index 7716f519b576c5474ee792c988373ad440b2119e..fd411c4be010c382dec616d164f623d7d2b9653b 100644 GIT binary patch delta 19 acmbQkI)`mM9OgaEIXax=c diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$loadint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$loadint_return.class index d569c5a7201c2991501a17e275366ab613dccd9a..4a0e0fa650155a2b0a44c406b581be0fbae348c7 100644 GIT binary patch delta 19 bcmZ3=x|DT;H522E$u>+jjI$+jjLRoiGU)&SJ$41x diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$logica_return.class index e98b1a13e5caf7c2a852aa503f25c8cb8b0a82e4..ef60db878792094a00b66eb9c69c192a1926dfc2 100644 GIT binary patch delta 19 bcmZ3)x`=gy1ry`M$(BqujFTsqG3fvRJA4J8 delta 19 bcmZ3)x`=gy1ry`E$(Bquj0+~0G3fvRJWK_; diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$manipulacaoObjetos_return.class index 869a64a587e7cb98fa06d8a19fc2128b9dc7bd6c..be4fa749d251082d164c8938552ea3b224b2955c 100644 GIT binary patch delta 19 bcmX@cdW>~L3=`vr$+1i}jGrdYV$uNsN+bso delta 19 bcmX@cdW>~L3=`wu$+1i}jQ=OkV$uNsO7sUT diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index 446b2c82b3e6b2c0a3c1c0bb5f62b71941a7652d..f8054326931be1ab5a083cf34a6235b991ac6c2a 100644 GIT binary patch delta 19 acmbQwI-hleDHCJ)WHTlk#>&aXOgaELA_ZLl delta 19 acmbQwI-hleDHCJMWHTlk#WP2tXM&8LaOgaEGkOZ;- delta 19 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 a(So9@x1kkJ_;$2i(B6Ue8MJp2?f(J&N)LJf literal 78217 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 V @@ -99,12 +101,12 @@ L2: ineg getfield Classe/lohdg I iconst_4 imul - istore 12 + istore 13 dup getfield Classe/fachdf I ldc 8 idiv - istore 13 + istore 14 iconst_4 iconst_2 ldc 12 @@ -112,6 +114,8 @@ L2: ineg invokevirtual Classe/kioeot(IIII) I new Composicao dup + astore 15 + dup invokespecial Composicao/() V new Teste dup @@ -126,20 +130,22 @@ L2: ineg putfield Composicao/basxty I iconst_3 putfield Composicao/jahss I - astore 14 + astore 16 ldc 8 - istore 15 - aload 14 + istore 17 + aload 16 dup getfield Composicao/teste LTeste; dup getfield Teste/xyz I - iload 15 + iload 17 idiv - istore 16 + istore 18 pop2 new Heranca dup + astore 19 + dup invokespecial Heranca/() V iconst_3 putfield Heranca/abfgs I @@ -149,24 +155,24 @@ L2: ineg putfield Heranca/abc I ldc 9 putfield Heranca/xyz I - astore 17 + astore 20 iconst_4 - istore 18 - aload 17 + istore 21 + aload 20 dup getfield Heranca/abfgs I - aload 17 + aload 20 getfield Heranca/abc I imul - istore 19 + istore 22 dup getfield Heranca/lovxfd I - aload 17 + aload 20 getfield Heranca/xyz I idiv - iload 18 + iload 21 isub - istore 20 + istore 23 return .end method .method static uisos(III)I @@ -198,4 +204,7 @@ L3: ldc 8 idiv ireturn .end method +.method static refs(LClasse;LComposicao;IILHeranca;)I + ireturn +.end method .end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g index a532ac3..6df3448 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -92,8 +92,7 @@ limite : '.limit locals' INTEIRO -> ^(LIMIT INTEIRO); parametros : '()' -> ^(PARAMS VOID) | ( - a = ID - | a = TIPO_REF + a = TIPO_REF )+ -> ^(PARAMS $a)+ ; @@ -213,14 +212,6 @@ parametrosRetorno : (parametros | '(' parametros ')') tip = tipo -> ^(METHOD_CALL parametros $tip) ; - -contagemParametros returns [int qtdParams] - : '()' {$qtdParams = 0;} - | ( - ID {$qtdParams++;} - | TIPO_REF {$qtdParams++;} - )+ - ; INIT : ''; @@ -234,7 +225,7 @@ INTEIRO : '-'? '0'..'9'+ ; REF : (ID '/')+ ( ID | INIT); -TIPO_REF: 'L'ID ('/' ID)*';'; +TIPO_REF: ('L'ID ('/' ID)*';' | INT)+; ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; diff --git a/src/br/ufpb/iged/interpretador/gramaticas/Def.g b/src/br/ufpb/iged/interpretador/gramaticas/Def.g index 223589c..718447b 100644 --- a/src/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/src/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -116,28 +116,28 @@ parametros System.out.println("linha "+$pars.getLine()+": def "+$pars.getText()); $pars.escopo = escopoAtual; SimboloVariavel par = new SimboloVariavel($pars.getText(),null); - par.def = $pars; // track AST location of def's ID - $pars.simbolo = par; // track in AST + par.def = $pars; + $pars.simbolo = par; escopoAtual.definir(par); } ; entraNoCorpoMetodo - : BODY {escopoAtual = new EscopoLocal(escopoAtual);} // push scope + : BODY {escopoAtual = new EscopoLocal(escopoAtual);} ; saiDoCorpoMetodo : BODY { System.out.println("locals: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } ; saiDaClasse : '.class' { System.out.println("Saindo da classe.. membros: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } ; @@ -145,7 +145,7 @@ saiDoMetodo : METHOD_DECL { System.out.println("Saindo do metodo: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } ; @@ -154,7 +154,7 @@ saiDoConstrutor : CONSTR_DECL { System.out.println("Saindo do construtor: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } ; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 7738d66..83c9691 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-20 18:36:16 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-24 21:32:11 package br.ufpb.iged.interpretador.parser; @@ -1951,8 +1951,8 @@ public final void mINIT() throws RecognitionException { try { int _type = INIT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:6: ( '' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:225:8: '' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:6: ( '' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:216:8: '' { match(""); @@ -1974,8 +1974,8 @@ public final void mINT() throws RecognitionException { try { int _type = INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:5: ( 'I' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:227:7: 'I' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:5: ( 'I' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:7: 'I' { match('I'); @@ -1995,8 +1995,8 @@ public final void mVOID() throws RecognitionException { try { int _type = VOID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:6: ( 'V' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:229:8: 'V' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:6: ( 'V' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:8: 'V' { match('V'); @@ -2016,10 +2016,10 @@ public final void mNULL() throws RecognitionException { try { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:6: ( ( 'null' | 'NULL' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:6: ( ( 'null' | 'NULL' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:8: ( 'null' | 'NULL' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:8: ( 'null' | 'NULL' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:8: ( 'null' | 'NULL' ) int alt1=2; int LA1_0 = input.LA(1); @@ -2038,7 +2038,7 @@ else if ( (LA1_0=='N') ) { } switch (alt1) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:9: 'null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:9: 'null' { match("null"); @@ -2047,7 +2047,7 @@ else if ( (LA1_0=='N') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:231:18: 'NULL' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:222:18: 'NULL' { match("NULL"); @@ -2075,10 +2075,10 @@ public final void mINTEIRO() throws RecognitionException { try { int _type = INTEIRO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:9: ( ( '-' )? ( '0' .. '9' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:11: ( '-' )? ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:9: ( ( '-' )? ( '0' .. '9' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:11: ( '-' )? ( '0' .. '9' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:11: ( '-' )? + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:11: ( '-' )? int alt2=2; int LA2_0 = input.LA(1); @@ -2087,7 +2087,7 @@ public final void mINTEIRO() throws RecognitionException { } switch (alt2) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:11: '-' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:11: '-' { match('-'); @@ -2097,7 +2097,7 @@ public final void mINTEIRO() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:233:16: ( '0' .. '9' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:224:16: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2152,10 +2152,10 @@ public final void mREF() throws RecognitionException { try { int _type = REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:6: ( ( ID '/' )+ ( ID | INIT ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: ( ID '/' )+ ( ID | INIT ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:6: ( ( ID '/' )+ ( ID | INIT ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: ( ID '/' )+ ( ID | INIT ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:9: ( ID '/' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:9: ( ID '/' )+ int cnt4=0; loop4: do { @@ -2163,7 +2163,7 @@ public final void mREF() throws RecognitionException { alt4 = dfa4.predict(input); switch (alt4) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:10: ID '/' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:10: ID '/' { mID(); @@ -2183,7 +2183,7 @@ public final void mREF() throws RecognitionException { } while (true); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:19: ( ID | INIT ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:19: ( ID | INIT ) int alt5=2; int LA5_0 = input.LA(1); @@ -2202,7 +2202,7 @@ else if ( (LA5_0=='<') ) { } switch (alt5) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:21: ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:21: ID { mID(); @@ -2210,7 +2210,7 @@ else if ( (LA5_0=='<') ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:235:26: INIT + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:226:26: INIT { mINIT(); @@ -2237,45 +2237,85 @@ public final void mTIPO_REF() throws RecognitionException { try { int _type = TIPO_REF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:9: ( 'L' ID ( '/' ID )* ';' ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:11: 'L' ID ( '/' ID )* ';' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:9: ( ( 'L' ID ( '/' ID )* ';' | INT )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:11: ( 'L' ID ( '/' ID )* ';' | INT )+ { - match('L'); - - mID(); - - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:17: ( '/' ID )* - loop6: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:11: ( 'L' ID ( '/' ID )* ';' | INT )+ + int cnt7=0; + loop7: do { - int alt6=2; - int LA6_0 = input.LA(1); + int alt7=3; + int LA7_0 = input.LA(1); - if ( (LA6_0=='/') ) { - alt6=1; + if ( (LA7_0=='L') ) { + alt7=1; + } + else if ( (LA7_0=='I') ) { + alt7=2; } - switch (alt6) { + switch (alt7) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:237:18: '/' ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:12: 'L' ID ( '/' ID )* ';' { - match('/'); + match('L'); mID(); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:18: ( '/' ID )* + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='/') ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:19: '/' ID + { + match('/'); + + mID(); + + + } + break; + + default : + break loop6; + } + } while (true); + + + match(';'); + + } + break; + case 2 : + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:228:33: INT + { + mINT(); + + } break; default : - break loop6; + if ( cnt7 >= 1 ) break loop7; + EarlyExitException eee = + new EarlyExitException(7, input); + throw eee; } + cnt7++; } while (true); - match(';'); - } state.type = _type; @@ -2292,8 +2332,8 @@ public final void mID() throws RecognitionException { try { int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:5: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* { if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { input.consume(); @@ -2305,18 +2345,18 @@ public final void mID() throws RecognitionException { } - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:239:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* - loop7: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:230:27: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '.' )* + loop8: do { - int alt7=2; - int LA7_0 = input.LA(1); + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA7_0=='.'||(LA7_0 >= '0' && LA7_0 <= '9')||(LA7_0 >= 'A' && LA7_0 <= 'Z')||(LA7_0 >= 'a' && LA7_0 <= 'z')) ) { - alt7=1; + if ( (LA8_0=='.'||(LA8_0 >= '0' && LA8_0 <= '9')||(LA8_0 >= 'A' && LA8_0 <= 'Z')||(LA8_0 >= 'a' && LA8_0 <= 'z')) ) { + alt8=1; } - switch (alt7) { + switch (alt8) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { @@ -2334,7 +2374,7 @@ public final void mID() throws RecognitionException { break; default : - break loop7; + break loop8; } } while (true); @@ -2355,24 +2395,24 @@ public final void mNEWLINE() throws RecognitionException { try { int _type = NEWLINE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:9: ( ( '\\n' )+ ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:11: ( '\\n' )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:9: ( ( '\\n' )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:11: ( '\\n' )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:11: ( '\\n' )+ - int cnt8=0; - loop8: + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:11: ( '\\n' )+ + int cnt9=0; + loop9: do { - int alt8=2; - int LA8_0 = input.LA(1); + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA8_0=='\n') ) { - alt8=1; + if ( (LA9_0=='\n') ) { + alt9=1; } - switch (alt8) { + switch (alt9) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:243:11: '\\n' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:234:11: '\\n' { match('\n'); @@ -2380,12 +2420,12 @@ public final void mNEWLINE() throws RecognitionException { break; default : - if ( cnt8 >= 1 ) break loop8; + if ( cnt9 >= 1 ) break loop9; EarlyExitException eee = - new EarlyExitException(8, input); + new EarlyExitException(9, input); throw eee; } - cnt8++; + cnt9++; } while (true); @@ -2405,8 +2445,8 @@ public final void mWS() throws RecognitionException { try { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:4: ( ( ' ' | '\\t' | '\\r' ) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:245:6: ( ' ' | '\\t' | '\\r' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:4: ( ( ' ' | '\\t' | '\\r' ) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:236:6: ( ' ' | '\\t' | '\\r' ) { if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); @@ -2433,9 +2473,9 @@ public final void mWS() throws RecognitionException { public void mTokens() throws RecognitionException { // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:8: ( T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | INIT | INT | VOID | NULL | INTEIRO | REF | TIPO_REF | ID | NEWLINE | WS ) - int alt9=89; - alt9 = dfa9.predict(input); - switch (alt9) { + int alt10=89; + alt10 = dfa10.predict(input); + switch (alt10) { case 1 : // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:1:10: T__33 { @@ -3155,7 +3195,7 @@ public void mTokens() throws RecognitionException { protected DFA4 dfa4 = new DFA4(this); - protected DFA9 dfa9 = new DFA9(this); + protected DFA10 dfa10 = new DFA10(this); static final String DFA4_eotS = "\1\uffff\1\2\1\uffff\1\2\1\uffff"; static final String DFA4_eofS = @@ -3206,64 +3246,65 @@ public DFA4(BaseRecognizer recognizer) { this.transition = DFA4_transition; } public String getDescription() { - return "()+ loopback of 235:9: ( ID '/' )+"; - } - } - static final String DFA9_eotS = - "\1\uffff\1\30\3\uffff\11\44\1\uffff\1\75\1\76\1\44\1\uffff\2\44"+ - "\12\uffff\5\44\2\uffff\27\44\2\uffff\2\44\1\uffff\4\44\1\155\6\44"+ - "\1\uffff\11\44\1\u0081\4\44\1\u0087\1\u0088\1\u0089\1\44\1\u008c"+ - "\4\44\1\uffff\1\44\2\uffff\4\44\1\uffff\2\44\1\u009a\1\u009b\1\u009c"+ - "\1\44\1\u009e\1\uffff\1\u00a0\1\u00a1\1\u00a2\1\u00a3\1\u00a4\1"+ - "\u00a5\1\u00a6\1\44\1\u00a8\1\u00a9\1\44\1\uffff\1\u00ab\2\44\1"+ - "\u00ae\1\u00af\3\uffff\1\u00b0\1\u00b1\1\uffff\4\44\1\u00b0\1\45"+ - "\1\uffff\1\44\1\u00bb\4\44\3\uffff\1\44\11\uffff\1\u00c3\2\uffff"+ - "\1\44\1\uffff\2\44\4\uffff\4\44\1\45\2\uffff\1\44\2\uffff\1\44\1"+ - "\u00d2\3\44\3\uffff\2\44\1\u00df\2\44\1\u00e2\1\u00e3\5\uffff\1"+ - "\u00e4\2\uffff\2\44\6\uffff\2\44\1\u00f9\2\uffff\2\44\7\uffff\1"+ - "\u0100\1\44\13\uffff\3\44\5\uffff\1\u0109\1\44\1\uffff\1\u010b\4"+ - "\uffff\3\44\1\uffff\1\u010f\1\uffff\3\44\1\uffff\4\44\1\u0117\1"+ - "\44\1\u0119\1\uffff\1\u011a\2\uffff"; - static final String DFA9_eofS = - "\u011b\uffff"; - static final String DFA9_minS = + return "()+ loopback of 226:9: ( ID '/' )+"; + } + } + static final String DFA10_eotS = + "\1\uffff\1\30\3\uffff\11\44\1\uffff\1\75\1\100\1\44\1\uffff\2\44"+ + "\12\uffff\5\44\2\uffff\27\44\1\uffff\1\44\1\146\1\uffff\2\44\1\uffff"+ + "\4\44\1\157\6\44\1\uffff\11\44\1\u0083\4\44\1\u0089\1\u008a\1\u008b"+ + "\1\44\1\u008e\3\44\1\uffff\1\44\1\uffff\1\44\1\uffff\4\44\1\uffff"+ + "\2\44\1\u009c\1\u009d\1\u009e\1\44\1\u00a0\1\uffff\1\u00a2\1\u00a3"+ + "\1\u00a4\1\u00a5\1\u00a6\1\u00a7\1\u00a8\1\44\1\u00aa\1\u00ab\1"+ + "\44\1\uffff\1\u00ad\2\44\1\u00b0\1\u00b1\3\uffff\1\u00b2\1\u00b3"+ + "\1\uffff\4\44\1\u00b2\1\45\1\uffff\1\44\1\u00bd\4\44\3\uffff\1\44"+ + "\11\uffff\1\u00c5\2\uffff\1\44\1\uffff\2\44\4\uffff\4\44\1\45\2"+ + "\uffff\1\44\2\uffff\1\44\1\u00d4\3\44\3\uffff\2\44\1\u00e1\2\44"+ + "\1\u00e4\1\u00e5\5\uffff\1\u00e6\2\uffff\2\44\6\uffff\2\44\1\u00fb"+ + "\2\uffff\2\44\7\uffff\1\u0102\1\44\13\uffff\3\44\5\uffff\1\u010b"+ + "\1\44\1\uffff\1\u010d\4\uffff\3\44\1\uffff\1\u0111\1\uffff\3\44"+ + "\1\uffff\4\44\1\u0119\1\44\1\u011b\1\uffff\1\u011c\2\uffff"; + static final String DFA10_eofS = + "\u011d\uffff"; + static final String DFA10_minS = "\1\11\1\51\1\uffff\1\143\1\uffff\11\56\1\uffff\3\56\1\uffff\2\56"+ - "\5\uffff\1\156\4\uffff\5\56\2\uffff\27\56\2\uffff\2\56\1\144\13"+ - "\56\1\151\27\56\1\74\1\56\1\uffff\1\40\4\56\1\uffff\7\56\1\143\13"+ - "\56\1\uffff\5\56\3\uffff\2\56\1\uffff\6\56\1\143\6\56\3\uffff\1"+ - "\56\1\uffff\1\155\7\uffff\1\56\2\uffff\1\56\1\uffff\2\56\4\uffff"+ - "\5\56\2\uffff\1\56\1\60\1\uffff\5\56\1\160\1\60\1\uffff\7\56\5\uffff"+ - "\1\56\1\60\1\uffff\2\56\1\60\1\145\4\uffff\3\56\1\60\1\uffff\2\56"+ - "\7\uffff\2\56\10\uffff\2\145\1\uffff\3\56\5\uffff\2\56\1\uffff\1"+ - "\56\4\uffff\3\56\1\uffff\1\56\1\uffff\3\56\1\uffff\7\56\1\uffff"+ - "\1\56\2\uffff"; - static final String DFA9_maxS = + "\5\uffff\1\156\4\uffff\5\56\2\uffff\27\56\1\uffff\2\56\1\uffff\2"+ + "\56\1\144\13\56\1\151\26\56\1\uffff\1\56\1\74\1\56\1\40\4\56\1\uffff"+ + "\7\56\1\143\13\56\1\uffff\5\56\3\uffff\2\56\1\uffff\6\56\1\143\6"+ + "\56\3\uffff\1\56\1\uffff\1\155\7\uffff\1\56\2\uffff\1\56\1\uffff"+ + "\2\56\4\uffff\5\56\2\uffff\1\56\1\60\1\uffff\5\56\1\160\1\60\1\uffff"+ + "\7\56\5\uffff\1\56\1\60\1\uffff\2\56\1\60\1\145\4\uffff\3\56\1\60"+ + "\1\uffff\2\56\7\uffff\2\56\10\uffff\2\145\1\uffff\3\56\5\uffff\2"+ + "\56\1\uffff\1\56\4\uffff\3\56\1\uffff\1\56\1\uffff\3\56\1\uffff"+ + "\7\56\1\uffff\1\56\2\uffff"; + static final String DFA10_maxS = "\1\172\1\51\1\uffff\1\163\1\uffff\11\172\1\uffff\3\172\1\uffff\2"+ - "\172\5\uffff\1\156\4\uffff\5\172\2\uffff\27\172\2\uffff\2\172\1"+ - "\144\13\172\1\151\31\172\1\uffff\1\40\4\172\1\uffff\7\172\1\143"+ - "\13\172\1\uffff\5\172\3\uffff\2\172\1\uffff\6\172\1\155\6\172\3"+ - "\uffff\1\172\1\uffff\1\155\7\uffff\1\172\2\uffff\1\172\1\uffff\2"+ - "\172\4\uffff\5\172\2\uffff\1\172\1\63\1\uffff\5\172\1\160\1\63\1"+ - "\uffff\7\172\5\uffff\1\172\1\63\1\uffff\2\172\1\155\1\156\4\uffff"+ - "\3\172\1\63\1\uffff\2\172\7\uffff\2\172\10\uffff\2\164\1\uffff\3"+ - "\172\5\uffff\2\172\1\uffff\1\172\4\uffff\3\172\1\uffff\1\172\1\uffff"+ - "\3\172\1\uffff\7\172\1\uffff\1\172\2\uffff"; - static final String DFA9_acceptS = + "\172\5\uffff\1\156\4\uffff\5\172\2\uffff\27\172\1\uffff\2\172\1"+ + "\uffff\2\172\1\144\13\172\1\151\26\172\1\uffff\3\172\1\40\4\172"+ + "\1\uffff\7\172\1\143\13\172\1\uffff\5\172\3\uffff\2\172\1\uffff"+ + "\6\172\1\155\6\172\3\uffff\1\172\1\uffff\1\155\7\uffff\1\172\2\uffff"+ + "\1\172\1\uffff\2\172\4\uffff\5\172\2\uffff\1\172\1\63\1\uffff\5"+ + "\172\1\160\1\63\1\uffff\7\172\5\uffff\1\172\1\63\1\uffff\2\172\1"+ + "\155\1\156\4\uffff\3\172\1\63\1\uffff\2\172\7\uffff\2\172\10\uffff"+ + "\2\164\1\uffff\3\172\5\uffff\2\172\1\uffff\1\172\4\uffff\3\172\1"+ + "\uffff\1\172\1\uffff\3\172\1\uffff\7\172\1\uffff\1\172\2\uffff"; + static final String DFA10_acceptS = "\2\uffff\1\3\1\uffff\1\13\11\uffff\1\120\3\uffff\1\124\2\uffff\1"+ "\130\1\131\1\2\1\1\1\4\1\uffff\1\7\1\10\1\11\1\12\5\uffff\1\127"+ - "\1\125\27\uffff\1\121\1\122\50\uffff\1\126\5\uffff\1\30\23\uffff"+ - "\1\75\5\uffff\1\107\1\110\1\111\2\uffff\1\112\15\uffff\1\33\1\34"+ - "\1\35\1\uffff\1\45\1\uffff\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1"+ - "\uffff\1\70\1\71\1\uffff\1\76\2\uffff\1\105\1\106\1\123\1\113\5"+ - "\uffff\1\5\1\6\2\uffff\1\15\7\uffff\1\63\7\uffff\1\14\1\16\1\17"+ - "\1\20\1\21\2\uffff\1\23\4\uffff\1\64\1\65\1\66\1\67\4\uffff\1\100"+ - "\2\uffff\1\116\1\117\1\22\1\24\1\25\1\26\1\27\2\uffff\1\36\1\37"+ - "\1\40\1\41\1\42\1\43\1\44\1\46\2\uffff\1\53\3\uffff\1\77\1\101\1"+ - "\102\1\103\1\104\2\uffff\1\31\1\uffff\1\47\1\50\1\51\1\52\3\uffff"+ - "\1\114\1\uffff\1\32\3\uffff\1\115\7\uffff\1\73\1\uffff\1\72\1\74"; - static final String DFA9_specialS = - "\u011b\uffff}>"; - static final String[] DFA9_transitionS = { + "\1\125\27\uffff\1\121\2\uffff\1\122\45\uffff\1\126\10\uffff\1\30"+ + "\23\uffff\1\75\5\uffff\1\107\1\110\1\111\2\uffff\1\112\15\uffff"+ + "\1\33\1\34\1\35\1\uffff\1\45\1\uffff\1\54\1\55\1\56\1\57\1\60\1"+ + "\61\1\62\1\uffff\1\70\1\71\1\uffff\1\76\2\uffff\1\105\1\106\1\123"+ + "\1\113\5\uffff\1\5\1\6\2\uffff\1\15\7\uffff\1\63\7\uffff\1\14\1"+ + "\16\1\17\1\20\1\21\2\uffff\1\23\4\uffff\1\64\1\65\1\66\1\67\4\uffff"+ + "\1\100\2\uffff\1\116\1\117\1\22\1\24\1\25\1\26\1\27\2\uffff\1\36"+ + "\1\37\1\40\1\41\1\42\1\43\1\44\1\46\2\uffff\1\53\3\uffff\1\77\1"+ + "\101\1\102\1\103\1\104\2\uffff\1\31\1\uffff\1\47\1\50\1\51\1\52"+ + "\3\uffff\1\114\1\uffff\1\32\3\uffff\1\115\7\uffff\1\73\1\uffff\1"+ + "\72\1\74"; + static final String DFA10_specialS = + "\u011d\uffff}>"; + static final String[] DFA10_transitionS = { "\1\26\1\25\2\uffff\1\26\22\uffff\1\26\7\uffff\1\1\1\2\3\uffff"+ "\1\22\1\3\1\uffff\12\22\1\4\1\uffff\1\16\4\uffff\10\24\1\17"+ "\2\24\1\23\1\24\1\21\7\24\1\20\4\24\6\uffff\1\5\2\24\1\6\2\24"+ @@ -3289,120 +3330,124 @@ public String getDescription() { "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\73\25\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\74\6\43", "", + "\1\43\1\45\12\43\7\uffff\10\43\1\77\2\43\1\76\16\43\6\uffff"+ + "\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\24\43\1\77\5\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\24\43\1\101\5\43\6\uffff\32\43", "", - "\1\43\1\45\12\43\7\uffff\32\100\6\uffff\32\100", + "\1\43\1\45\12\43\7\uffff\32\102\6\uffff\32\102", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "", "", "", "", - "\1\101", + "\1\103", "", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\102\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\103\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\104\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\105\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\104\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\105\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\106\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\107\6\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\106\12\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\107\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\110\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\111\11\43\1\112"+ + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\110\12\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\111\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\112\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\113\11\43\1\114"+ "\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\113\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\114\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\115\1\uffff\4\43\1"+ - "\116\1\43\1\117\4\43\1\120\1\43\1\121\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\122\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\123\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\124\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\125\20\43\1\126"+ + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\115\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\116\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\117\1\uffff\4\43\1"+ + "\120\1\43\1\121\4\43\1\122\1\43\1\123\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\124\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\125\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\126\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\127\20\43\1\130"+ "\4\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\127\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\130\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\131\1\132\5"+ + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\131\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\132\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\133\1\134\5"+ "\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\133\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\134\27\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\26\43\1\135\3\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\136\12\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\137\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\135\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\136\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\26\43\1\137\3\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\140\12\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\141\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\142\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\143\31\43", - "", - "", - "\1\43\1\45\12\43\7\uffff\13\43\1\144\16\43\6\uffff\32\43", - "\1\146\1\145\12\146\1\uffff\1\147\5\uffff\32\146\6\uffff\32"+ - "\146", - "\1\150", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\151\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\152\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\153\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\154\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\141\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\142\12\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\143\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\144\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\145\31\43", + "", + "\1\43\1\45\12\43\7\uffff\32\102\6\uffff\32\102", + "\1\43\1\45\12\43\7\uffff\10\43\1\77\2\43\1\76\16\43\6\uffff"+ + "\32\43", + "", + "\1\43\1\45\12\43\7\uffff\13\43\1\147\16\43\6\uffff\32\43", + "\1\151\1\150\12\151\1\uffff\1\146\5\uffff\32\151\6\uffff\32"+ + "\151", + "\1\152", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\153\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\154\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\155\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\156\13\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\5\43\1\156\14\43\1\157"+ + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\5\43\1\160\14\43\1\161"+ "\7\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\160\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\161\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\162\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\163\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\25\43\1\164\4\43", - "\1\165", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\20\43\1\166\11\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\167\16\43\1\170"+ - "\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\162\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\163\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\164\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\165\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\25\43\1\166\4\43", + "\1\167", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\20\43\1\170\11\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\171\16\43\1\172"+ "\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\173\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\174\27\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\175\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\176\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\6\43\1\177\23\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\u0080\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\173\16\43\1\174"+ + "\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\175\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\176\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\177\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u0080\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\6\43\1\u0081\23\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\u0082\13\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\14\43\1\u0082\6\43\1"+ - "\u0083\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\u0084\13\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\43\1\u0085\30\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0086\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\14\43\1\u0084\6\43\1"+ + "\u0085\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\16\43\1\u0086\13\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\43\1\u0087\30\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0088\10\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u008a\16\43", - "\1\43\1\45\2\43\1\u008b\7\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\5\43\1\u008d\14\43\1"+ - "\u008e\7\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u008f\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u0090\6\43", - "\1\43\1\45\12\43\7\uffff\13\43\1\u0091\16\43\6\uffff\32\43", - "\1\45\4\uffff\32\u0092\6\uffff\32\u0092", - "\1\146\1\145\12\146\1\uffff\1\147\5\uffff\32\146\6\uffff\32"+ - "\146", - "", - "\1\u0093", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u0094\7\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u0095\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0096\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0097\10\43", - "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0098\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u0099\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u008c\16\43", + "\1\43\1\45\2\43\1\u008d\7\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\5\43\1\u008f\14\43\1"+ + "\u0090\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0091\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u0092\6\43", + "", + "\1\43\1\45\12\43\7\uffff\13\43\1\u0093\16\43\6\uffff\32\43", + "\1\45\4\uffff\32\u0094\6\uffff\32\u0094", + "\1\151\1\150\12\151\1\uffff\1\146\5\uffff\32\151\6\uffff\32"+ + "\151", + "\1\u0095", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u0096\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u0097\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0098\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0099\10\43", + "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u009a\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u009b\6\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u009d\7\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u009f\7\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\u009f", + "\1\u00a1", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", @@ -3410,14 +3455,14 @@ public String getDescription() { "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00a7\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00a9\26\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\12\43\1\u00aa\17\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\12\43\1\u00ac\17\43", "", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u00ac\5\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00ad\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u00ae\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00af\10\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", @@ -3426,26 +3471,26 @@ public String getDescription() { "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00b2\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00b3\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00b4\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00b5\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00b4\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00b5\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00b6\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00b7\21\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\u00b6\1\145\12\u00b6\1\uffff\1\147\5\uffff\32\u00b6\6\uffff"+ - "\32\u00b6", - "\1\u00b7\11\uffff\1\u00b8", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00b9\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00ba\1\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00bc\10\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00bd\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00be\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u00bf\31\43", + "\1\u00b8\1\150\12\u00b8\1\uffff\1\146\5\uffff\32\u00b8\6\uffff"+ + "\32\u00b8", + "\1\u00b9\11\uffff\1\u00ba", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00bb\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00bc\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00be\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00bf\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c0\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u00c1\31\43", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00c0\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00c2\6\43", "", - "\1\u00c1", + "\1\u00c3", "", "", "", @@ -3453,42 +3498,42 @@ public String getDescription() { "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00c2\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00c4\1\uffff\32\43", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c4\25\43", - "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00c5\10\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c6\25\43", "", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u00c7\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c8\25\43", + "", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c7\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u00c8\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00c9\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u00ca\27\43", - "\1\u00b6\1\145\12\u00b6\1\uffff\1\147\5\uffff\32\u00b6\6\uffff"+ - "\32\u00b6", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u00c9\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u00ca\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00cb\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u00cc\27\43", + "\1\u00b8\1\150\12\u00b8\1\uffff\1\146\5\uffff\32\u00b8\6\uffff"+ + "\32\u00b8", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00cb\1\uffff\32\43", - "\1\u00cc\1\u00cd\1\u00ce\1\u00cf", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00cd\1\uffff\32\43", + "\1\u00ce\1\u00cf\1\u00d0\1\u00d1", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00d0\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00d1\1\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u00d3\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00d4\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00d5\1\uffff\32\43", - "\1\u00d6", - "\1\u00d7\1\u00d8\1\u00d9\1\u00da", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00d2\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00d3\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u00d5\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00d6\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00d7\1\uffff\32\43", + "\1\u00d8", + "\1\u00d9\1\u00da\1\u00db\1\u00dc", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u00db\2\43\1"+ - "\u00dc\4\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00dd\14\43", - "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00de\1\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u00e0\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00e1\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\22\43\1\u00dd\2\43\1"+ + "\u00de\4\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\15\43\1\u00df\14\43", + "\1\43\1\45\12\43\7\uffff\32\43\4\uffff\1\u00e0\1\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u00e2\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u00e3\6\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", @@ -3497,25 +3542,25 @@ public String getDescription() { "", "", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\u00e5\1\u00e6\1\u00e7\1\u00e8", + "\1\u00e7\1\u00e8\1\u00e9\1\u00ea", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00e9\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00ea\21\43", - "\1\u00eb\1\u00ec\1\u00ed\1\u00ee\1\u00ef\1\u00f0\67\uffff\1"+ - "\u00f1", - "\1\u00f2\1\uffff\1\u00f3\4\uffff\1\u00f4\1\uffff\1\u00f5", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00eb\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00ec\21\43", + "\1\u00ed\1\u00ee\1\u00ef\1\u00f0\1\u00f1\1\u00f2\67\uffff\1"+ + "\u00f3", + "\1\u00f4\1\uffff\1\u00f5\4\uffff\1\u00f6\1\uffff\1\u00f7", "", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\u00f6\3\43\1"+ - "\u00f7\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00f8\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\17\43\1\u00f8\3\43\1"+ + "\u00f9\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00fa\21\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\u00fa\1\u00fb\1\u00fc\1\u00fd", + "\1\u00fc\1\u00fd\1\u00fe\1\u00ff", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u00fe\26\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u00ff\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\3\43\1\u0100\26\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0101\21\43", "", "", "", @@ -3524,7 +3569,7 @@ public String getDescription() { "", "", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u0101\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u0103\27\43", "", "", "", @@ -3533,76 +3578,76 @@ public String getDescription() { "", "", "", - "\1\u0102\16\uffff\1\u0103", "\1\u0104\16\uffff\1\u0105", + "\1\u0106\16\uffff\1\u0107", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u0106\25\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0107\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u0108\10\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\4\43\1\u0108\25\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0109\31\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\21\43\1\u010a\10\43", "", "", "", "", "", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u010a\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u010c\27\43", "", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "", "", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u010c\27\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u010d\6\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u010e\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u010e\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u010f\6\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\23\43\1\u0110\6\43", "", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0110\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0111\21\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0112\5\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0112\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\10\43\1\u0113\21\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\24\43\1\u0114\5\43", "", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0113\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u0114\27\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0115\31\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u0116\16\43", - "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\2\43\1\u0116\27\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\1\u0117\31\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u0118\16\43", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\13\43\1\u011a\16\43", + "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "\1\43\1\45\12\43\7\uffff\32\43\6\uffff\32\43", "", "" }; - static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS); - static final short[] DFA9_eof = DFA.unpackEncodedString(DFA9_eofS); - static final char[] DFA9_min = DFA.unpackEncodedStringToUnsignedChars(DFA9_minS); - static final char[] DFA9_max = DFA.unpackEncodedStringToUnsignedChars(DFA9_maxS); - static final short[] DFA9_accept = DFA.unpackEncodedString(DFA9_acceptS); - static final short[] DFA9_special = DFA.unpackEncodedString(DFA9_specialS); - static final short[][] DFA9_transition; + static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS); + static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS); + static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS); + static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS); + static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS); + static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS); + static final short[][] DFA10_transition; static { - int numStates = DFA9_transitionS.length; - DFA9_transition = new short[numStates][]; + int numStates = DFA10_transitionS.length; + DFA10_transition = new short[numStates][]; for (int i=0; i ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:92:1: parametros : ( '()' -> ^( PARAMS VOID ) | (a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ); public final AssemblerParser.parametros_return parametros() throws RecognitionException { AssemblerParser.parametros_return retval = new AssemblerParser.parametros_return(); retval.start = input.LT(1); @@ -1978,18 +1978,17 @@ public final AssemblerParser.parametros_return parametros() throws RecognitionEx BytecodesAST a_tree=null; BytecodesAST string_literal58_tree=null; RewriteRuleTokenStream stream_TIPO_REF=new RewriteRuleTokenStream(adaptor,"token TIPO_REF"); - RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID"); RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:2: ( '()' -> ^( PARAMS VOID ) | (a= ID |a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:93:2: ( '()' -> ^( PARAMS VOID ) | (a= TIPO_REF )+ -> ( ^( PARAMS $a) )+ ) int alt19=2; int LA19_0 = input.LA(1); if ( (LA19_0==34) ) { alt19=1; } - else if ( (LA19_0==ID||LA19_0==TIPO_REF) ) { + else if ( (LA19_0==TIPO_REF) ) { alt19=2; } else { @@ -2042,43 +2041,31 @@ else if ( (LA19_0==ID||LA19_0==TIPO_REF) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= TIPO_REF )+ { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= ID |a= TIPO_REF )+ + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:94:4: (a= TIPO_REF )+ int cnt18=0; loop18: do { - int alt18=3; + int alt18=2; int LA18_0 = input.LA(1); if ( (LA18_0==TIPO_REF) ) { int LA18_1 = input.LA(2); - if ( (LA18_1==ID||LA18_1==INT||(LA18_1 >= TIPO_REF && LA18_1 <= VOID)||LA18_1==35) ) { - alt18=2; + if ( (LA18_1==INT||(LA18_1 >= TIPO_REF && LA18_1 <= VOID)||LA18_1==35) ) { + alt18=1; } } - else if ( (LA18_0==ID) ) { - alt18=1; - } switch (alt18) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:9: a= ID - { - a=(Token)match(input,ID,FOLLOW_ID_in_parametros828); - stream_ID.add(a); - - - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:96:9: a= TIPO_REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:95:8: a= TIPO_REF { - a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros843); + a=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_parametros827); stream_TIPO_REF.add(a); @@ -2107,13 +2094,13 @@ else if ( (LA18_0==ID) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 98:4: -> ( ^( PARAMS $a) )+ + // 97:4: -> ( ^( PARAMS $a) )+ { if ( !(stream_a.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_a.hasNext() ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:98:7: ^( PARAMS $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:97:7: ^( PARAMS $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2166,7 +2153,7 @@ public static class retorno_return extends ParserRuleReturnScope { // $ANTLR start "retorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:1: retorno : (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:1: retorno : (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ; public final AssemblerParser.retorno_return retorno() throws RecognitionException { AssemblerParser.retorno_return retval = new AssemblerParser.retorno_return(); retval.start = input.LT(1); @@ -2182,10 +2169,10 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio RewriteRuleTokenStream stream_50=new RewriteRuleTokenStream(adaptor,"token 50"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: ( (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:100:9: ( (a= 'areturn' |a= 'ireturn' |a= 'return' ) -> ^( RETURN $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:9: (a= 'areturn' |a= 'ireturn' |a= 'return' ) int alt20=3; switch ( input.LA(1) ) { case 50: @@ -2213,27 +2200,27 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio switch (alt20) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'areturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:101:13: a= 'areturn' { - a=(Token)match(input,50,FOLLOW_50_in_retorno889); + a=(Token)match(input,50,FOLLOW_50_in_retorno873); stream_50.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'ireturn' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:102:13: a= 'ireturn' { - a=(Token)match(input,95,FOLLOW_95_in_retorno907); + a=(Token)match(input,95,FOLLOW_95_in_retorno891); stream_95.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:104:13: a= 'return' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:103:13: a= 'return' { - a=(Token)match(input,110,FOLLOW_110_in_retorno925); + a=(Token)match(input,110,FOLLOW_110_in_retorno909); stream_110.add(a); @@ -2255,9 +2242,9 @@ public final AssemblerParser.retorno_return retorno() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 106:10: -> ^( RETURN $a) + // 105:10: -> ^( RETURN $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:106:13: ^( RETURN $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:105:13: ^( RETURN $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2305,7 +2292,7 @@ public static class manipulacaoObjetos_return extends ParserRuleReturnScope { // $ANTLR start "manipulacaoObjetos" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:1: manipulacaoObjetos : (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:1: manipulacaoObjetos : (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ); public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() throws RecognitionException { AssemblerParser.manipulacaoObjetos_return retval = new AssemblerParser.manipulacaoObjetos_return(); retval.start = input.LT(1); @@ -2355,7 +2342,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); RewriteRuleSubtreeStream stream_parametrosRetorno=new RewriteRuleSubtreeStream(adaptor,"rule parametrosRetorno"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:20: (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:20: (a= 'getfield' REF tipo -> ^( 'getfield' REF tipo ) |a= 'getstatic' REF tipo -> ^( 'getstatic' REF tipo ) |a= 'putfield' REF tipo -> ^( 'putfield' REF tipo ) |a= 'putstatic' REF tipo -> ^( 'putstatic' REF tipo ) |a= 'invokespecial' REF d= parametrosRetorno -> ^( 'invokespecial' REF $d) |a= 'invokestatic' REF d= parametrosRetorno -> ^( 'invokestatic' REF $d) |a= 'invokevirtual' REF d= parametrosRetorno -> ^( 'invokevirtual' REF $d) |a= 'new' (b= ID |b= REF ) -> ^( NEW $b) ) int alt22=8; switch ( input.LA(1) ) { case 57: @@ -2408,17 +2395,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro switch (alt22) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:22: a= 'getfield' REF tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:22: a= 'getfield' REF tipo { - a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos1004); + a=(Token)match(input,57,FOLLOW_57_in_manipulacaoObjetos988); stream_57.add(a); - REF59=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1006); + REF59=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos990); stream_REF.add(REF59); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1008); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos992); tipo60=tipo(); state._fsp--; @@ -2426,7 +2413,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo60.getTree()); // AST REWRITE - // elements: REF, tipo, 57 + // elements: tipo, REF, 57 // token labels: // rule labels: retval // token list labels: @@ -2436,9 +2423,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 109:46: -> ^( 'getfield' REF tipo ) + // 108:46: -> ^( 'getfield' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:49: ^( 'getfield' REF tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:108:49: ^( 'getfield' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2462,17 +2449,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:8: a= 'getstatic' REF tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:8: a= 'getstatic' REF tipo { - a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1031); + a=(Token)match(input,58,FOLLOW_58_in_manipulacaoObjetos1015); stream_58.add(a); - REF61=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1033); + REF61=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1017); stream_REF.add(REF61); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1035); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1019); tipo62=tipo(); state._fsp--; @@ -2490,9 +2477,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 110:33: -> ^( 'getstatic' REF tipo ) + // 109:33: -> ^( 'getstatic' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:36: ^( 'getstatic' REF tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:109:36: ^( 'getstatic' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2516,17 +2503,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:22: a= 'putfield' REF tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:22: a= 'putfield' REF tipo { - a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1072); + a=(Token)match(input,108,FOLLOW_108_in_manipulacaoObjetos1056); stream_108.add(a); - REF63=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1074); + REF63=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1058); stream_REF.add(REF63); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1076); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1060); tipo64=tipo(); state._fsp--; @@ -2534,7 +2521,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo64.getTree()); // AST REWRITE - // elements: 108, REF, tipo + // elements: REF, tipo, 108 // token labels: // rule labels: retval // token list labels: @@ -2544,9 +2531,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 111:46: -> ^( 'putfield' REF tipo ) + // 110:46: -> ^( 'putfield' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:49: ^( 'putfield' REF tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:110:49: ^( 'putfield' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2570,17 +2557,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'putstatic' REF tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:22: a= 'putstatic' REF tipo { - a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1113); + a=(Token)match(input,109,FOLLOW_109_in_manipulacaoObjetos1097); stream_109.add(a); - REF65=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1115); + REF65=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1099); stream_REF.add(REF65); - pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1117); + pushFollow(FOLLOW_tipo_in_manipulacaoObjetos1101); tipo66=tipo(); state._fsp--; @@ -2588,7 +2575,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo66.getTree()); // AST REWRITE - // elements: tipo, 109, REF + // elements: 109, REF, tipo // token labels: // rule labels: retval // token list labels: @@ -2598,9 +2585,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 112:47: -> ^( 'putstatic' REF tipo ) + // 111:47: -> ^( 'putstatic' REF tipo ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:50: ^( 'putstatic' REF tipo ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:111:50: ^( 'putstatic' REF tipo ) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2624,17 +2611,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:22: a= 'invokespecial' REF d= parametrosRetorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:112:22: a= 'invokespecial' REF d= parametrosRetorno { - a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1154); + a=(Token)match(input,90,FOLLOW_90_in_manipulacaoObjetos1138); stream_90.add(a); - REF67=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1156); + REF67=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1140); stream_REF.add(REF67); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1162); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1146); d=parametrosRetorno(); state._fsp--; @@ -2642,7 +2629,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: REF, 90, d + // elements: d, 90, REF // token labels: // rule labels: retval, d // token list labels: @@ -2653,9 +2640,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 114:23: -> ^( 'invokespecial' REF $d) + // 113:23: -> ^( 'invokespecial' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:26: ^( 'invokespecial' REF $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:113:26: ^( 'invokespecial' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2679,17 +2666,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:22: a= 'invokestatic' REF d= parametrosRetorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:114:22: a= 'invokestatic' REF d= parametrosRetorno { - a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1222); + a=(Token)match(input,91,FOLLOW_91_in_manipulacaoObjetos1206); stream_91.add(a); - REF68=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1224); + REF68=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1208); stream_REF.add(REF68); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1230); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1214); d=parametrosRetorno(); state._fsp--; @@ -2697,7 +2684,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: 91, d, REF + // elements: REF, 91, d // token labels: // rule labels: retval, d // token list labels: @@ -2708,9 +2695,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 116:23: -> ^( 'invokestatic' REF $d) + // 115:23: -> ^( 'invokestatic' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:26: ^( 'invokestatic' REF $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:115:26: ^( 'invokestatic' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2734,17 +2721,17 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:23: a= 'invokevirtual' REF d= parametrosRetorno + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:116:23: a= 'invokevirtual' REF d= parametrosRetorno { - a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1291); + a=(Token)match(input,92,FOLLOW_92_in_manipulacaoObjetos1275); stream_92.add(a); - REF69=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1293); + REF69=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1277); stream_REF.add(REF69); - pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1299); + pushFollow(FOLLOW_parametrosRetorno_in_manipulacaoObjetos1283); d=parametrosRetorno(); state._fsp--; @@ -2752,7 +2739,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: d, 92, REF + // elements: 92, d, REF // token labels: // rule labels: retval, d // token list labels: @@ -2763,9 +2750,9 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 118:23: -> ^( 'invokevirtual' REF $d) + // 117:23: -> ^( 'invokevirtual' REF $d) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:26: ^( 'invokevirtual' REF $d) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:117:26: ^( 'invokevirtual' REF $d) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2789,13 +2776,13 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:22: a= 'new' (b= ID |b= REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:22: a= 'new' (b= ID |b= REF ) { - a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1359); + a=(Token)match(input,104,FOLLOW_104_in_manipulacaoObjetos1343); stream_104.add(a); - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:32: (b= ID |b= REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:32: (b= ID |b= REF ) int alt21=2; int LA21_0 = input.LA(1); @@ -2814,18 +2801,18 @@ else if ( (LA21_0==REF) ) { } switch (alt21) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:33: b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:33: b= ID { - b=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos1366); + b=(Token)match(input,ID,FOLLOW_ID_in_manipulacaoObjetos1350); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:42: b= REF + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:42: b= REF { - b=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1374); + b=(Token)match(input,REF,FOLLOW_REF_in_manipulacaoObjetos1358); stream_REF.add(b); @@ -2847,9 +2834,9 @@ else if ( (LA21_0==REF) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 119:51: -> ^( NEW $b) + // 118:51: -> ^( NEW $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:119:54: ^( NEW $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:118:54: ^( NEW $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -2899,7 +2886,7 @@ public static class tipo_return extends ParserRuleReturnScope { // $ANTLR start "tipo" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:1: tipo : ( INT | VOID | TIPO_REF ); + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:1: tipo : ( INT | VOID | TIPO_REF ); public final AssemblerParser.tipo_return tipo() throws RecognitionException { AssemblerParser.tipo_return retval = new AssemblerParser.tipo_return(); retval.start = input.LT(1); @@ -2912,7 +2899,7 @@ public final AssemblerParser.tipo_return tipo() throws RecognitionException { BytecodesAST set70_tree=null; try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:123:6: ( INT | VOID | TIPO_REF ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:122:6: ( INT | VOID | TIPO_REF ) // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g: { root_0 = (BytecodesAST)adaptor.nil(); @@ -2964,7 +2951,7 @@ public static class aritmetica_return extends ParserRuleReturnScope { // $ANTLR start "aritmetica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:1: aritmetica : (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ; public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionException { AssemblerParser.aritmetica_return retval = new AssemblerParser.aritmetica_return(); retval.start = input.LT(1); @@ -2984,10 +2971,10 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleTokenStream stream_89=new RewriteRuleTokenStream(adaptor,"token 89"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:12: ( (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) -> ^( ARITMETICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:14: (a= 'iadd' |a= 'isub' |a= 'imul' |a= 'idiv' |a= 'irem' |a= 'iinc' |a= 'ineg' ) int alt23=7; switch ( input.LA(1) ) { case 60: @@ -3035,63 +3022,63 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx switch (alt23) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:16: a= 'iadd' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:124:16: a= 'iadd' { - a=(Token)match(input,60,FOLLOW_60_in_aritmetica1453); + a=(Token)match(input,60,FOLLOW_60_in_aritmetica1437); stream_60.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:19: a= 'isub' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:125:19: a= 'isub' { - a=(Token)match(input,101,FOLLOW_101_in_aritmetica1477); + a=(Token)match(input,101,FOLLOW_101_in_aritmetica1461); stream_101.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:19: a= 'imul' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:126:19: a= 'imul' { - a=(Token)match(input,88,FOLLOW_88_in_aritmetica1501); + a=(Token)match(input,88,FOLLOW_88_in_aritmetica1485); stream_88.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:19: a= 'idiv' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:127:19: a= 'idiv' { - a=(Token)match(input,69,FOLLOW_69_in_aritmetica1525); + a=(Token)match(input,69,FOLLOW_69_in_aritmetica1509); stream_69.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:19: a= 'irem' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:128:19: a= 'irem' { - a=(Token)match(input,94,FOLLOW_94_in_aritmetica1549); + a=(Token)match(input,94,FOLLOW_94_in_aritmetica1533); stream_94.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:19: a= 'iinc' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:129:19: a= 'iinc' { - a=(Token)match(input,82,FOLLOW_82_in_aritmetica1573); + a=(Token)match(input,82,FOLLOW_82_in_aritmetica1557); stream_82.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:131:19: a= 'ineg' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:130:19: a= 'ineg' { - a=(Token)match(input,89,FOLLOW_89_in_aritmetica1597); + a=(Token)match(input,89,FOLLOW_89_in_aritmetica1581); stream_89.add(a); @@ -3113,9 +3100,9 @@ public final AssemblerParser.aritmetica_return aritmetica() throws RecognitionEx RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 133:14: -> ^( ARITMETICA $a) + // 132:14: -> ^( ARITMETICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:133:17: ^( ARITMETICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:132:17: ^( ARITMETICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3163,7 +3150,7 @@ public static class load_return extends ParserRuleReturnScope { // $ANTLR start "load" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:1: load : (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ; public final AssemblerParser.load_return load() throws RecognitionException { AssemblerParser.load_return retval = new AssemblerParser.load_return(); retval.start = input.LT(1); @@ -3192,10 +3179,10 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleTokenStream stream_85=new RewriteRuleTokenStream(adaptor,"token 85"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:6: ( (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) -> ^( LOAD $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:8: (a= 'iconst_m1' |a= 'iconst_0' |a= 'iconst_1' |a= 'iconst_2' |a= 'iconst_3' |a= 'iconst_4' |a= 'iconst_5' |a= 'aconst_null' |a= 'iload_0' |a= 'iload_1' |a= 'iload_2' |a= 'iload_3' |a= 'aload_0' |a= 'aload_1' |a= 'aload_2' |a= 'aload_3' ) int alt24=16; switch ( input.LA(1) ) { case 68: @@ -3288,144 +3275,144 @@ public final AssemblerParser.load_return load() throws RecognitionException { switch (alt24) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:10: a= 'iconst_m1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:135:10: a= 'iconst_m1' { - a=(Token)match(input,68,FOLLOW_68_in_load1671); + a=(Token)match(input,68,FOLLOW_68_in_load1655); stream_68.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iconst_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:136:13: a= 'iconst_0' { - a=(Token)match(input,62,FOLLOW_62_in_load1689); + a=(Token)match(input,62,FOLLOW_62_in_load1673); stream_62.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iconst_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:137:13: a= 'iconst_1' { - a=(Token)match(input,63,FOLLOW_63_in_load1707); + a=(Token)match(input,63,FOLLOW_63_in_load1691); stream_63.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iconst_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:138:13: a= 'iconst_2' { - a=(Token)match(input,64,FOLLOW_64_in_load1725); + a=(Token)match(input,64,FOLLOW_64_in_load1709); stream_64.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'iconst_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:139:13: a= 'iconst_3' { - a=(Token)match(input,65,FOLLOW_65_in_load1743); + a=(Token)match(input,65,FOLLOW_65_in_load1727); stream_65.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'iconst_4' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:140:13: a= 'iconst_4' { - a=(Token)match(input,66,FOLLOW_66_in_load1761); + a=(Token)match(input,66,FOLLOW_66_in_load1745); stream_66.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'iconst_5' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:141:13: a= 'iconst_5' { - a=(Token)match(input,67,FOLLOW_67_in_load1779); + a=(Token)match(input,67,FOLLOW_67_in_load1763); stream_67.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'aconst_null' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:142:13: a= 'aconst_null' { - a=(Token)match(input,44,FOLLOW_44_in_load1797); + a=(Token)match(input,44,FOLLOW_44_in_load1781); stream_44.add(a); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'iload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:143:13: a= 'iload_0' { - a=(Token)match(input,84,FOLLOW_84_in_load1815); + a=(Token)match(input,84,FOLLOW_84_in_load1799); stream_84.add(a); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:144:13: a= 'iload_1' { - a=(Token)match(input,85,FOLLOW_85_in_load1833); + a=(Token)match(input,85,FOLLOW_85_in_load1817); stream_85.add(a); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'iload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:145:13: a= 'iload_2' { - a=(Token)match(input,86,FOLLOW_86_in_load1851); + a=(Token)match(input,86,FOLLOW_86_in_load1835); stream_86.add(a); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'iload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:146:13: a= 'iload_3' { - a=(Token)match(input,87,FOLLOW_87_in_load1869); + a=(Token)match(input,87,FOLLOW_87_in_load1853); stream_87.add(a); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'aload_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:147:13: a= 'aload_0' { - a=(Token)match(input,46,FOLLOW_46_in_load1887); + a=(Token)match(input,46,FOLLOW_46_in_load1871); stream_46.add(a); } break; case 14 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'aload_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:148:13: a= 'aload_1' { - a=(Token)match(input,47,FOLLOW_47_in_load1905); + a=(Token)match(input,47,FOLLOW_47_in_load1889); stream_47.add(a); } break; case 15 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:13: a= 'aload_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:149:13: a= 'aload_2' { - a=(Token)match(input,48,FOLLOW_48_in_load1923); + a=(Token)match(input,48,FOLLOW_48_in_load1907); stream_48.add(a); } break; case 16 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:151:13: a= 'aload_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:150:13: a= 'aload_3' { - a=(Token)match(input,49,FOLLOW_49_in_load1941); + a=(Token)match(input,49,FOLLOW_49_in_load1925); stream_49.add(a); @@ -3447,9 +3434,9 @@ public final AssemblerParser.load_return load() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 153:8: -> ^( LOAD $a) + // 152:8: -> ^( LOAD $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:153:11: ^( LOAD $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:152:11: ^( LOAD $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3497,7 +3484,7 @@ public static class loadint_return extends ParserRuleReturnScope { // $ANTLR start "loadint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:1: loadint : (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ; public final AssemblerParser.loadint_return loadint() throws RecognitionException { AssemblerParser.loadint_return retval = new AssemblerParser.loadint_return(); retval.start = input.LT(1); @@ -3516,10 +3503,10 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleTokenStream stream_103=new RewriteRuleTokenStream(adaptor,"token 103"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:9: ( (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) -> ^( LOAD $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:11: (a= 'iload' b= INTEIRO |a= 'ldc' b= INTEIRO |a= 'aload' b= INTEIRO ) int alt25=3; switch ( input.LA(1) ) { case 83: @@ -3547,39 +3534,39 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio switch (alt25) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:13: a= 'iload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:155:13: a= 'iload' b= INTEIRO { - a=(Token)match(input,83,FOLLOW_83_in_loadint1991); + a=(Token)match(input,83,FOLLOW_83_in_loadint1975); stream_83.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1997); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint1981); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:15: a= 'ldc' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:156:15: a= 'ldc' b= INTEIRO { - a=(Token)match(input,103,FOLLOW_103_in_loadint2017); + a=(Token)match(input,103,FOLLOW_103_in_loadint2001); stream_103.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2023); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2007); stream_INTEIRO.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:158:15: a= 'aload' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:157:15: a= 'aload' b= INTEIRO { - a=(Token)match(input,45,FOLLOW_45_in_loadint2043); + a=(Token)match(input,45,FOLLOW_45_in_loadint2027); stream_45.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2049); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_loadint2033); stream_INTEIRO.add(b); @@ -3590,7 +3577,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -3602,9 +3589,9 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 160:11: -> ^( LOAD $a $b) + // 159:11: -> ^( LOAD $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:160:14: ^( LOAD $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:159:14: ^( LOAD $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3654,7 +3641,7 @@ public static class store_return extends ParserRuleReturnScope { // $ANTLR start "store" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:1: store : (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ; public final AssemblerParser.store_return store() throws RecognitionException { AssemblerParser.store_return retval = new AssemblerParser.store_return(); retval.start = input.LT(1); @@ -3675,10 +3662,10 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleTokenStream stream_100=new RewriteRuleTokenStream(adaptor,"token 100"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:7: ( (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) -> ^( STORE $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:9: (a= 'istore_0' |a= 'istore_1' |a= 'istore_2' |a= 'istore_3' |a= 'astore_0' |a= 'astore_1' |a= 'astore_2' |a= 'astore_3' ) int alt26=8; switch ( input.LA(1) ) { case 97: @@ -3731,72 +3718,72 @@ public final AssemblerParser.store_return store() throws RecognitionException { switch (alt26) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:11: a= 'istore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:162:11: a= 'istore_0' { - a=(Token)match(input,97,FOLLOW_97_in_store2111); + a=(Token)match(input,97,FOLLOW_97_in_store2095); stream_97.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'istore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:163:13: a= 'istore_1' { - a=(Token)match(input,98,FOLLOW_98_in_store2129); + a=(Token)match(input,98,FOLLOW_98_in_store2113); stream_98.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'istore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:164:13: a= 'istore_2' { - a=(Token)match(input,99,FOLLOW_99_in_store2147); + a=(Token)match(input,99,FOLLOW_99_in_store2131); stream_99.add(a); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:13: a= 'istore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:165:13: a= 'istore_3' { - a=(Token)match(input,100,FOLLOW_100_in_store2165); + a=(Token)match(input,100,FOLLOW_100_in_store2149); stream_100.add(a); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'astore_0' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:166:13: a= 'astore_0' { - a=(Token)match(input,52,FOLLOW_52_in_store2183); + a=(Token)match(input,52,FOLLOW_52_in_store2167); stream_52.add(a); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:13: a= 'astore_1' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:167:13: a= 'astore_1' { - a=(Token)match(input,53,FOLLOW_53_in_store2201); + a=(Token)match(input,53,FOLLOW_53_in_store2185); stream_53.add(a); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:13: a= 'astore_2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:168:13: a= 'astore_2' { - a=(Token)match(input,54,FOLLOW_54_in_store2219); + a=(Token)match(input,54,FOLLOW_54_in_store2203); stream_54.add(a); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:170:13: a= 'astore_3' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:169:13: a= 'astore_3' { - a=(Token)match(input,55,FOLLOW_55_in_store2237); + a=(Token)match(input,55,FOLLOW_55_in_store2221); stream_55.add(a); @@ -3818,9 +3805,9 @@ public final AssemblerParser.store_return store() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 172:9: -> ^( STORE $a) + // 171:9: -> ^( STORE $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:172:12: ^( STORE $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:171:12: ^( STORE $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -3868,7 +3855,7 @@ public static class storeint_return extends ParserRuleReturnScope { // $ANTLR start "storeint" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:1: storeint : (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ; public final AssemblerParser.storeint_return storeint() throws RecognitionException { AssemblerParser.storeint_return retval = new AssemblerParser.storeint_return(); retval.start = input.LT(1); @@ -3886,10 +3873,10 @@ public final AssemblerParser.storeint_return storeint() throws RecognitionExcept RewriteRuleTokenStream stream_INTEIRO=new RewriteRuleTokenStream(adaptor,"token INTEIRO"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:10: ( (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) -> ^( STORE $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:12: (a= 'istore' b= INTEIRO |a= 'astore' b= INTEIRO ) int alt27=2; int LA27_0 = input.LA(1); @@ -3908,26 +3895,26 @@ else if ( (LA27_0==51) ) { } switch (alt27) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:14: a= 'istore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:174:14: a= 'istore' b= INTEIRO { - a=(Token)match(input,96,FOLLOW_96_in_storeint2291); + a=(Token)match(input,96,FOLLOW_96_in_storeint2275); stream_96.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2297); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2281); stream_INTEIRO.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:176:16: a= 'astore' b= INTEIRO + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:175:16: a= 'astore' b= INTEIRO { - a=(Token)match(input,51,FOLLOW_51_in_storeint2318); + a=(Token)match(input,51,FOLLOW_51_in_storeint2302); stream_51.add(a); - b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2324); + b=(Token)match(input,INTEIRO,FOLLOW_INTEIRO_in_storeint2308); stream_INTEIRO.add(b); @@ -3938,7 +3925,7 @@ else if ( (LA27_0==51) ) { // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -3950,9 +3937,9 @@ else if ( (LA27_0==51) ) { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 178:12: -> ^( STORE $a $b) + // 177:12: -> ^( STORE $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:178:15: ^( STORE $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:177:15: ^( STORE $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4002,7 +3989,7 @@ public static class logica_return extends ParserRuleReturnScope { // $ANTLR start "logica" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:1: logica : (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ; public final AssemblerParser.logica_return logica() throws RecognitionException { AssemblerParser.logica_return retval = new AssemblerParser.logica_return(); retval.start = input.LT(1); @@ -4018,10 +4005,10 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleTokenStream stream_61=new RewriteRuleTokenStream(adaptor,"token 61"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:8: ( (a= 'iand' |a= 'ior' |a= 'ixor' ) -> ^( LOGICA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:10: (a= 'iand' |a= 'ior' |a= 'ixor' ) int alt28=3; switch ( input.LA(1) ) { case 61: @@ -4049,27 +4036,27 @@ public final AssemblerParser.logica_return logica() throws RecognitionException switch (alt28) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:12: a= 'iand' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:180:12: a= 'iand' { - a=(Token)match(input,61,FOLLOW_61_in_logica2384); + a=(Token)match(input,61,FOLLOW_61_in_logica2368); stream_61.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ior' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:181:14: a= 'ior' { - a=(Token)match(input,93,FOLLOW_93_in_logica2403); + a=(Token)match(input,93,FOLLOW_93_in_logica2387); stream_93.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:183:14: a= 'ixor' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:182:14: a= 'ixor' { - a=(Token)match(input,102,FOLLOW_102_in_logica2422); + a=(Token)match(input,102,FOLLOW_102_in_logica2406); stream_102.add(a); @@ -4091,9 +4078,9 @@ public final AssemblerParser.logica_return logica() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 185:10: -> ^( LOGICA $a) + // 184:10: -> ^( LOGICA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:185:13: ^( LOGICA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:184:13: ^( LOGICA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4141,7 +4128,7 @@ public static class desvio_return extends ParserRuleReturnScope { // $ANTLR start "desvio" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:1: desvio : (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ; public final AssemblerParser.desvio_return desvio() throws RecognitionException { AssemblerParser.desvio_return retval = new AssemblerParser.desvio_return(); retval.start = input.LT(1); @@ -4170,10 +4157,10 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleTokenStream stream_76=new RewriteRuleTokenStream(adaptor,"token 76"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:8: ( (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) -> ^( DESVIO $a $b) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:10: (a= 'ifeq' b= ID |a= 'ifne' b= ID |a= 'iflt' b= ID |a= 'ifge' b= ID |a= 'ifgt' b= ID |a= 'ifle' b= ID |a= 'if_icmpeq' b= ID |a= 'if_icmpne' b= ID |a= 'if_icmplt' b= ID |a= 'if_icmpge' b= ID |a= 'if_icmpgt' b= ID |a= 'if_icmple' b= ID |a= 'goto' b= ID ) int alt29=13; switch ( input.LA(1) ) { case 76: @@ -4251,169 +4238,169 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException switch (alt29) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:12: a= 'ifeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:187:12: a= 'ifeq' b= ID { - a=(Token)match(input,76,FOLLOW_76_in_desvio2473); + a=(Token)match(input,76,FOLLOW_76_in_desvio2457); stream_76.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2479); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2463); stream_ID.add(b); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'ifne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:188:14: a= 'ifne' b= ID { - a=(Token)match(input,81,FOLLOW_81_in_desvio2498); + a=(Token)match(input,81,FOLLOW_81_in_desvio2482); stream_81.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2504); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2488); stream_ID.add(b); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'iflt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:189:14: a= 'iflt' b= ID { - a=(Token)match(input,80,FOLLOW_80_in_desvio2523); + a=(Token)match(input,80,FOLLOW_80_in_desvio2507); stream_80.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2529); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2513); stream_ID.add(b); } break; case 4 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'ifge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:190:14: a= 'ifge' b= ID { - a=(Token)match(input,77,FOLLOW_77_in_desvio2548); + a=(Token)match(input,77,FOLLOW_77_in_desvio2532); stream_77.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2554); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2538); stream_ID.add(b); } break; case 5 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'ifgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:191:14: a= 'ifgt' b= ID { - a=(Token)match(input,78,FOLLOW_78_in_desvio2573); + a=(Token)match(input,78,FOLLOW_78_in_desvio2557); stream_78.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2579); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2563); stream_ID.add(b); } break; case 6 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'ifle' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:192:14: a= 'ifle' b= ID { - a=(Token)match(input,79,FOLLOW_79_in_desvio2598); + a=(Token)match(input,79,FOLLOW_79_in_desvio2582); stream_79.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2604); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2588); stream_ID.add(b); } break; case 7 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:14: a= 'if_icmpeq' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:193:14: a= 'if_icmpeq' b= ID { - a=(Token)match(input,70,FOLLOW_70_in_desvio2623); + a=(Token)match(input,70,FOLLOW_70_in_desvio2607); stream_70.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2629); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2613); stream_ID.add(b); } break; case 8 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:14: a= 'if_icmpne' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:194:14: a= 'if_icmpne' b= ID { - a=(Token)match(input,75,FOLLOW_75_in_desvio2648); + a=(Token)match(input,75,FOLLOW_75_in_desvio2632); stream_75.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2654); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2638); stream_ID.add(b); } break; case 9 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:14: a= 'if_icmplt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:195:14: a= 'if_icmplt' b= ID { - a=(Token)match(input,74,FOLLOW_74_in_desvio2673); + a=(Token)match(input,74,FOLLOW_74_in_desvio2657); stream_74.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2679); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2663); stream_ID.add(b); } break; case 10 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:197:14: a= 'if_icmpge' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:196:14: a= 'if_icmpge' b= ID { - a=(Token)match(input,71,FOLLOW_71_in_desvio2698); + a=(Token)match(input,71,FOLLOW_71_in_desvio2682); stream_71.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2704); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2688); stream_ID.add(b); } break; case 11 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:14: a= 'if_icmpgt' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:197:14: a= 'if_icmpgt' b= ID { - a=(Token)match(input,72,FOLLOW_72_in_desvio2723); + a=(Token)match(input,72,FOLLOW_72_in_desvio2707); stream_72.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2729); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2713); stream_ID.add(b); } break; case 12 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:14: a= 'if_icmple' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:198:14: a= 'if_icmple' b= ID { - a=(Token)match(input,73,FOLLOW_73_in_desvio2748); + a=(Token)match(input,73,FOLLOW_73_in_desvio2732); stream_73.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2754); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2738); stream_ID.add(b); } break; case 13 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:200:14: a= 'goto' b= ID + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:199:14: a= 'goto' b= ID { - a=(Token)match(input,59,FOLLOW_59_in_desvio2773); + a=(Token)match(input,59,FOLLOW_59_in_desvio2757); stream_59.add(a); - b=(Token)match(input,ID,FOLLOW_ID_in_desvio2779); + b=(Token)match(input,ID,FOLLOW_ID_in_desvio2763); stream_ID.add(b); @@ -4424,7 +4411,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -4436,9 +4423,9 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 202:10: -> ^( DESVIO $a $b) + // 201:10: -> ^( DESVIO $a $b) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:202:13: ^( DESVIO $a $b) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:201:13: ^( DESVIO $a $b) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4488,7 +4475,7 @@ public static class pilha_return extends ParserRuleReturnScope { // $ANTLR start "pilha" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:1: pilha : (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ; public final AssemblerParser.pilha_return pilha() throws RecognitionException { AssemblerParser.pilha_return retval = new AssemblerParser.pilha_return(); retval.start = input.LT(1); @@ -4504,10 +4491,10 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleTokenStream stream_106=new RewriteRuleTokenStream(adaptor,"token 106"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:7: ( (a= 'pop' |a= 'pop2' |a= 'dup' ) -> ^( PILHA $a) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:9: (a= 'pop' |a= 'pop2' |a= 'dup' ) int alt30=3; switch ( input.LA(1) ) { case 106: @@ -4535,27 +4522,27 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { switch (alt30) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:11: a= 'pop' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:204:11: a= 'pop' { - a=(Token)match(input,106,FOLLOW_106_in_pilha2840); + a=(Token)match(input,106,FOLLOW_106_in_pilha2824); stream_106.add(a); } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:13: a= 'pop2' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:205:13: a= 'pop2' { - a=(Token)match(input,107,FOLLOW_107_in_pilha2858); + a=(Token)match(input,107,FOLLOW_107_in_pilha2842); stream_107.add(a); } break; case 3 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:207:13: a= 'dup' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:206:13: a= 'dup' { - a=(Token)match(input,56,FOLLOW_56_in_pilha2876); + a=(Token)match(input,56,FOLLOW_56_in_pilha2860); stream_56.add(a); @@ -4577,9 +4564,9 @@ public final AssemblerParser.pilha_return pilha() throws RecognitionException { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 209:9: -> ^( PILHA $a) + // 208:9: -> ^( PILHA $a) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:209:12: ^( PILHA $a) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:208:12: ^( PILHA $a) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4627,7 +4614,7 @@ public static class parametrosRetorno_return extends ParserRuleReturnScope { // $ANTLR start "parametrosRetorno" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:1: parametrosRetorno : ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ; + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:211:1: parametrosRetorno : ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ; public final AssemblerParser.parametrosRetorno_return parametrosRetorno() throws RecognitionException { AssemblerParser.parametrosRetorno_return retval = new AssemblerParser.parametrosRetorno_return(); retval.start = input.LT(1); @@ -4651,14 +4638,14 @@ public final AssemblerParser.parametrosRetorno_return parametrosRetorno() throws RewriteRuleSubtreeStream stream_parametros=new RewriteRuleSubtreeStream(adaptor,"rule parametros"); RewriteRuleSubtreeStream stream_tipo=new RewriteRuleSubtreeStream(adaptor,"rule tipo"); try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:6: ( ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ) - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:10: ( parametros | '(' parametros ')' ) tip= tipo + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:6: ( ( parametros | '(' parametros ')' ) tip= tipo -> ^( METHOD_CALL parametros $tip) ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:10: ( parametros | '(' parametros ')' ) tip= tipo { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:10: ( parametros | '(' parametros ')' ) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:10: ( parametros | '(' parametros ')' ) int alt31=2; int LA31_0 = input.LA(1); - if ( (LA31_0==ID||LA31_0==TIPO_REF||LA31_0==34) ) { + if ( (LA31_0==TIPO_REF||LA31_0==34) ) { alt31=1; } else if ( (LA31_0==33) ) { @@ -4673,9 +4660,9 @@ else if ( (LA31_0==33) ) { } switch (alt31) { case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:11: parametros + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:11: parametros { - pushFollow(FOLLOW_parametros_in_parametrosRetorno2931); + pushFollow(FOLLOW_parametros_in_parametrosRetorno2915); parametros71=parametros(); state._fsp--; @@ -4685,20 +4672,20 @@ else if ( (LA31_0==33) ) { } break; case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:24: '(' parametros ')' + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:212:24: '(' parametros ')' { - char_literal72=(Token)match(input,33,FOLLOW_33_in_parametrosRetorno2935); + char_literal72=(Token)match(input,33,FOLLOW_33_in_parametrosRetorno2919); stream_33.add(char_literal72); - pushFollow(FOLLOW_parametros_in_parametrosRetorno2937); + pushFollow(FOLLOW_parametros_in_parametrosRetorno2921); parametros73=parametros(); state._fsp--; stream_parametros.add(parametros73.getTree()); - char_literal74=(Token)match(input,35,FOLLOW_35_in_parametrosRetorno2939); + char_literal74=(Token)match(input,35,FOLLOW_35_in_parametrosRetorno2923); stream_35.add(char_literal74); @@ -4708,7 +4695,7 @@ else if ( (LA31_0==33) ) { } - pushFollow(FOLLOW_tipo_in_parametrosRetorno2947); + pushFollow(FOLLOW_tipo_in_parametrosRetorno2931); tip=tipo(); state._fsp--; @@ -4727,9 +4714,9 @@ else if ( (LA31_0==33) ) { RewriteRuleSubtreeStream stream_tip=new RewriteRuleSubtreeStream(adaptor,"rule tip",tip!=null?tip.tree:null); root_0 = (BytecodesAST)adaptor.nil(); - // 214:12: -> ^( METHOD_CALL parametros $tip) + // 213:12: -> ^( METHOD_CALL parametros $tip) { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:214:15: ^( METHOD_CALL parametros $tip) + // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:213:15: ^( METHOD_CALL parametros $tip) { BytecodesAST root_1 = (BytecodesAST)adaptor.nil(); root_1 = (BytecodesAST)adaptor.becomeRoot( @@ -4771,153 +4758,6 @@ else if ( (LA31_0==33) ) { } // $ANTLR end "parametrosRetorno" - - public static class contagemParametros_return extends ParserRuleReturnScope { - public int qtdParams; - BytecodesAST tree; - public Object getTree() { return tree; } - }; - - - // $ANTLR start "contagemParametros" - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:217:1: contagemParametros returns [int qtdParams] : ( '()' | ( ID | TIPO_REF )+ ); - public final AssemblerParser.contagemParametros_return contagemParametros() throws RecognitionException { - AssemblerParser.contagemParametros_return retval = new AssemblerParser.contagemParametros_return(); - retval.start = input.LT(1); - - - BytecodesAST root_0 = null; - - Token string_literal75=null; - Token ID76=null; - Token TIPO_REF77=null; - - BytecodesAST string_literal75_tree=null; - BytecodesAST ID76_tree=null; - BytecodesAST TIPO_REF77_tree=null; - - try { - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:2: ( '()' | ( ID | TIPO_REF )+ ) - int alt33=2; - int LA33_0 = input.LA(1); - - if ( (LA33_0==34) ) { - alt33=1; - } - else if ( (LA33_0==ID||LA33_0==TIPO_REF) ) { - alt33=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 33, 0, input); - - throw nvae; - - } - switch (alt33) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:218:4: '()' - { - root_0 = (BytecodesAST)adaptor.nil(); - - - string_literal75=(Token)match(input,34,FOLLOW_34_in_contagemParametros2993); - string_literal75_tree = - (BytecodesAST)adaptor.create(string_literal75) - ; - adaptor.addChild(root_0, string_literal75_tree); - - - retval.qtdParams = 0; - - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:4: ( ID | TIPO_REF )+ - { - root_0 = (BytecodesAST)adaptor.nil(); - - - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:219:4: ( ID | TIPO_REF )+ - int cnt32=0; - loop32: - do { - int alt32=3; - int LA32_0 = input.LA(1); - - if ( (LA32_0==ID) ) { - alt32=1; - } - else if ( (LA32_0==TIPO_REF) ) { - alt32=2; - } - - - switch (alt32) { - case 1 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:220:9: ID - { - ID76=(Token)match(input,ID,FOLLOW_ID_in_contagemParametros3010); - ID76_tree = - (BytecodesAST)adaptor.create(ID76) - ; - adaptor.addChild(root_0, ID76_tree); - - - retval.qtdParams++; - - } - break; - case 2 : - // C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g:221:9: TIPO_REF - { - TIPO_REF77=(Token)match(input,TIPO_REF,FOLLOW_TIPO_REF_in_contagemParametros3022); - TIPO_REF77_tree = - (BytecodesAST)adaptor.create(TIPO_REF77) - ; - adaptor.addChild(root_0, TIPO_REF77_tree); - - - retval.qtdParams++; - - } - break; - - default : - if ( cnt32 >= 1 ) break loop32; - EarlyExitException eee = - new EarlyExitException(32, input); - throw eee; - } - cnt32++; - } while (true); - - - } - break; - - } - retval.stop = input.LT(-1); - - - retval.tree = (BytecodesAST)adaptor.rulePostProcessing(root_0); - adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - - } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (BytecodesAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - - } - - finally { - // do for sure before leaving - } - return retval; - } - // $ANTLR end "contagemParametros" - // Delegated rules @@ -4959,9 +4799,9 @@ else if ( (LA32_0==TIPO_REF) ) { public static final BitSet FOLLOW_ID_in_membroClasse605 = new BitSet(new long[]{0x00000000C0002000L}); public static final BitSet FOLLOW_tipo_in_membroClasse607 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_41_in_membroClasse625 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_INIT_in_membroClasse627 = new BitSet(new long[]{0x0000000640000800L}); + public static final BitSet FOLLOW_INIT_in_membroClasse627 = new BitSet(new long[]{0x0000000640000000L}); public static final BitSet FOLLOW_parametros_in_membroClasse630 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_33_in_membroClasse634 = new BitSet(new long[]{0x0000000440000800L}); + public static final BitSet FOLLOW_33_in_membroClasse634 = new BitSet(new long[]{0x0000000440000000L}); public static final BitSet FOLLOW_parametros_in_membroClasse636 = new BitSet(new long[]{0x0000000800000000L}); public static final BitSet FOLLOW_35_in_membroClasse638 = new BitSet(new long[]{0x00000000C0002000L}); public static final BitSet FOLLOW_tipo_in_membroClasse645 = new BitSet(new long[]{0x0000000000800000L}); @@ -4972,9 +4812,9 @@ else if ( (LA32_0==TIPO_REF) ) { public static final BitSet FOLLOW_38_in_membroClasse659 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_41_in_membroClasse691 = new BitSet(new long[]{0x0000000000000800L,0x0000800000000000L}); public static final BitSet FOLLOW_111_in_membroClasse693 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_membroClasse696 = new BitSet(new long[]{0x0000000640000800L}); + public static final BitSet FOLLOW_ID_in_membroClasse696 = new BitSet(new long[]{0x0000000640000000L}); public static final BitSet FOLLOW_parametros_in_membroClasse699 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_33_in_membroClasse703 = new BitSet(new long[]{0x0000000440000800L}); + public static final BitSet FOLLOW_33_in_membroClasse703 = new BitSet(new long[]{0x0000000440000000L}); public static final BitSet FOLLOW_parametros_in_membroClasse705 = new BitSet(new long[]{0x0000000800000000L}); public static final BitSet FOLLOW_35_in_membroClasse707 = new BitSet(new long[]{0x00000000C0002000L}); public static final BitSet FOLLOW_tipo_in_membroClasse714 = new BitSet(new long[]{0x0000000000800000L}); @@ -4986,115 +4826,111 @@ else if ( (LA32_0==TIPO_REF) ) { public static final BitSet FOLLOW_40_in_limite777 = new BitSet(new long[]{0x0000000000004000L}); public static final BitSet FOLLOW_INTEIRO_in_limite779 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_34_in_parametros801 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_parametros828 = new BitSet(new long[]{0x0000000040000802L}); - public static final BitSet FOLLOW_TIPO_REF_in_parametros843 = new BitSet(new long[]{0x0000000040000802L}); - public static final BitSet FOLLOW_50_in_retorno889 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_95_in_retorno907 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_110_in_retorno925 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_57_in_manipulacaoObjetos1004 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1006 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1008 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_58_in_manipulacaoObjetos1031 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1033 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1035 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_108_in_manipulacaoObjetos1072 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1074 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1076 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_109_in_manipulacaoObjetos1113 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1115 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1117 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_90_in_manipulacaoObjetos1154 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1156 = new BitSet(new long[]{0x0000000640000800L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1162 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_91_in_manipulacaoObjetos1222 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1224 = new BitSet(new long[]{0x0000000640000800L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1230 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_92_in_manipulacaoObjetos1291 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1293 = new BitSet(new long[]{0x0000000640000800L}); - public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1299 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_104_in_manipulacaoObjetos1359 = new BitSet(new long[]{0x0000000008000800L}); - public static final BitSet FOLLOW_ID_in_manipulacaoObjetos1366 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1374 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_60_in_aritmetica1453 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_101_in_aritmetica1477 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_88_in_aritmetica1501 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_69_in_aritmetica1525 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_94_in_aritmetica1549 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_82_in_aritmetica1573 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_89_in_aritmetica1597 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_68_in_load1671 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_62_in_load1689 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_63_in_load1707 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_64_in_load1725 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_65_in_load1743 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_66_in_load1761 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_67_in_load1779 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_44_in_load1797 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_84_in_load1815 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_85_in_load1833 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_86_in_load1851 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_87_in_load1869 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_46_in_load1887 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_47_in_load1905 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_48_in_load1923 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_49_in_load1941 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_83_in_loadint1991 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint1997 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_103_in_loadint2017 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2023 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_45_in_loadint2043 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_loadint2049 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_97_in_store2111 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_98_in_store2129 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_99_in_store2147 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_100_in_store2165 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_52_in_store2183 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_53_in_store2201 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_54_in_store2219 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_55_in_store2237 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_96_in_storeint2291 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2297 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_51_in_storeint2318 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_INTEIRO_in_storeint2324 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_61_in_logica2384 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_93_in_logica2403 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_102_in_logica2422 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_76_in_desvio2473 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2479 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_81_in_desvio2498 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2504 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_80_in_desvio2523 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2529 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_77_in_desvio2548 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2554 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_78_in_desvio2573 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2579 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_79_in_desvio2598 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2604 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_70_in_desvio2623 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2629 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_75_in_desvio2648 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2654 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_74_in_desvio2673 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2679 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_71_in_desvio2698 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2704 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_72_in_desvio2723 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2729 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_73_in_desvio2748 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2754 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_59_in_desvio2773 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_ID_in_desvio2779 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_106_in_pilha2840 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_107_in_pilha2858 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_56_in_pilha2876 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_parametros_in_parametrosRetorno2931 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_33_in_parametrosRetorno2935 = new BitSet(new long[]{0x0000000440000800L}); - public static final BitSet FOLLOW_parametros_in_parametrosRetorno2937 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_35_in_parametrosRetorno2939 = new BitSet(new long[]{0x00000000C0002000L}); - public static final BitSet FOLLOW_tipo_in_parametrosRetorno2947 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_34_in_contagemParametros2993 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ID_in_contagemParametros3010 = new BitSet(new long[]{0x0000000040000802L}); - public static final BitSet FOLLOW_TIPO_REF_in_contagemParametros3022 = new BitSet(new long[]{0x0000000040000802L}); + public static final BitSet FOLLOW_TIPO_REF_in_parametros827 = new BitSet(new long[]{0x0000000040000002L}); + public static final BitSet FOLLOW_50_in_retorno873 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_retorno891 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_110_in_retorno909 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_57_in_manipulacaoObjetos988 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos990 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos992 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_manipulacaoObjetos1015 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1017 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1019 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_108_in_manipulacaoObjetos1056 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1058 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1060 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_109_in_manipulacaoObjetos1097 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1099 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_manipulacaoObjetos1101 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_90_in_manipulacaoObjetos1138 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1140 = new BitSet(new long[]{0x0000000640000000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1146 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_manipulacaoObjetos1206 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1208 = new BitSet(new long[]{0x0000000640000000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1214 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_manipulacaoObjetos1275 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1277 = new BitSet(new long[]{0x0000000640000000L}); + public static final BitSet FOLLOW_parametrosRetorno_in_manipulacaoObjetos1283 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_104_in_manipulacaoObjetos1343 = new BitSet(new long[]{0x0000000008000800L}); + public static final BitSet FOLLOW_ID_in_manipulacaoObjetos1350 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_REF_in_manipulacaoObjetos1358 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_aritmetica1437 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_101_in_aritmetica1461 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_aritmetica1485 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_aritmetica1509 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_aritmetica1533 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_aritmetica1557 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_aritmetica1581 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_load1655 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_load1673 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_load1691 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_load1709 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_load1727 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_load1745 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_load1763 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_load1781 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_load1799 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_load1817 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_86_in_load1835 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_load1853 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_load1871 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_load1889 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_load1907 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_load1925 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_loadint1975 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint1981 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_103_in_loadint2001 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2007 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_loadint2027 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_loadint2033 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_store2095 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_store2113 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_99_in_store2131 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_100_in_store2149 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_store2167 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_53_in_store2185 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_54_in_store2203 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_store2221 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_storeint2275 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2281 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_storeint2302 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_INTEIRO_in_storeint2308 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_logica2368 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_logica2387 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_102_in_logica2406 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_desvio2457 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2463 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_81_in_desvio2482 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2488 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_desvio2507 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2513 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_77_in_desvio2532 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2538 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_desvio2557 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2563 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_79_in_desvio2582 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2588 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_70_in_desvio2607 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2613 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_desvio2632 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2638 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_desvio2657 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2663 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_71_in_desvio2682 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2688 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_desvio2707 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2713 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_73_in_desvio2732 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2738 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_desvio2757 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_ID_in_desvio2763 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_106_in_pilha2824 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_107_in_pilha2842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_pilha2860 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parametros_in_parametrosRetorno2915 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_33_in_parametrosRetorno2919 = new BitSet(new long[]{0x0000000440000000L}); + public static final BitSet FOLLOW_parametros_in_parametrosRetorno2921 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_35_in_parametrosRetorno2923 = new BitSet(new long[]{0x00000000C0002000L}); + public static final BitSet FOLLOW_tipo_in_parametrosRetorno2931 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index 72ae001..f4a1d19 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-20 18:36:17 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-24 21:32:12 package br.ufpb.iged.interpretador.parser; @@ -1056,8 +1056,8 @@ public final void parametros() throws RecognitionException { System.out.println("linha "+pars.getLine()+": def "+pars.getText()); pars.escopo = escopoAtual; SimboloVariavel par = new SimboloVariavel(pars.getText(),null); - par.def = pars; // track AST location of def's ID - pars.simbolo = par; // track in AST + par.def = pars; + pars.simbolo = par; escopoAtual.definir(par); } @@ -1117,7 +1117,7 @@ public final void saiDoCorpoMetodo() throws RecognitionException { if ( state.backtracking==1 ) { System.out.println("locals: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } } @@ -1148,7 +1148,7 @@ public final void saiDaClasse() throws RecognitionException { if ( state.backtracking==1 ) { System.out.println("Saindo da classe.. membros: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } } @@ -1179,7 +1179,7 @@ public final void saiDoMetodo() throws RecognitionException { if ( state.backtracking==1 ) { System.out.println("Saindo do metodo: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } @@ -1211,7 +1211,7 @@ public final void saiDoConstrutor() throws RecognitionException { if ( state.backtracking==1 ) { System.out.println("Saindo do construtor: "+escopoAtual); - escopoAtual = escopoAtual.obterEscopoEnvolvente(); // pop scope + escopoAtual = escopoAtual.obterEscopoEnvolvente(); } } diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 63f4232..6d033f2 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-20 18:36:17 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-24 21:32:11 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java index 266a791..5e960a7 100644 --- a/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java +++ b/src/br/ufpb/iged/interpretador/symboltable/classes/SimboloMetodo.java @@ -44,7 +44,7 @@ public int obterTamanhoCodigo() { public int contarParametros() { - String assinatura = this.toString(); + String assinatura = toString(); int indexAbrePar = assinatura.indexOf("("); @@ -55,29 +55,21 @@ public int contarParametros() { if (params.equals("VOID")) return 0; - int contador = 0; - - contador += contarOcorrencias(params, 'I'); - contador += contarOcorrencias(params, 'L'); - - return contador; - - - } - - private int contarOcorrencias(String str, char ch) { - int i, c; - for (i = 0, c = 0; i < str.length(); i++) { + for (i = 0, c = 0; i < params.length(); i++) { - if (str.charAt(i) == ch) + if (params.charAt(i) == 'I'){ + c++; + } else if (params.charAt(i) == 'L'){ + while(params.charAt(i) != ';') + i++; c++; + } } return c; - } diff --git a/src/br/ufpb/iged/interpretador/testes/Test.java b/src/br/ufpb/iged/interpretador/testes/Test.java index 1b291a6..e053a60 100755 --- a/src/br/ufpb/iged/interpretador/testes/Test.java +++ b/src/br/ufpb/iged/interpretador/testes/Test.java @@ -48,7 +48,22 @@ public static void main(String[] args) throws Exception { String c = "L"+b.substring(0, b.length() - 1); System.out.println(c); + + /*String t1 = "uisos(III)I"; + String t2 = " main(VOID)V"; + String t3 = "(VOID)V"; + String t4 = "(II)V"; + String t5 = "kioeot(IIII)I"; + String t6 = "refs(LClasse;LComposicao;IILHeranca;)I"; + + System.out.println("Params 1: "+contarParametros(t1)); + System.out.println("Params 2: "+contarParametros(t2)); + System.out.println("Params 3: "+contarParametros(t3)); + System.out.println("Params 4: "+contarParametros(t4)); + System.out.println("Params 5: "+contarParametros(t5)); + System.out.println("Params 6: "+contarParametros(t6));*/ } + } From d33f5c8f5ae0b8318ee2260641af61b2e5db570c Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Tue, 25 Sep 2012 18:19:22 -0300 Subject: [PATCH 75/79] commit --- classes/Main.class | 51 ++++++++++++++++++- .../interpretador/parser/AssemblerLexer.java | 2 +- .../interpretador/parser/AssemblerParser.java | 28 +++++----- .../ufpb/iged/interpretador/parser/Def.java | 2 +- .../ufpb/iged/interpretador/parser/Ref.java | 2 +- .../principal/MaquinaVirtual.java | 12 ++--- 6 files changed, 73 insertions(+), 24 deletions(-) diff --git a/classes/Main.class b/classes/Main.class index 35114e8..3b1dabf 100755 --- a/classes/Main.class +++ b/classes/Main.class @@ -173,6 +173,13 @@ L2: ineg iload 21 isub istore 23 + aload 19 + iload 23 + iload 22 + aload 15 + aload 12 + invokestatic Main/refs(LClasse;LComposicao;IILHeranca;) I + istore 24 return .end method .method static uisos(III)I @@ -205,6 +212,48 @@ L3: ldc 8 ireturn .end method .method static refs(LClasse;LComposicao;IILHeranca;)I - ireturn + aload_0 + getfield Classe/attr1 I + istore 5 + aload_1 + dup + getfield Composicao/jahss I + iload 5 + imul + istore 5 + dup + getfield Composicao/teste LTeste; + dup + getfield Teste/abc I + istore 8 + getfield Teste/xyz I + iload 8 + idiv + istore 6 + pop +L2: iload 5 + iload 6 + iadd + istore 7 + iload_2 + iload_3 + isub + iload 7 + iadd + istore 7 + aload 4 + dup + getfield Heranca/abfgs I + istore 9 + getfield Heranca/xyz I + iload 9 + irem + ifeq L1 + goto L2 +L1: iload 7 + iload 6 + isub + iinc + ireturn .end method .end class \ No newline at end of file diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java index 83c9691..3c8a65c 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-24 21:32:11 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-25 15:56:07 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java index d7124b5..1be0e7d 100644 --- a/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java +++ b/src/br/ufpb/iged/interpretador/parser/AssemblerParser.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-24 21:32:09 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Assembler.g 2012-09-25 15:56:07 package br.ufpb.iged.interpretador.parser; @@ -1016,7 +1016,7 @@ public final AssemblerParser.definicaoClasse_return definicaoClasse() throws Rec // AST REWRITE - // elements: superClasse, 36, membroClasse, ID + // elements: membroClasse, 36, superClasse, ID // token labels: // rule labels: retval // token list labels: @@ -1557,7 +1557,7 @@ else if ( (LA10_0==33) ) { // AST REWRITE - // elements: operacao, parametros, limite, INIT, ret + // elements: INIT, operacao, limite, ret, parametros // token labels: // rule labels: ret, retval // token list labels: @@ -1780,7 +1780,7 @@ else if ( (LA14_0==33) ) { // AST REWRITE - // elements: limite, ID, ret, parametros, operacao + // elements: limite, parametros, ID, operacao, ret // token labels: // rule labels: ret, retval // token list labels: @@ -2413,7 +2413,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo60.getTree()); // AST REWRITE - // elements: tipo, REF, 57 + // elements: REF, tipo, 57 // token labels: // rule labels: retval // token list labels: @@ -2467,7 +2467,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo62.getTree()); // AST REWRITE - // elements: REF, tipo, 58 + // elements: tipo, REF, 58 // token labels: // rule labels: retval // token list labels: @@ -2521,7 +2521,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo64.getTree()); // AST REWRITE - // elements: REF, tipo, 108 + // elements: 108, tipo, REF // token labels: // rule labels: retval // token list labels: @@ -2575,7 +2575,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_tipo.add(tipo66.getTree()); // AST REWRITE - // elements: 109, REF, tipo + // elements: REF, tipo, 109 // token labels: // rule labels: retval // token list labels: @@ -2629,7 +2629,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: d, 90, REF + // elements: d, REF, 90 // token labels: // rule labels: retval, d // token list labels: @@ -2684,7 +2684,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: REF, 91, d + // elements: d, REF, 91 // token labels: // rule labels: retval, d // token list labels: @@ -2739,7 +2739,7 @@ public final AssemblerParser.manipulacaoObjetos_return manipulacaoObjetos() thro stream_parametrosRetorno.add(d.getTree()); // AST REWRITE - // elements: 92, d, REF + // elements: REF, d, 92 // token labels: // rule labels: retval, d // token list labels: @@ -3577,7 +3577,7 @@ public final AssemblerParser.loadint_return loadint() throws RecognitionExceptio // AST REWRITE - // elements: a, b + // elements: b, a // token labels: b, a // rule labels: retval // token list labels: @@ -4411,7 +4411,7 @@ public final AssemblerParser.desvio_return desvio() throws RecognitionException // AST REWRITE - // elements: b, a + // elements: a, b // token labels: b, a // rule labels: retval // token list labels: @@ -4703,7 +4703,7 @@ else if ( (LA31_0==33) ) { stream_tipo.add(tip.getTree()); // AST REWRITE - // elements: parametros, tip + // elements: tip, parametros // token labels: // rule labels: retval, tip // token list labels: diff --git a/src/br/ufpb/iged/interpretador/parser/Def.java b/src/br/ufpb/iged/interpretador/parser/Def.java index f4a1d19..7835f71 100644 --- a/src/br/ufpb/iged/interpretador/parser/Def.java +++ b/src/br/ufpb/iged/interpretador/parser/Def.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-24 21:32:12 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Def.g 2012-09-25 15:56:08 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/parser/Ref.java b/src/br/ufpb/iged/interpretador/parser/Ref.java index 6d033f2..8f2088e 100644 --- a/src/br/ufpb/iged/interpretador/parser/Ref.java +++ b/src/br/ufpb/iged/interpretador/parser/Ref.java @@ -1,4 +1,4 @@ -// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-24 21:32:11 +// $ANTLR 3.4 C:\\Users\\Tiago\\Git\\IGED\\interpretador\\src\\br\\ufpb\\iged\\interpretador\\gramaticas\\Ref.g 2012-09-25 15:56:08 package br.ufpb.iged.interpretador.parser; diff --git a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java index 1f7b4e3..4875eac 100644 --- a/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java +++ b/src/br/ufpb/iged/interpretador/principal/MaquinaVirtual.java @@ -76,12 +76,12 @@ public void executarInstrucao() throws ClassNotFoundException { break; case Definicao.DUP: { - - Referencia ref = (Referencia)frameAtual.pilhaOperandos[frameAtual.sp]; - - frameAtual.sp++; - - frameAtual.pilhaOperandos[frameAtual.sp] = ref; + + Object valor = frameAtual.pilhaOperandos[frameAtual.sp]; + + frameAtual.pilhaOperandos[++frameAtual.sp] = null; + + frameAtual.pilhaOperandos[frameAtual.sp] = valor; } ; From c7084f54f8e7e405ad1971015e2c3400dec74297 Mon Sep 17 00:00:00 2001 From: Tiago Neves Date: Wed, 26 Sep 2012 22:04:46 -0300 Subject: [PATCH 76/79] commit --- .../iged/interpretador/gramaticas/Assembler.g | 10 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 5 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 4 +- .../interpretador/parser/AssemblerLexer.class | Bin 35321 -> 37183 bytes .../AssemblerParser$aritmetica_return.class | Bin 686 -> 686 bytes .../AssemblerParser$desvio_return.class | Bin 674 -> 674 bytes .../parser/AssemblerParser$load_return.class | Bin 668 -> 668 bytes .../AssemblerParser$loadint_return.class | Bin 677 -> 677 bytes .../AssemblerParser$logica_return.class | Bin 674 -> 674 bytes ...blerParser$manipulacaoObjetos_return.class | Bin 710 -> 710 bytes .../parser/AssemblerParser$pilha_return.class | Bin 671 -> 671 bytes .../parser/AssemblerParser$store_return.class | Bin 671 -> 671 bytes .../AssemblerParser$storeint_return.class | Bin 680 -> 680 bytes .../parser/AssemblerParser$tipo_return.class | Bin 668 -> 668 bytes .../parser/AssemblerParser.class | Bin 76155 -> 76565 bytes .../ufpb/iged/interpretador/parser/Def.class | Bin 27694 -> 28569 bytes .../iged/interpretador/parser/Ref$DFA1.class | Bin 1311 -> 1311 bytes .../ufpb/iged/interpretador/parser/Ref.class | Bin 28323 -> 28728 bytes .../iged/interpretador/principal/Objeto.class | Bin 1145 -> 1216 bytes .../symboltable/classes/SimboloClasse.class | Bin 5987 -> 7925 bytes .../symboltable/classes/SimboloVariavel.class | Bin 590 -> 993 bytes classes/Main.class | 15 + classes/Teste.class | 2 + .../iged/interpretador/gramaticas/Assembler.g | 10 +- .../ufpb/iged/interpretador/gramaticas/Def.g | 5 +- .../ufpb/iged/interpretador/gramaticas/Ref.g | 4 +- .../interpretador/parser/AssemblerLexer.java | 769 +++++++---- .../interpretador/parser/AssemblerParser.java | 1217 +++++++++-------- .../ufpb/iged/interpretador/parser/Def.java | 346 +++-- .../ufpb/iged/interpretador/parser/Ref.java | 225 +-- .../interpretador/principal/ClassLoader.java | 6 +- .../principal/Interpretador.java | 2 +- .../principal/MaquinaVirtual.java | 4 +- .../iged/interpretador/principal/Objeto.java | 6 +- .../symboltable/classes/SimboloClasse.java | 108 +- .../symboltable/classes/SimboloVariavel.java | 20 + 36 files changed, 1571 insertions(+), 1187 deletions(-) diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g index 6df3448..f61c987 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Assembler.g @@ -80,7 +80,7 @@ definicaoClasse superClasse : '.super' (b = ID | b = REF)-> ^(EXTENDS $b) ; membroClasse - : '.field' 'static'? ID tipo -> ^(FIELD_DECL ID tipo) + : '.field' st = 'static'? ID tipo -> ^(FIELD_DECL $st? ID tipo) | '.method' INIT (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' -> ^(CONSTR_DECL INIT $ret parametros limite? ^(BODY operacao*)) | '.method' 'static'? ID (parametros | '(' parametros ')') ret = tipo NEWLINE (limite NEWLINE)? operacao* '.end method' @@ -91,9 +91,7 @@ limite : '.limit locals' INTEIRO -> ^(LIMIT INTEIRO); parametros : '()' -> ^(PARAMS VOID) - | ( - a = TIPO_REF - )+ + | ( a = INT | a = TIPO_REF) -> ^(PARAMS $a)+ ; @@ -227,9 +225,7 @@ REF : (ID '/')+ ( ID | INIT); TIPO_REF: ('L'ID ('/' ID)*';' | INT)+; -ID: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.')*; - -//LETRA: ('a'..'z' | 'A'..'Z'); +ID: ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '.' | '_')*; NEWLINE : '\n'+; diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g index 718447b..c108edd 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Def.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Def.g @@ -64,11 +64,12 @@ entraNaClasse ; declaracaoVariavel - : ^(FIELD_DECL ID tipo =.) + : ^(FIELD_DECL (st =.)? ID tipo =.) { System.out.println("linha "+$ID.getLine()+": def "+$ID.text); $tipo.escopo = escopoAtual; - SimboloVariavel variavel = new SimboloVariavel($ID.text,null); + boolean estatico = $st != null; + SimboloVariavel variavel = new SimboloVariavel($ID.text,null,estatico); variavel.def = $ID; $ID.simbolo = variavel; escopoAtual.definir(variavel); diff --git a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g index 7628cc2..f9c14b0 100644 --- a/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g +++ b/bin/br/ufpb/iged/interpretador/gramaticas/Ref.g @@ -65,7 +65,7 @@ options { BytecodeAssembler.escreverInteiro( BytecodeAssembler.codigo, BytecodeAssembler.ip, - simboloClasse.getConstantPool().indexOf(simboloVariavel)); + simboloClasse.obterIdentificadorVariavel(simboloVariavel)); } @@ -154,7 +154,7 @@ entraNaClasse ; declaracaoVariavel - : ^(FIELD_DECL ID tip =.) + : ^(FIELD_DECL .? ID tip =.) { if ($tip.getText().startsWith("L")) $ID.simbolo.tipo = resolverTipo($tip.getText().substring(0, $tip.getText().length() - 1)); diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerLexer.class index 1b96ea845ea9fab0f3d051305d8a041e7acdec5a..9e4c0064db3ad110e7162c8ff7671a6e4e68d492 100644 GIT binary patch literal 37183 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 N;IntO5f&5he*np+Un~Fs diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$aritmetica_return.class index 80f5c90f6f3b3ec9a8ffa69d60a978d6cbb188af..aaf513a4f0bab641d79c6c00523d87be4fa2c570 100644 GIT binary patch delta 19 acmZ3-x{h^&3ln4SWLG8|#{S7oOgaEQBn8v} delta 19 acmZ3-x{h^&3ln4WWLG8|#@5MAOgaEPgayC= diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$desvio_return.class index f78dfff7a5e5f572ac89c57654de3c8f590d2324..ac45ea78c95c7d888ca2f6e3b3690cb7ec876543 100644 GIT binary patch delta 19 acmZ3)x`=gy1rwv%WJ@L+Mvcj3OgaEG%mm5+ delta 19 acmZ3)x`=gy1rwvpWJ@L+M!CslOgaEGECjXy diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$load_return.class index fd411c4be010c382dec616d164f623d7d2b9653b..c8e9fdf416f07a8c16c3cb809026e74e4f19d25e 100644 GIT binary patch delta 19 acmbQkI)`+jj7uh0GU)&SJw^r5 delta 19 bcmZ3=x|DT;H522E$u>+jjI$~L3=`w8$+1i}jDIH2V$uNsO2h{y delta 19 bcmX@cdW>~L3=`vr$+1i}jGrdYV$uNsN+bso diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$pilha_return.class index f8054326931be1ab5a083cf34a6235b991ac6c2a..6d357d34d283bbc38f4fa7a8fb72c6a3c90a2531 100644 GIT binary patch delta 19 acmbQwI-hleDHCJkWHTlk#^%YzOgaEL!Ub^v delta 19 acmbQwI-hleDHCJ)WHTlk#>&aXOgaELA_ZLl diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$store_return.class index a2ace5c012f688b8dadb77cc4ebebcbb65c61bad..93820f1f9e7f7e62f3638c0a1d221e8ee30f5169 100644 GIT binary patch delta 19 acmbQwI-hleDHEgpWHTlkM#ss;OgaEHq6F;# delta 19 acmbQwI-hleDHEgVWHTlkM)S$VOgaEH0tDFr diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$storeint_return.class index c174396762fe9b20af93bb2128423740d2a33692..7fd5b4a55b2610ac65707b327395429f4a3c6ce3 100644 GIT binary patch delta 19 acmZ3%x`K6s9TTJIWP2tXM)AotOgaEHFa*W` delta 19 acmZ3%x`K6s9TOw>WP2tXM&8LaOgaEGkOZ;- diff --git a/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class b/bin/br/ufpb/iged/interpretador/parser/AssemblerParser$tipo_return.class index 6955980d4efe126602d1ad4f760e7dd80ff8fab9..a3a4ea9a7ef49d85dc994a08a4e726cabb66e237 100644 GIT binary patch delta 19 acmbQkI)`B(k@|?^lENd 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